[PATCH] D33726: [driver][netbsd] Build and pass `-L` arguments to the linker

Kamil Rytarowski via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 8 15:08:47 PDT 2017


On 08.06.2017 22:39, Rui Ueyama wrote:
> On Wed, Jun 7, 2017 at 6:55 AM, Joerg Sonnenberger via Phabricator
> <reviews at reviews.llvm.org <mailto:reviews at reviews.llvm.org>> wrote:
> 
>     joerg added a comment.
> 
>     In https://reviews.llvm.org/D33726#774105
>     <https://reviews.llvm.org/D33726#774105>, @ruiu wrote:
> 
>     > I'm totally against adding per-OS path knowledge to our linker. Compilers already know include paths and I don't want to maintain another list of paths in the linker. Also this can be more confusing than useful when you are doing cross-linking.
> 
> 
>     The only reason for compilers to maintain that list is for finding
>     crt*.o. They otherwise don't care about the library paths at all.
>     There is no confusion for cross-linking as long as proper sysroot
>     support is used. Which we have been doing on NetBSD for ages.
> 
> 
> That's not what clang is trying to do for all Unix-like systems (except
> NetBSD due to the bug), right? The compiler driver actually passes
> library paths to the linker. If you think that is wrong, you should make
> a change to stop doing that on all systems. I don't see a reason to not
> do this only on NetBSD.
> 

I'm convinced that Joerg is right, that there is need some knowledge on
the LLD side. I'm more relaxed about -L paths as long as they work for
regular use-cases, but DT_RPATH vs DT_RUNPATH behaves differently on
Linux and NetBSD.

>     > For all OSes other than NetBSD, LLD works fine with the clang driver as the driver passes include paths to the linker. I don't see any reason not to do the same thing for NetBSD. That stands even if the linker has to have a list of include paths.
> 
>     Sorry, but this is again ignorant and wrong. The very same problem
>     of build systems calling ld directly apply on most other systems.
>     Even then, the list of linker paths is not the only OS-specific
>     knowledge. Things like the DT_RPATH vs DT_RUNPATH mess, init vs
>     init_array all belong into this category. The list goes on.
> 
> 
>     Repository:
>       rL LLVM
> 
>     https://reviews.llvm.org/D33726 <https://reviews.llvm.org/D33726>
> 
> 
> 
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170609/e1b128a8/attachment.sig>


More information about the cfe-commits mailing list