Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.
Summary: [gold] ld.script with relative paths breaks with ld.gold linker
https://bugzilla.redhat.com/show_bug.cgi?id=635935
Summary: [gold] ld.script with relative paths breaks with
ld.gold linker
Product: Fedora
Version: rawhide
Platform: All
OS/Version: Linux
Status: NEW
Severity: medium
Priority: low
Component: binutils
AssignedTo: nickc(a)redhat.com
ReportedBy: petersen(a)redhat.com
QAContact: extras-qa(a)fedoraproject.org
CC: jakub(a)redhat.com, petersen(a)redhat.com,
bos(a)serpentine.com, nickc(a)redhat.com,
mnowak(a)redhat.com, loupgaroublond(a)gmail.com,
fedora-haskell-list(a)redhat.com, dvlasenk(a)redhat.com
Depends on: 635581
Classification: Fedora
Target Release: ---
Clone Of: 635581
ld.gold seems to not like relative paths in link scripts:
[ghc-6.12.3]$ /usr/bin/gcc -nostdlib -nodefaultlibs -Wl,-r -Wl,-x -o
libraries/ghc-prim/dist-install/build/GHC/Generics.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/ld.script
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__1.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/.o::Generics(void)
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__3.o
:
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__16.o
collect2: ld returned 1 exit status
[ghc-6.12.3]$ cat
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/ld.script
INPUT(libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__1.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__2.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__3.o
:
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__16.o)
It links ok with ld.bfd
Here is how I ran into this in bug 635581:
"inplace/bin/ghc-stage1" -H32m -O -package-name ghc-prim-0.2.0.0
-hide-all-packages -i -ilibraries/ghc-prim/.
-ilibraries/ghc-prim/dist-install/build
-ilibraries/ghc-prim/dist-install/build/autogen
-Ilibraries/ghc-prim/dist-install/build
-Ilibraries/ghc-prim/dist-install/build/autogen -Ilibraries/ghc-prim/.
-optP-include -optPlibraries/ghc-prim/dist-install/build/autogen/cabal_macros.h
-package rts-1.0 -split-objs -package-name ghc-prim -XCPP -XMagicHash
-XForeignFunctionInterface -XUnliftedFFITypes -XUnboxedTuples -XEmptyDataDecls
-XNoImplicitPrelude -O2 -XGenerics -fno-warn-deprecated-flags -odir
libraries/ghc-prim/dist-install/build -hidir
libraries/ghc-prim/dist-install/build -stubdir
libraries/ghc-prim/dist-install/build -hisuf hi -osuf o -hcsuf hc -c
libraries/ghc-prim/./GHC/Generics.hs -o
libraries/ghc-prim/dist-install/build/GHC/Generics.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__1.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/.o::Generics(void)
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__3.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__4.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__5.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__6.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__7.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__8.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__9.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__10.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__11.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__12.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__13.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__14.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__15.o
/usr/bin/ld: error: cannot find
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__16.o
collect2: ld returned 1 exit status
make[1]: *** [libraries/ghc-prim/dist-install/build/GHC/Generics.o] Error 1
make: *** [all] Error 2
I see a link script:
[ghc-6.12.3]$ ls libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/
Generics__1.o Generics__12.o Generics__15.o Generics__3.o Generics__6.o
Generics__9.o
Generics__10.o Generics__13.o Generics__16.o Generics__4.o Generics__7.o
ld.script
Generics__11.o Generics__14.o Generics__2.o Generics__5.o Generics__8.o
[petersen@localhost ghc-6.12.3]$ cat
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/ld.script
INPUT(libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__1.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__2.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__3.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__4.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__5.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__6.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__7.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__8.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__9.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__10.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__11.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__12.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__13.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__14.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__15.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/Generics__16.o)
Checking the verbose ghc output the problem occurs here with :
/usr/bin/gcc -nostdlib -nodefaultlibs -Wl,-r -Wl,-x -o
libraries/ghc-prim/dist-install/build/GHC/Generics.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/ld.script
Editing the linking script generated by ghc-split:
[ghc-6.12.3]$ sed -i.orig -e
"s%libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/%%g"
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/ld.script
[ghc-6.12.3]$ /usr/bin/gcc -nostdlib -nodefaultlibs -Wl,-r -Wl,-x -o
libraries/ghc-prim/dist-install/build/GHC/Generics.o
libraries/ghc-prim/dist-install/build/GHC/Generics_o_split/ld.script
[ghc-6.12.3]$
So question that arises is should ld.gold support relative paths in
link scripts or should ghc be changes to just like the local objects?
--- Additional comment from petersen(a)redhat.com on 2010-09-21 12:51:14 EST ---
The above sed change only works with ld.gold not ld.bfd.
So it seems to be a ld.gold change of behaviour or regression
compared to ld.bfd. I would be willing to patch ghc for
Fedora if ld.gold and ld.bfd can agree on at least one of
the versions of link scripts working.
--
Configure bugmail:
https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.