Bug 8986

Summary: qt5imageformats fails to build on AArch64
Product: buildroot Reporter: Uwe Hermann <uwe>
Component: OtherAssignee: unassigned
Status: RESOLVED FIXED    
Severity: normal CC: buildroot
Priority: P5    
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Host: Target:
Build:
Attachments: config file

Description Uwe Hermann 2016-06-12 18:09:56 UTC
How to reproduce: Fresh buildroot clone as of today, make menuconfig, select the aarch64 big-endian target with glibc (default), select qt5 and qtgui, qtwidgets, qtsvg, imageformats components (.config attached).

The qtimageformats components fails to build like this:

/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/host/usr/bin/aarch64_be-buildroot-linux-gnu-g++ --sysroot=/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/host/usr/aarch64_be-buildroot-linux-gnu/sysroot -Wl,--no-undefined -Wl,-O1 -Wl,--enable-new-dtags -shared -o libqwebp.so .obj/main.o .obj/qwebphandler.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dec/alpha.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dec/buffer.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dec/frame.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dec/idec.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dec/io.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dec/quant.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dec/tree.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dec/vp8.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dec/vp8l.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dec/webp.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/demux/demux.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/cpu.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/dec.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/dec_sse2.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/enc.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/enc_sse2.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/lossless.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/upsampling.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/upsampling_sse2.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/yuv.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/alpha_processing.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/alpha_processing_sse2.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/dec_clip_tables.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/dec_mips32.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/enc_avx2.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/enc_mips32.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/lossless_mips32.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/lossless_sse2.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/yuv_mips32.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/yuv_sse2.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/alpha.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/analysis.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/backward_references.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/config.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/cost.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/filter.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/frame.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/histogram.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/iterator.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/picture.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/quant.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/syntax.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/token.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/tree.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/vp8l.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/webpenc.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/picture_csp.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/picture_psnr.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/picture_rescale.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/enc/picture_tools.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/mux/muxedit.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/mux/muxinternal.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/mux/muxread.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/utils/bit_reader.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/utils/bit_writer.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/utils/color_cache.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/utils/filters.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/utils/huffman.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/utils/huffman_encode.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/utils/quant_levels.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/utils/quant_levels_dec.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/utils/random.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/utils/rescaler.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/utils/thread.o .obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/utils/utils.o  -lQt5Gui -lQt5Core -lrt -ldl -lpthread  
.obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/dec.o: In function `VP8DspInit':
dec.c:(.text+0x2bbc): undefined reference to `VP8DspInitNEON'
.obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/enc.o: In function `VP8EncDspInit':
enc.c:(.text+0x19d0): undefined reference to `VP8EncDspInitNEON'
.obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/lossless.o: In function `VP8LDspInit':
lossless.c:(.text+0x2ac4): undefined reference to `VP8LDspInitNEON'
.obj/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/3rdparty/libwebp/src/dsp/upsampling.o: In function `WebPInitUpsamplers':
upsampling.c:(.text+0x3ebc): undefined reference to `WebPInitUpsamplersNEON'
collect2: error: ld returned 1 exit status
Makefile:276: recipe for target '../../../../plugins/imageformats/libqwebp.so' failed
make[5]: *** [../../../../plugins/imageformats/libqwebp.so] Error 1
make[5]: Leaving directory '/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/plugins/imageformats/webp'
Makefile:172: recipe for target 'sub-webp-make_first' failed
make[4]: *** [sub-webp-make_first] Error 2
make[4]: Leaving directory '/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/plugins/imageformats'
Makefile:42: recipe for target 'sub-imageformats-make_first' failed
make[3]: *** [sub-imageformats-make_first] Error 2
make[3]: Leaving directory '/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src/plugins'
Makefile:43: recipe for target 'sub-plugins-make_first' failed
make[2]: *** [sub-plugins-make_first] Error 2
make[2]: Leaving directory '/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/src'
Makefile:43: recipe for target 'sub-src-make_first' failed
make[1]: *** [sub-src-make_first] Error 2
make[1]: Leaving directory '/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0'
package/pkg-generic.mk:195: recipe for target '/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/.stamp_built' failed
make: *** [/home/jenkins_slave/a/buildroot-aarch64_be-buildroot-linux-gnu/output/build/qt5imageformats-5.6.0/.stamp_built] Error 2
Comment 1 Uwe Hermann 2016-06-12 18:10:32 UTC
Created attachment 6456 [details]
config file
Comment 2 Thomas Petazzoni 2016-06-12 19:29:32 UTC
Thanks for the report! However, it seems that it's not limited to AArch64 big-endian: AArch64 little-endian is also affected, see http://autobuild.buildroot.net/?reason=qt5imageformats-5.6.0.
Comment 3 Peter Seiderer 2016-07-25 20:27:44 UTC
Suggested patch, see [1], only compile tested with given config...

[1] https://patchwork.ozlabs.org/patch/652398/
Comment 4 Peter Korsgaard 2016-07-27 13:10:52 UTC
Fixed by Peter in git, thanks:
https://git.buildroot.net/buildroot/commit/?id=c18d403a8df7a3dbe3aaffeb20f214ecd4d0bc3b