Bug 18234 – [REG 2.075] Case of link failure when a program is compiled against a static lib
Status
RESOLVED
Resolution
DUPLICATE
Severity
regression
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2018-01-13T09:56:27Z
Last change time
2018-06-11T19:03:38Z
Assigned to
No Owner
Creator
Basile-z
Comments
Comment #0 by b2.temp — 2018-01-13T09:56:27Z
This is a case of link failure when a program is compiled against a static lib, while no problem when passing the sources.
test case is unfortuantely not reduced:
to reproduce with a shell script
---
if [ ! -d "iz" ]; then
git clone https://www.github.com/BBasile/iz.git
fi
cd iz
git checkout v0.6.4
cd scripts
sh compile.sh
cd ../
dmd samples/dictionnary_suffixarray.d lib/iz.a -Iimport
---
On the other hand:
---
dub samples/dictionnary_suffixarray.d <<< "q"
---
or even
---
dmd samples/dictionnary_suffixarray.d import/iz/strings.d import/iz/memory.d -Iimport
---
work fine.
Digger shows that last good DMD is 2.074.1. Three commits are suggested:
> digger: Commit 1e7b526b40852e9b85df3684430e371034cdf7ec (1/1) is untestable.
> digger: There are only untestable commits left to bisect.
> digger: The first bad commit could be any of:
> digger: 1e7b526b40852e9b85df3684430e371034cdf7ec
> digger: 6fecaa8232a427fb3ca29c5a5245e08fc43b71b1
> digger: f0410bea1ad2b130884964d603b34e729b3e4f69
> [email protected](186): We cannot bisect more!
However they don't seem to exist.
Comment #1 by code — 2018-05-20T17:51:35Z
(In reply to Basile B. from comment #0)
> > digger: Commit 1e7b526b40852e9b85df3684430e371034cdf7ec (1/1) is untestable.
> > digger: There are only untestable commits left to bisect.
> > digger: The first bad commit could be any of:
> > digger: 1e7b526b40852e9b85df3684430e371034cdf7ec
> > digger: 6fecaa8232a427fb3ca29c5a5245e08fc43b71b1
> > digger: f0410bea1ad2b130884964d603b34e729b3e4f69
> > [email protected](186): We cannot bisect more!
>
> However they don't seem to exist.
These hashes refer to the commits in Vladimir's top-level repo that combines commits to the various compiler and runtime repositories into one linear history: https://bitbucket.org/cybershadow/d
Unfortunately, the corresponding commits are big master -> stable merges, which is not very helpful:
https://github.com/dlang/dmd/pull/6915https://github.com/dlang/phobos/pull/5491https://github.com/dlang/druntime/pull/1841
Comment #2 by b2.temp — 2018-05-20T21:50:35Z
There's some progress, using -allinst solves the problem
---
if [ ! -d "iz" ]; then
git clone https://www.github.com/BBasile/iz.git
fi
cd iz
git checkout v0.6.4
cd scripts
sh compile.sh
cd ../
dmd samples/dictionnary_suffixarray.d lib/iz.a -Iimport -allinst
---
giving a hint on what the exact problem is i hope.
Comment #3 by b2.temp — 2018-06-11T16:30:42Z
*** Issue 18971 has been marked as a duplicate of this issue. ***