Bug 8127 – dmd link library paths not given precedence over gcc defaults

Status
RESOLVED
Resolution
FIXED
Severity
enhancement
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
Linux
Creation time
2012-05-20T19:53:00Z
Last change time
2012-05-24T00:42:43Z
Assigned to
john
Creator
john

Comments

Comment #0 by john — 2012-05-20T19:53:57Z
Given a machine with globally installed D libraries such as phobos2 which appear in gcc's default library paths, dmd provides no way to supply a library path with higher precedence. Any -L-L/path/... given to dmd will have lower precedence. This makes it very difficult to manage local dmd installs, where it's essential to override any globally installed versions of the phobos2 library. Likewise for any third-party D libraries which one may be developing. I believe the problem stems from dmd's inconsistent use of the -Xlinker flag. The -l and -L link options exist in both native gcc and pass-through forms (latter by way of -Xlinker or -Wl. The dmd link line uses the gcc native form for -l, but the pass-through form for -L. This pattern appears to give precedence to gcc's default library paths during library searches. If link.c is changed to use native gcc options for both -l and -L, the library paths supplied to -L will be given precedence over gcc default paths.
Comment #1 by john — 2012-05-21T18:08:10Z
Comment #2 by github-bugzilla — 2012-05-23T23:13:51Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/4dbf21ec176de2e1d8e42a538173c4582a25f1c9 fix Issue 8127 - dmd link library paths not given precedence over gcc defaults https://github.com/D-Programming-Language/dmd/commit/e95ee9e91a5d0aea169e68fb84d0d92684d22258 Merge pull request #962 from belm0/linker_path_order fix Issue 8127 - dmd link library paths not given precedence over gcc defaults