| Summary: | =media-video/mkvtoolnix-6.5.0 src/merge/libmtxmerge.a(output_control.o): In function `finish_file(bool, bool, bool)': output_control.cpp:(.text+0x66d5): undefined reference to `libebml::EbmlVoid::operator libebml::EbmlId const&() const' | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Andrew Savchenko <bircoph> |
| Component: | Current packages | Assignee: | Gentoo Media-video project <media-video> |
| Status: | RESOLVED TEST-REQUEST | ||
| Severity: | normal | CC: | bircoph, Martin.Jansa |
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: |
build.log
environment emerge --info build.log environment emerge --info emerge --info |
||
|
Description
Andrew Savchenko
2013-11-17 13:08:21 UTC
Created attachment 363408 [details]
build.log
Created attachment 363410 [details]
environment
Created attachment 363412 [details]
emerge --info
Should be (skipping output from other parallel jobs): x86_64-pc-linux-gnu-g++ -march=native -O2 -funswitch-loops -fpredictive-commoning -ftree-vectorize -ftree-slp-vectorize -fvect-cost-model -fgcse-after-reload -ftree-partial-pre -ftree-loop-linear -ftree-loop-im -fweb -frename-registers -fomit-frame-pointer -fexcess-precision=fast -pipe -fstack-protector -frecord-gcc-switches -Wl,-O1,--as-needed,--sort-common,-z,combreloc,-z,relro,-z,now,--relax,--hash-style=gnu -L/usr/lib64 -Llib/avilib-0.6.10 -Llib/librmff -Lsrc/common -o src/mkvmerge src/merge/mkvmerge.o -Lsrc/merge -lmtxmerge -Lsrc/input -lmtxinput -Lsrc/output -lmtxoutput -lmtxcommon -lmagic -lz -lmatroska -lebml -lz -lpugixml -lboost_regex-1_49 -lboost_filesystem-1_49 -lboost_system-1_49 -lavi -lrmff -Lsrc/mpegparser -lmpegparser -lFLAC -logg -lm -lvorbis -logg src/merge/libmtxmerge.a(output_control.o): In function `finish_file(bool, bool, bool)': output_control.cpp:(.text+0x66d5): undefined reference to `libebml::EbmlVoid::operator libebml::EbmlId const&() const' collect2: error: ld returned 1 exit status I found that it compiles with CXXFLAGS="-O2 -pipe" and fails with the same error with CXXFLAGS="-march=native -O2 -pipe". ATM I'm not sure this is a gcc bug, because -march=native is a quite sane flag. On gcc-4.8.1-r1 on this host -march=native expands to: $ gcc -### -march=native -c /usr/include/stdlib.h ... COLLECT_GCC_OPTIONS='-march=native' /usr/libexec/gcc/x86_64-pc-linux-gnu/4.8.1/cc1 -quiet /usr/include/stdlib.h "-march=nocona" -mcx16 -msahf -mno-movbe -mno-aes -mno-pclmul -mno-popcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-bmi2 -mno-tbm -mno-avx -mno-avx2 -mno-sse4.2 -mno-sse4.1 -mno-lzcnt -mno-rtm -mno-hle -mno-rdrnd -mno-f16c -mno-fsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mno-xsave -mno-xsaveopt --param "l1-cache-size=0" --param "l1-cache-line-size=0" --param "l2-cache-size=256" "-mtune=nocona" -quiet -dumpbase stdlib.h -auxbase stdlib -o /tmp/cc1M30Yn.s "--output-pch=/usr/include/stdlib.h.gch" Created attachment 366806 [details]
build.log
The same problem is still here with gcc-4.8.2, mkvtoolnix-6.6.0 and CXXFLAGS="-march=nocona -O2". Removal of either -march=nocona or -O2 allows program to compile. Looks like some nasty gcc bug...
Created attachment 366808 [details]
environment
Created attachment 366810 [details]
emerge --info
The same problem on another host and another arch (~x86). If output_control.cpp is compiled with CXXFLAGS="-O2", link fails as above. If compiled with -O1, links fine. mkvtoolnix-6.7.0, gcc-4.8.2. Created attachment 371398 [details]
emerge --info
please try with latest mkvtoolnix/gcc, maybe it was a bug somewhere else that was fixed meanwhile Hi, with gcc-4.9.3 and mkvtoolnix-8.4.0 on one ~x86 box I can't reproduce this bug. Two other boxes are not suitable for testing right now. |