Summary: | media-libs/libdv-1.0.0-r3 does not emerge w/ sys-devel/gcc-7.1.0-r1[pie,ssp] with gold on x86 (error: error: .libs/idct_block_mmx.o: relocation R_386_GOTOFF against preemptible symbol preSC cannot be used when making a shared object) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Martin Väth <martin> |
Component: | Current packages | Assignee: | Gentoo Media-video project <media-video> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | esigra, hurikhan77+bgo, toralf |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 269315 | ||
Attachments: |
build.log
emerge.info |
Created attachment 477916 [details]
emerge.info
Same problem with gcc-6.4.0 The problem with -fuse-ld=bfd not working is that the generated ${WORKDIR}/${P}-abi_x86_32.x86/libtool does not honour CFLAGS wherever it should: After sed -i -e s/compiler_flags=$/compiler_flags=-fuse-ld=bfd/ for that file (once it has been generated in src_configure), compilation runs through. (In reply to Martin Väth from comment #3) > The problem with -fuse-ld=bfd not working is that the generated > ${WORKDIR}/${P}-abi_x86_32.x86/libtool > does not honour CFLAGS wherever it should: After > sed -i -e s/compiler_flags=$/compiler_flags=-fuse-ld=bfd/ > for that file (once it has been generated in src_configure), > compilation runs through. Tried this and works flawlessly. I had to do this because this package failed at build when I had to change the profile to the 17.1 and then had to rebuilt all /lib32 and /usr/lib32 packages. libdv was the only package failed for me until I did your workaround. Thanks! (In reply to jorgicio from comment #4) > (In reply to Martin Väth from comment #3) > > The problem with -fuse-ld=bfd not working is that the generated > > ${WORKDIR}/${P}-abi_x86_32.x86/libtool > > does not honour CFLAGS wherever it should: After > > sed -i -e s/compiler_flags=$/compiler_flags=-fuse-ld=bfd/ > > for that file (once it has been generated in src_configure), > > compilation runs through. > > Tried this and works flawlessly. > > I had to do this because this package failed at build when I had to change > the profile to the 17.1 and then had to rebuilt all /lib32 and /usr/lib32 > packages. > libdv was the only package failed for me until I did your workaround. > > Thanks! Similar problem here - but on ~amd64, 17.1, gcc-9.1, gold linker. Again, solution in https://bugs.gentoo.org/622662#c3 fixed things. Could the fix please be rolled out as an updated ebuild? (In reply to peteru from comment #6) > Could the fix please be rolled out as an updated ebuild? Sure. libtool should be handled fine now though. *** Bug 721450 has been marked as a duplicate of this bug. *** The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6f6a5c0fc9a0c0f91928dcd26a112eb2ceb8ae03 commit 6f6a5c0fc9a0c0f91928dcd26a112eb2ceb8ae03 Author: Sam James <sam@gentoo.org> AuthorDate: 2021-11-07 04:54:29 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2021-11-07 04:54:43 +0000 media-libs/libdv: disable gold Upstream is dead so let's just workaround the failure. Bug: https://bugs.gentoo.org/622662 Signed-off-by: Sam James <sam@gentoo.org> media-libs/libdv/libdv-1.0.0-r4.ebuild | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) |
Created attachment 477914 [details] build.log media-libs/libdv-1.0.0-r3 fails during linking when emerging with sys-devel/gcc-7.1.0-r1[pie,ssp] when using the gold linker on an x86 system. The failure does not occur on an amd64 system. According to the error messages, USE=pie of gcc is perhaps related. Adding -fno-PIE -fno-pie -no-pie -fno-stack-protector -fuse-ld=bfd to CFLAGS CXXFLAGS AFLAGS ASFLAGS AMFLAGS LDLAGS or exporting LDFLAGS=/usr/bin/ld.bfd did not help. However, binutils-config --linker ld.bfd did.