mgorny added a comment.

In https://reviews.llvm.org/D47817#1155788, @Lekensteyn wrote:

> In https://reviews.llvm.org/D47817#1155717, @mgorny wrote:
>
> > > This would be the first user of pkg-config here. I am not sure if this 
> > > would be the best fix. Usually you cannot (easily) recompile libc and 
> > > override it, but for external libs such as libtirpc this should be more 
> > > doable (I think).
> >
> > I don't think libtirpc's include path is expected to be predictable by 
> > design. I think it's something distro maintainers have to choose to avoid 
> > collision with headers that (used to be) installed by glibc. In any case, I 
> > can't think of a better solution than pkg-config here (libtirpc doesn't 
> > come with CMake modules).
>
>
> On Arch (libtirpc-1.0.3-2), Debian (libtirpc-dev 0.2.5-1.2 in sid), Gentoo 
> (libtirpc-1.0.3), the include files happen to be installed in 
> /usr/include/libtirpc, so it seems pretty consistent. So you could consider 
> writing a `cmake/Modules/FindLibtirpc.cmake` module that looks like:
>
>   # sets Libtirpc_FOUND Libtirpc_INCLUDE_DIRS
>  
>   find_path(Libtirpc_INCLUDE_DIR
>     NAMES rpc/xdr.h
>     PATH_SUFFIXES tirpc
>   )
>   include(FindPackageHandleStandardArgs)
>   find_package_handle_standard_args(Libtirpc REQUIRED_VARS 
> Libtirpc_INCLUDE_DIR)
>   if(Libtirpc_FOUND)
>     set(Libtirpc_INCLUDE_DIRS ${Libtirpc_INCLUDE_DIR})
>   endif()
>
>
> then you can use `find_package(Libtirpc)` without depending on `pkg-config`.


I'm sorry but I'm not interested in putting a lot of effort to write a cheap 
hack-a-round to avoid following upstream recommendations. Not using pkg-config 
is just asking for forcing downstream maintainers to specially account for 
LLVM, and it only creates yet another excuse not to use pkg-config in the 
future ('because we managed to hack-it-around so far').

>> libtirpc case never could have worked.
> 
> The reason for that is probably because of 
> lib/sanitizer_common/sanitizer_platform.h saying:
> 
>   // Assume obsolete RPC headers are available by default
>   #if !defined(HAVE_RPC_XDR_H) && !defined(HAVE_TIRPC_RPC_XDR_H)
>   # define HAVE_RPC_XDR_H (SANITIZER_LINUX && !SANITIZER_ANDROID)
>   # define HAVE_TIRPC_RPC_XDR_H 0
>   #endif
> 
> 
> That should probably be addressed too.

Are you suggesting that I remove that?


Repository:
  rCRT Compiler Runtime

https://reviews.llvm.org/D47817



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

Reply via email to