Bug 10156 - glibc compilation fails for X86 32bits (i386)
Summary: glibc compilation fails for X86 32bits (i386)
Status: RESOLVED FIXED
Alias: None
Product: buildroot
Classification: Unclassified
Component: Other (show other bugs)
Version: unspecified
Hardware: All Linux
: P5 critical
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-08-03 09:56 UTC by Frederic MATHIEU
Modified: 2017-08-11 14:03 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:


Attachments
buildroot .config (1.48 KB, application/xml)
2017-08-03 09:56 UTC, Frederic MATHIEU
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Frederic MATHIEU 2017-08-03 09:56:06 UTC
Created attachment 7146 [details]
buildroot .config

With arch i386 (see config file), The latest buildroot versions fails to compile glibc (2.24 or 2.25).
tested with : 2017.05.2 and 2017.02.5

The same config works fine with buildroot version 2017.02.3.


...
/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/../../../toolchain/2017.02.5_X86_32/host/usr/bin/i686-buildroot-linux-gnu-gcc ../sysdeps/i386/i686/multiarch/varshift.c -c -std=gnu11 -fgnu89-inline  -O2 -Wall -Werror -Wundef -Wwrite-strings -fmerge-all-constants -frounding-math -Wstrict-prototypes -Wold-style-definition   -fPIC -Wa,-mtune=i686  -mno-sse -mno-mmx -mfpmath=387 -msse4  -ftls-model=initial-exec      -I../include -I/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/string  -I/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build  -I../sysdeps/unix/sysv/linux/i386/i686  -I../sysdeps/i386/i686/nptl  -I../sysdeps/unix/sysv/linux/i386  -I../sysdeps/unix/sysv/linux/x86  -I../sysdeps/i386/nptl  -I../sysdeps/unix/sysv/linux/include -I../sysdeps/unix/sysv/linux  -I../sysdeps/nptl  -I../sysdeps/pthread  -I../sysdeps/gnu  -I../sysdeps/unix/inet  -I../sysdeps/unix/sysv  -I../sysdeps/unix/i386  -I../sysdeps/unix  -I../sysdeps/posix  -I../sysdeps/i386/i686/fpu/multiarch  -I../sysdeps/i386/i686/fpu  -I../sysdeps/i386/i686/multiarch  -I../sysdeps/i386/i686  -I../sysdeps/i386/fpu  -I../sysdeps/x86/fpu/include -I../sysdeps/x86/fpu  -I../sysdeps/i386  -I../sysdeps/x86  -I../sysdeps/wordsize-32  -I../sysdeps/ieee754/ldbl-96  -I../sysdeps/ieee754/dbl-64  -I../sysdeps/ieee754/flt-32  -I../sysdeps/ieee754  -I../sysdeps/generic  -I.. -I../libio -I. -nostdinc -isystem /home/dev01/data/toolchain/2017.02.5_X86_32/host/usr/bin/../lib/gcc/i686-buildroot-linux-gnu/4.9.4/include -isystem /home/dev01/data/toolchain/2017.02.5_X86_32/host/usr/bin/../lib/gcc/i686-buildroot-linux-gnu/4.9.4/include-fixed -isystem /home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/../../../toolchain/2017.02.5_X86_32/host/usr/i686-buildroot-linux-gnu/sysroot/usr/include  -D_LIBC_REENTRANT -include /home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/libc-modules.h -DMODULE_NAME=rtld -include ../include/libc-symbols.h  -DPIC -DSHARED     -o /home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/string/rtld-varshift.os -MD -MP -MF /home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/string/rtld-varshift.os.dt -MT /home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/string/rtld-varshift.os  -mno-sse -mno-mmx -mfpmath=387
In file included from ../sysdeps/x86_64/multiarch/strcspn-c.c:22:0,
                 from ../sysdeps/i386/i686/multiarch/strcspn-c.c:2:
