krytarowski added inline comments.

================
Comment at: cmake/modules/LLDBConfig.cmake:354
+
+  check_library_exists(dl dlopen "" HAVE_LIBDL)
+  if (HAVE_LIBDL)
----------------
krytarowski wrote:
> labath wrote:
> > krytarowski wrote:
> > > mgorny wrote:
> > > > krytarowski wrote:
> > > > > A more portable form of this:
> > > > > 
> > > > > ```
> > > > > foreach(lib ${CMAKE_DL_LIBS})
> > > > > list(APPEND system_libs -l${lib})
> > > > > endforeach()
> > > > > ```
> > > > > 
> > > > > Haiku needs 2 libraries, other Unices can use `-lldl` or similar.
> > > > Didn't this raise the problem of cmake using full paths on some 
> > > > systems? 
> > > No.
> > Do you have some reference for the portability claim? (mainly because I'm 
> > trying to learn more about how cmake works, but also because I'd rather let 
> > cmake figure out when to prepend -l instead of doing it myself).
> > 
> > I don't see how the "two libraries" thingy comes into play here. It could 
> > be a problem if we are mismatching lists and strings but I don't see why 
> > that would necessitate manually tagging with -l.
> dlopen(3)-like functions in `-ldl` is Linux; HPUX uses `-ldl`, Darwin/BSDs no 
> extra libraries, Haiku `-lroot -lbe` etc.
> 
> https://github.com/Kitware/CMake/search?p=2&q=CMAKE_DL_LIBS&type=&utf8=%E2%9C%93
> 
> I know that we don't support multiple OSes as of today, but we can make it 
> compatible with every recognizable one with this change.
> 
> It looks like the proper syntax is to drop `-l` from my first proposal:
> 
> ```
> foreach(lib ${CMAKE_DL_LIBS})
> list(APPEND system_libs ${lib})
> endforeach()
> ```
Or perhaps even unconditional: `list(APPEND system_libs ${CMAKE_DL_LIBS})`


https://reviews.llvm.org/D44379



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to