gentooLTO icon indicating copy to clipboard operation
gentooLTO copied to clipboard

avidemux-core-2.7.4-r1::mv fails to build with LTO

Open fatalhalt opened this issue 5 years ago • 3 comments

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

`

fatalhalt avatar Feb 01 '20 23:02 fatalhalt

It says recompile with -fPIC multiple times - have you tried that instead of disabling lto?

Jannik2099 avatar Feb 02 '20 22:02 Jannik2099

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.

fatalhalt avatar Feb 07 '20 05:02 fatalhalt

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"'

PF4Public avatar Aug 07 '21 12:08 PF4Public