../sysdeps/x86_64/multiarch/varshift.h: In function '__m128i_shift_right':
../sysdeps/x86_64/multiarch/varshift.h:26:1: error: SSE vector return without SSE enabled changes the ABI [-Werror=psabi]
 {
 ^
In file included from /home/dev01/data/toolchain/2017.02.5_X86_32/host/usr/lib/gcc/i686-buildroot-linux-gnu/4.9.4/include/pmmintrin.h:31:0,
                 from /home/dev01/data/toolchain/2017.02.5_X86_32/host/usr/lib/gcc/i686-buildroot-linux-gnu/4.9.4/include/tmmintrin.h:31,
                 from /home/dev01/data/toolchain/2017.02.5_X86_32/host/usr/lib/gcc/i686-buildroot-linux-gnu/4.9.4/include/smmintrin.h:32,
                 from /home/dev01/data/toolchain/2017.02.5_X86_32/host/usr/lib/gcc/i686-buildroot-linux-gnu/4.9.4/include/nmmintrin.h:31,
                 from ../sysdeps/x86_64/multiarch/strcspn-c.c:20,
                 from ../sysdeps/i386/i686/multiarch/strcspn-c.c:2:
/home/dev01/data/toolchain/2017.02.5_X86_32/host/usr/lib/gcc/i686-buildroot-linux-gnu/4.9.4/include/emmintrin.h:692:1: error: inlining failed in call to always_inline '_mm_loadu_si128': target specific option mismatch
 _mm_loadu_si128 (__m128i const *__P)
 ^
In file included from ../sysdeps/x86_64/multiarch/strcspn-c.c:22:0,
                 from ../sysdeps/i386/i686/multiarch/strcspn-c.c:2:
../sysdeps/x86_64/multiarch/varshift.h:27:10: error: called from here
   return _mm_shuffle_epi8 (value,
          ^
In file included from /home/dev01/data/toolchain/2017.02.5_X86_32/host/usr/lib/gcc/i686-buildroot-linux-gnu/4.9.4/include/smmintrin.h:32:0,
                 from /home/dev01/data/toolchain/2017.02.5_X86_32/host/usr/lib/gcc/i686-buildroot-linux-gnu/4.9.4/include/nmmintrin.h:31,
                 from ../sysdeps/x86_64/multiarch/strcspn-c.c:20,
                 from ../sysdeps/i386/i686/multiarch/strcspn-c.c:2:
/home/dev01/data/toolchain/2017.02.5_X86_32/host/usr/lib/gcc/i686-buildroot-linux-gnu/4.9.4/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
 _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
 ^
In file included from ../sysdeps/x86_64/multiarch/strcspn-c.c:22:0,
                 from ../sysdeps/i386/i686/multiarch/strcspn-c.c:2:
../sysdeps/x86_64/multiarch/varshift.h:27:10: error: called from here
   return _mm_shuffle_epi8 (value,
          ^
cc1: all warnings being treated as errors
/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/sysd-rules:1661: recipe for target '/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/string/rtld-strcspn-c.os' failed
make[6]: *** [/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/string/rtld-strcspn-c.os] Error 1
make[6]: *** Waiting for unfinished jobs....
In file included from ../sysdeps/x86_64/multiarch/varshift.c:19:0,
                 from ../sysdeps/i386/i686/multiarch/varshift.c:1:
../sysdeps/x86_64/multiarch/varshift.h: In function '__m128i_shift_right':
../sysdeps/x86_64/multiarch/varshift.h:26:1: error: SSE vector return without SSE enabled changes the ABI [-Werror=psabi]
 {
 ^
cc1: all warnings being treated as errors
/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/sysd-rules:1661: recipe for target '/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/string/rtld-varshift.os' failed
make[6]: *** [/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/string/rtld-varshift.os] Error 1
../o-iterator.mk:9: recipe for target '/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/string/rtld-strchr.os' failed
make[5]: *** [/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/string/rtld-strchr.os] Error 2
Makefile:376: recipe for target '/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/elf/rtld-libc.a' failed
make[4]: *** [/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/build/elf/rtld-libc.a] Error 2
Makefile:214: recipe for target 'elf/subdir_lib' failed
make[3]: *** [elf/subdir_lib] Error 2
Makefile:9: recipe for target 'all' failed
make[2]: *** [all] Error 2
package/pkg-generic.mk:216: recipe for target '/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/.stamp_built' failed
make[1]: *** [/home/dev01/data/projects/buildroot-2017.02.5_X86_32/output/build/glibc-2.24/.stamp_built] Error 2
Makefile:79: recipe for target '_all' failed
make: *** [_all] Error 2
Comment 1 Thomas Petazzoni 2017-08-03 11:26:01 UTC
Thanks for the bug report. Since the regression was introduced between 2017.02.3 and 2017.02.5, could you do a "git bisect" to find where the problem is ?
Comment 2 Thomas Petazzoni 2017-08-05 13:47:22 UTC
I've submitted a patch that fixes this issue, see https://patchwork.ozlabs.org/patch/798221/.