gentooLTO
gentooLTO copied to clipboard
avidemux-core-2.7.4-r1::mv fails to build with LTO
avidemux-core fails to build with LTO. I had to include -fno-lto in the CFLAGS to disable LTO. Somebody please add avidemux-core workarounds to the gentooLTO project, thanks.
GEN libavformat/libavformat.ver GEN libavutil/libavutil.ver LD libavutil/libADM6avutil.so.56 STRIP libavcodec/x86/simple_idct.o STRIP libavcodec/x86/vp9lpf_16bpp.o STRIP libavcodec/x86/vp9itxfm_16bpp.o STRIP libswscale/x86/scale.o GEN libswscale/libswscale.ver STRIP libavcodec/x86/vp9lpf.o LD libpostproc/libADM6postproc.so.55 LD libswscale/libADM6swscale.so.5 STRIP libavcodec/x86/hevc_mc.o /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/temp/libADM6postproc.so.55.UTbTNz.ltrans0.ltrans.o: relocation R_X86_64_PC32 against undefined symbol
b80' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: final link failed: nonrepresentable section on output
collect2: error: ld returned 1 exit status
gmake[3]: *** [/var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/work/avidemux-core-2.7.4_build/ffmpeg/source/ffbuild/library.mak:103: libpostproc/libADM6postproc.so.55] Error 1
gmake[3]: *** Waiting for unfinished jobs....
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/temp/libADM6swscale.so.5.e0poBm.ltrans0.ltrans.o: relocation R_X86_64_PC32 against undefined symbol mmx_00ffw' can not be used when making a shared object; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/temp/libADM6swscale.so.5.e0poBm.ltrans1.ltrans.o: relocation R_X86_64_PC32 against undefined symbol
bF8' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: final link failed: nonrepresentable section on output
collect2: error: ld returned 1 exit status
gmake[3]: *** [/var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/work/avidemux-core-2.7.4_build/ffmpeg/source/ffbuild/library.mak:103: libswscale/libADM6swscale.so.5] Error 1
STRIP libavcodec/x86/vp9itxfm.o
gmake[3]: Leaving directory '/var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/work/avidemux-core-2.7.4_build/ffmpeg/build'
make[2]: *** [CMakeFiles/libavutil_dummy.dir/build.make:61: CMakeFiles/libavutil_dummy] Error 2
make[2]: Leaving directory '/var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/work/avidemux-core-2.7.4_build'
make[1]: *** [CMakeFiles/Makefile2:1100: CMakeFiles/libavutil_dummy.dir/all] Error 2
make[1]: Leaving directory '/var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/work/avidemux-core-2.7.4_build'
make: *** [Makefile:133: all] Error 2
- ERROR: media-libs/avidemux-core-2.7.4-r1::mv failed (compile phase):
- emake failed
`
It says recompile with -fPIC
multiple times - have you tried that instead of disabling lto?
Hello Jannik2099, unfortunately -fPIC didn't help:
GEN libswscale/libswscale.ver STRIP libavcodec/x86/simple_idct.o STRIP libavcodec/x86/vp9itxfm_16bpp.o LD libpostproc/libADM6postproc.so.55 LD libswscale/libADM6swscale.so.5 STRIP libavcodec/x86/hevc_mc.o STRIP libavcodec/x86/vp9lpf.o /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/temp/libADM6postproc.so.55.wLTQcl.ltrans0.ltrans.o: relocation R_X86_64_PC32 against undefined symbol
b80' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: final link failed: nonrepresentable section on output
collect2: error: ld returned 1 exit status
gmake[3]: *** [/var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/work/avidemux-core-2.7.4_build/ffmpeg/source/ffbuild/library.mak:103: libpostproc/libADM6postproc.so.55] Error 1
gmake[3]: *** Waiting for unfinished jobs....
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/temp/libADM6swscale.so.5.vdRELf.ltrans0.ltrans.o: relocation R_X86_64_PC32 against undefined symbol mmx_00ffw' can not be used when making a shared object; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/temp/libADM6swscale.so.5.vdRELf.ltrans1.ltrans.o: relocation R_X86_64_PC32 against undefined symbol
bF8' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: final link failed: nonrepresentable section on output
collect2: error: ld returned 1 exit status
gmake[3]: *** [/var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/work/avidemux-core-2.7.4_build/ffmpeg/source/ffbuild/library.mak:103: libswscale/libADM6swscale.so.5] Error 1
STRIP libavcodec/x86/vp9itxfm.o
gmake[3]: Leaving directory '/var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/work/avidemux-core-2.7.4_build/ffmpeg/build'
make[2]: *** [CMakeFiles/libavutil_dummy.dir/build.make:61: CMakeFiles/libavutil_dummy] Error 2
make[2]: Leaving directory '/var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/work/avidemux-core-2.7.4_build'
make[1]: *** [CMakeFiles/Makefile2:1100: CMakeFiles/libavutil_dummy.dir/all] Error 2
make[1]: Leaving directory '/var/tmp/portage/media-libs/avidemux-core-2.7.4-r1/work/avidemux-core-2.7.4_build'
make: *** [Makefile:133: all] Error 2
- ERROR: media-libs/avidemux-core-2.7.4-r1::mv failed (compile phase):
- emake failed ` -fno-lto was needed to compile successfully. Thanks.
Gentoo bug 650460 has a patch to build avidemux-core with LTO:
--- avidemux_2.7.0/avidemux_core/ffmpeg_package/patches/configure.patch
+++ avidemux_2.7.0/avidemux_core/ffmpeg_package/patches/configure.patch
@@ -0,0 +1,15 @@
+--- configure.orig
++++ configure
+@@ -5447,8 +5447,10 @@
+ # check whether xmm clobbers are supported
+ check_inline_asm xmm_clobbers '"":::"%xmm0"'
+
+- check_inline_asm inline_asm_direct_symbol_refs '"movl '$extern_prefix'test, %eax"' ||
+- check_inline_asm inline_asm_direct_symbol_refs '"movl '$extern_prefix'test(%rip), %eax"'
++ # We always prefer named refs
++ #check_inline_asm inline_asm_direct_symbol_refs '"movl '$extern_prefix'test, %eax"' ||
++ # check_inline_asm inline_asm_direct_symbol_refs '"movl '$extern_prefix'test(%rip), %eax"'
++ disable inline_asm_direct_symbol_refs
+
+ # check whether binutils is new enough to compile SSSE3/MMXEXT
+ enabled ssse3 && check_inline_asm ssse3_inline '"pabsw %xmm0, %xmm0"'