When building package sg3_utils on buildroot we get this error: ``` /home/peko/autobuild/instance-0/output-1/host/bin/m68k-linux-gcc -DHAVE_CONFIG_H -I. -I.. -iquote ../include -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -W -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -g2 -fno-dwarf2-cfi-asm -Wl,-elf2flt=-r -static -c -o sg_dd.o sg_dd.c /tmp/cccfKmZB.s: Assembler messages: /tmp/cccfKmZB.s:17093: Error: value -16034 out of range /tmp/cccfKmZB.s:17093: Error: value of -16034 too large for field of 1 byte at 23149 make[3]: *** [Makefile:1176: sg_vpd.o] Error 1 ``` To reproduce it: ``` # git clone git://git.busybox.net/buildroot # cd buildroot # git checkout feb9185fc185c1f76e3789b0dc521e3cf98c1ebb # wget -O .config http://autobuild.buildroot.net/results/c49300d12a209b18f41d389f092324592b881277/config # make olddefconfig && make ``` I'm going to add the preprocessed files.
Created attachment 52188 [details] Pre-processed sg_dd.c(sg_dd.i)
Created attachment 52189 [details] Pre-processed sg_dd.c(sg_dd.s)
Reducing that right now..
Please provide output of m68k-linux-gcc with -v option.
This is the output log with -v. Now it's built not in parallel and the file where gcc fails is not sg_dd.c so I'm going to update .i and .s files. ``` Target: m68k-buildroot-uclinux-uclibc Configured with: ./configure --prefix=/builds/bootlin/toolchains-builder/build/m68k-coldfire--uclibc--stable-2021.11-1 --sysconfdir=/builds/bootlin/toolchains-builder/build/m68k-coldfire--uclibc--stable-2021.11-1/etc --enable-static --target=m68k-buildroot-uclinux-uclibc --with-sysroot=/builds/bootlin/toolchains-builder/build/m68k-coldfire--uclibc--stable-2021.11-1/m68k-buildroot-uclinux-uclibc/sysroot --enable-__cxa_atexit --with-gnu-ld --disable-libssp --disable-multilib --disable-decimal-float --with-gmp=/builds/bootlin/toolchains-builder/build/m68k-coldfire--uclibc--stable-2021.11-1 --with-mpc=/builds/bootlin/toolchains-builder/build/m68k-coldfire--uclibc--stable-2021.11-1 --with-mpfr=/builds/bootlin/toolchains-builder/build/m68k-coldfire--uclibc--stable-2021.11-1 --with-pkgversion='Buildroot toolchains.bootlin.com-2021.11-1' --with-bugurl=http://bugs.buildroot.net/ --without-zstd --disable-libquadmath --disable-libquadmath-support --disable-libsanitizer --disable-tls --enable-threads --without-isl --without-cloog --with-cpu=5208 --enable-languages=c,c++,fortran --with-build-time-tools=/builds/bootlin/toolchains-builder/build/m68k-coldfire--uclibc--stable-2021.11-1/m68k-buildroot-uclinux-uclibc/bin --disable-shared --disable-libgomp Thread model: posix Supported LTO compression algorithms: zlib gcc version 10.3.0 (Buildroot toolchains.bootlin.com-2021.11-1) COLLECT_GCC_OPTIONS='-msoft-float' '-mcpu=5208' '-D' 'HAVE_CONFIG_H' '-I' '.' '-I' '..' '-iquote' '../include' '-D' '_LARGEFILE64_SOURCE' '-D' '_FILE_OFFSET_BITS=64' '-D' '_LARGEFILE_SOURCE' '-D' '_LARGEFILE64_SOURCE' '-D' '_FILE_OFFSET_BITS=64' '-Wall' '-Wextra' '-D' '_LARGEFILE_SOURCE' '-D' '_LARGEFILE64_SOURCE' '-D' '_FILE_OFFSET_BITS=64' '-Os' '-g2' '-fno-dwarf2-cfi-asm' '-static' '-v' '-save-temps' '-c' '-o' 'sg_vpd.o' /home/giuliobenetti/br_reproduce/c49300d12a209b18f41d389f092324592b881277/output/host/opt/ext-toolchain/bin/../libexec/gcc/m68k-buildroot-uclinux-uclibc/10.3.0/cc1 -E -quiet -v -I . -I .. -iprefix /home/giuliobenetti/br_reproduce/c49300d12a209b18f41d389f092324592b881277/output/host/opt/ext-toolchain/bin/../lib/gcc/m68k-buildroot-uclinux-uclibc/10.3.0/ -isysroot /home/giuliobenetti/br_reproduce/c49300d12a209b18f41d389f092324592b881277/output/host/m68k-buildroot-uclinux-uclibc/sysroot -D HAVE_CONFIG_H -D _LARGEFILE64_SOURCE -D _FILE_OFFSET_BITS=64 -D _LARGEFILE_SOURCE -D _LARGEFILE64_SOURCE -D _FILE_OFFSET_BITS=64 -D _LARGEFILE_SOURCE -D _LARGEFILE64_SOURCE -D _FILE_OFFSET_BITS=64 -iquote ../include sg_vpd.c -msoft-float -mcpu=5208 -Wall -Wextra -fno-dwarf2-cfi-asm -g2 -fworking-directory -Os -fpch-preprocess -o sg_vpd.i ignoring duplicate directory "/home/giuliobenetti/br_reproduce/c49300d12a209b18f41d389f092324592b881277/output/host/opt/ext-toolchain/bin/../lib/gcc/../../lib/gcc/m68k-buildroot-uclinux-uclibc/10.3.0/include" ignoring nonexistent directory "/home/giuliobenetti/br_reproduce/c49300d12a209b18f41d389f092324592b881277/output/host/m68k-buildroot-uclinux-uclibc/sysroot/usr/local/include" ignoring duplicate directory "/home/giuliobenetti/br_reproduce/c49300d12a209b18f41d389f092324592b881277/output/host/opt/ext-toolchain/bin/../lib/gcc/../../lib/gcc/m68k-buildroot-uclinux-uclibc/10.3.0/include-fixed" ignoring duplicate directory "/home/giuliobenetti/br_reproduce/c49300d12a209b18f41d389f092324592b881277/output/host/opt/ext-toolchain/bin/../lib/gcc/../../lib/gcc/m68k-buildroot-uclinux-uclibc/10.3.0/../../../../m68k-buildroot-uclinux-uclibc/include" #include "..." search starts here: ../include #include <...> search starts here: . .. /home/giuliobenetti/br_reproduce/c49300d12a209b18f41d389f092324592b881277/output/host/opt/ext-toolchain/bin/../lib/gcc/m68k-buildroot-uclinux-uclibc/10.3.0/include /home/giuliobenetti/br_reproduce/c49300d12a209b18f41d389f092324592b881277/output/host/opt/ext-toolchain/bin/../lib/gcc/m68k-buildroot-uclinux-uclibc/10.3.0/include-fixed /home/giuliobenetti/br_reproduce/c49300d12a209b18f41d389f092324592b881277/output/host/opt/ext-toolchain/bin/../lib/gcc/m68k-buildroot-uclinux-uclibc/10.3.0/../../../../m68k-buildroot-uclinux-uclibc/include /home/giuliobenetti/br_reproduce/c49300d12a209b18f41d389f092324592b881277/output/host/m68k-buildroot-uclinux-uclibc/sysroot/usr/include End of search list. COLLECT_GCC_OPTIONS='-msoft-float' '-mcpu=5208' '-D' 'HAVE_CONFIG_H' '-I' '.' '-I' '..' '-iquote' '../include' '-D' '_LARGEFILE64_SOURCE' '-D' '_FILE_OFFSET_BITS=64' '-D' '_LARGEFILE_SOURCE' '-D' '_LARGEFILE64_SOURCE' '-D' '_FILE_OFFSET_BITS=64' '-Wall' '-Wextra' '-D' '_LARGEFILE_SOURCE' '-D' '_LARGEFILE64_SOURCE' '-D' '_FILE_OFFSET_BITS=64' '-Os' '-g2' '-fno-dwarf2-cfi-asm' '-static' '-v' '-save-temps' '-c' '-o' 'sg_vpd.o' /home/giuliobenetti/br_reproduce/c49300d12a209b18f41d389f092324592b881277/output/host/opt/ext-toolchain/bin/../libexec/gcc/m68k-buildroot-uclinux-uclibc/10.3.0/cc1 -fpreprocessed sg_vpd.i -quiet -dumpbase sg_vpd.c -msoft-float -mcpu=5208 -auxbase-strip sg_vpd.o -g2 -Os -Wall -Wextra -version -fno-dwarf2-cfi-asm -o sg_vpd.s GNU C17 (Buildroot toolchains.bootlin.com-2021.11-1) version 10.3.0 (m68k-buildroot-uclinux-uclibc) compiled by GNU C version 4.9.2, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C17 (Buildroot toolchains.bootlin.com-2021.11-1) version 10.3.0 (m68k-buildroot-uclinux-uclibc) compiled by GNU C version 4.9.2, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 398ace21b84f90bbc3bb6d683e915903 COLLECT_GCC_OPTIONS='-msoft-float' '-mcpu=5208' '-D' 'HAVE_CONFIG_H' '-I' '.' '-I' '..' '-iquote' '../include' '-D' '_LARGEFILE64_SOURCE' '-D' '_FILE_OFFSET_BITS=64' '-D' '_LARGEFILE_SOURCE' '-D' '_LARGEFILE64_SOURCE' '-D' '_FILE_OFFSET_BITS=64' '-Wall' '-Wextra' '-D' '_LARGEFILE_SOURCE' '-D' '_LARGEFILE64_SOURCE' '-D' '_FILE_OFFSET_BITS=64' '-Os' '-g2' '-fno-dwarf2-cfi-asm' '-static' '-v' '-save-temps' '-c' '-o' 'sg_vpd.o' /home/giuliobenetti/br_reproduce/c49300d12a209b18f41d389f092324592b881277/output/host/opt/ext-toolchain/bin/../lib/gcc/m68k-buildroot-uclinux-uclibc/10.3.0/../../../../m68k-buildroot-uclinux-uclibc/bin/as -mno-float -mcpu=5208 -o sg_vpd.o sg_vpd.s sg_vpd.s: Assembler messages: sg_vpd.s:17093: Error: value -16034 out of range sg_vpd.s:17093: Error: value of -16034 too large for field of 1 byte at 23149 ```
Created attachment 52199 [details] Pre-processed sg_vpd.c(sg_vpd.i)
Created attachment 52200 [details] Pre-processed sg_vpd.c(sg_vpd.s)
Note that bug is still present in gcc 11.2.0 so it's probable it's still in master branch. Thank you for taking care. Best regards
It's a duplicated case vector load, where the second one is placed far off from its table.
Ah, forgot to mention that it builds fine with -O0.
Reduced test-case: $ cat pr104028.c # 1 "" 3 struct { _Bool do_force; int examine; int vpd_pn } svpd_decode_t10_op; svpd_decode_t10_sg_fd, svpd_decode_t10_op_1, svpd_decode_t10_op_2; svpd_decode_t10_rp() { _Bool inhex_active = svpd_decode_t10_sg_fd; int pn = svpd_decode_t10_op_2; if (inhex_active) pn = svpd_decode_t10_rp; if (!inhex_active && svpd_decode_t10_op_1) vpd_fetch_page(); switch (pn) { case 2: if (inhex_active) sg_ll_inquiry_v2(); case 181: vpd_fetch_page(); case 182: vpd_fetch_page(); case 183: vpd_fetch_page(); case 184: vpd_fetch_page(svpd_decode_t10_op); case 185: vpd_fetch_page(); } } $ m68k-suse-linux-gcc pr104028.c -c -mcpu=5208 -Os /tmp/cciKSGSl.s: Assembler messages: /tmp/cciKSGSl.s:77: Error: value -134 out of range /tmp/cciKSGSl.s:77: Error: value of ffffff7a too large for field of 1 byte at 000000cf $ m68k-suse-linux-gcc pr104028.c --version m68k-suse-linux-gcc (SUSE Linux) 11.2.1 20220103 [revision d4a1d3c4b377f1d4acb34fe1b55b5088a3f293f6] we speak about the following instruction: 77 move.w .L18(%pc,%d2.l),%d0
The reduced test case stopped failing in gcc >= 12 with # first new commit: [2e96b5f14e4025691b57d2301d71aa6092ed44bc] Backwards jump threader rewrite with ranger. but the original test case (sg_vpd.i) still fails with current master.