| Summary: | eglibc build failure on several ppc machines | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] BSPs | Reporter: | Tudor Florea <tudor.florea> |
| Component: | bsps-meta-fsl-ppc | Assignee: | Zhenhua Luo <zhenhua.luo> |
| Status: | CLOSED FIXED | QA Contact: | |
| Severity: | critical | ||
| Priority: | Medium+ | CC: | b40290, jessica.zhang, raj.khem, richard.purdie, sgw |
| Version: | 1.6 | ||
| Target Milestone: | 1.6 M4 | ||
| Hardware: | Other | ||
| OS: | ppc | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |
This is more of a FSL issue since you are including the meta-fsl-ppc layer and may set additional flags for compiler/linker. This is a ppc specific problem that comes from this patch: pmeta/recipes-core/eglibc/eglibc-2.19/ppc_slow_ieee754_sqrt.patch Please test out the patch I posted to contrib tree http://git.openembedded.org/openembedded-core-contrib/commit/?h=kraj/misc&id=c5a2242079722ab266f4c9c9cddcd75caa3f1505 (In reply to comment #3) > Please test out the patch I posted to contrib tree > > http://git.openembedded.org/openembedded-core-contrib/commit/?h=kraj/ > misc&id=c5a2242079722ab266f4c9c9cddcd75caa3f1505 The build issue goes away after applying the patch. (In reply to comment #4) > (In reply to comment #3) > > Please test out the patch I posted to contrib tree > > > > http://git.openembedded.org/openembedded-core-contrib/commit/?h=kraj/ > > misc&id=c5a2242079722ab266f4c9c9cddcd75caa3f1505 > > The build issue goes away after applying the patch. How about boot and run apply the patch and test system in p4080ds boards. the system can boot successfully and gcc work well. 1. Test step: (1) tftp 1000000 p4080ds/uImagetest.bin;tftp c00000 p4080ds/uImage.dtb (2) setenv bootargs root=/dev/nfs rw nfsroot=10.193.20.117:/home/guo/tool/nfsroot ip=10.193.20.169:10.193.20.117:10.193.20.254:255.255.254.0:p4080ds:eth0:off console=ttyS0,115200 $othbootargs;bootm 1000000 - c00000 the system can boot successfully 2. Test gcc in rootfs: gcc -lpthread -o main main.c ./main gcc work well. Build and boot tested. There are any testcases available to verify the correctness of __slow_ieee754_sqrt implementation? I will verify "__slow_ieee754_sqrt " by testfloat case. testfloat case work well. the following information: root@p1020rdb:~# testfloat -all Testing int32_to_float32, rounding nearest_even. 372 tests total. 95 tests performed. No errors found in int32_to_float32, rounding nearest_even. Testing int32_to_float32, rounding to_zero. 372 tests total. 77 tests performed. No errors found in int32_to_float32, rounding to_zero. Testing int32_to_float32, rounding up. 372 tests total. 92 tests performed. No errors found in int32_to_float32, rounding up. Testing int32_to_float32, rounding down. 372 tests total. 92 tests performed. No errors found in int32_to_float32, rounding down. Testing int32_to_float64. 372 tests total. 0 tests performed. No errors found in int32_to_float64. Testing float32_to_int32_round_to_zero. This was resolved in master: http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=b130d75c037c3d458817711221a86aa74903b509 the patch is verified. |
Below is one example of the build fail: bitbake eglibc Loading cache: 100% |############################################################################################################| ETA: 00:00:00 Loaded 1255 entries from dependency cache. Parsing recipes: 100% |##########################################################################################################| Time: 00:00:01 Parsing of 877 .bb files complete (789 cached, 88 parsed). 1250 targets, 63 skipped, 0 masked, 0 errors. NOTE: Resolving any missing task queue dependencies Build Configuration: BB_VERSION = "1.21.1" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "Ubuntu-12.10" TARGET_SYS = "powerpc-poky-linux" MACHINE = "p2041rdb" DISTRO = "poky" DISTRO_VERSION = "1.5+snapshot-20140224" TUNE_FEATURES = "m32 fpu-hard ppce500mc" TARGET_FPU = "hard" meta = "master:8d7dd9ae471ad6154cd4e59152560ff5f24b3c2a" meta-fsl-ppc = ...[custom]... meta-yocto meta-yocto-bsp = "master:8d7dd9ae471ad6154cd4e59152560ff5f24b3c2a" ... powerpc-enea-linux-gcc -m32 -mhard-float -mcpu=e500mc --sysroot/path/tobuild_p2041rdb/tmp/sysroots/p2041rdb-tcbootstrap ../sysdeps/ieee754/dbl-64/k_tan.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -feliminate-unused-debug-types -fmerge-all-constants -frounding-math -g -mcpu=e500mc -pipe -mhard-float -Wstrict-prototypes -mlong-double-128 -Wno-uninitialized -D__NO_MATH_INLINES -D__LIBC_INTERNAL_MATH_INLINES -I../include -I/media/sdd1/fb/tufl/linux/master-enea15/build_p2041rdb/tmp/work/ppce500mc-enea-linux/eglibc/2.19-r0/build-powerpc-enea-linux/math -I/media/sdd1/fb/tufl/linux/master-enea15/build_p2041rdb/tmp/work/ppce500mc-enea-linux/eglibc/2.19-r0/build-powerpc-enea-linux -I../sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu -I../sysdeps/powerpc/powerpc32/e500mc/fpu -I../ports/sysdeps/powerpc/powerpc32/e500mc/fpu -I../sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc -I../sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl -I../sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu -I../nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32 -I../sysdeps/unix/sysv/linux/powerpc/powerpc32 -I../nptl/sysdeps/unix/sysv/linux/powerpc -I../sysdeps/unix/sysv/linux/powerpc -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../ports/sysdeps/unix/sysv/linux -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/inet -I../nptl/sysdeps/unix/sysv -I../ports/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../sysdeps/unix/powerpc -I../nptl/sysdeps/unix -I../ports/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../ports/sysdeps/powerpc/powerpc32/e500mc -I../sysdeps/powerpc/powerpc32/e500mc -I../sysdeps/powerpc/powerpc32/fpu -I../ports/sysdeps/powerpc/powerpc32 -I../sysdeps/powerpc/powerpc32 -I../sysdeps/wordsize-32 -I../sysdeps/powerpc/fpu -I../nptl/sysdeps/powerpc -I../ports/sysdeps/powerpc -I../sysdeps/powerpc -I../sysdeps/ieee754/ldbl-128ibm -I../sysdeps/ieee754/ldbl-opt -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic -I../nptl -I../ports -I.. -I../libio -I. -nostdinc -isystem /media/sdd1/fb/tufl/linux/master-enea15/build_p2041rdb/tmp/sysroots/x86_64-linux/usr/lib/ppce500mc-enea-linux.gcc-cross-initial/gcc/powerpc-enea-linux/4.8.2/include -isystem /media/sdd1/fb/tufl/linux/master-enea15/build_p2041rdb/tmp/sysroots/x86_64-linux/usr/lib/ppce500mc-enea-linux.gcc-cross-initial/gcc/powerpc-enea-linux/4.8.2/include-fixed -isystem /media/sdd1/fb/tufl/linux/master-enea15/build_p2041rdb/tmp/sysroots/p2041rdb/usr/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DNOT_IN_libc=1 -DIS_IN_libm=1 -DIN_LIB=libm -o /media/sdd1/fb/tufl/linux/master-enea15/build_p2041rdb/tmp/work/ppce500mc-enea-linux/eglibc/2.19-r0/build-powerpc-enea-linux/math/k_tan.o -MD -MP -MF /media/sdd1/fb/tufl/linux/master-enea15/build_p2041rdb/tmp/work/ppce500mc-enea-linux/eglibc/2.19-r0/build-powerpc-enea-linux/math/k_tan.o.dt -MT /media/sdd1/fb/tufl/linux/master-enea15/build_p2041rdb/tmp/work/ppce500mc-enea-linux/eglibc/2.19-r0/build-powerpc-enea-linux/math/k_tan.o ../sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c: In function '__slow_ieee754_sqrt': ../sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c:128:15: error: subscripted value is neither array nor pointer nor vector if ((u.l[1] & FE_INVALID) == 0) ^ ../sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c:127:20: warning: variable 'u' set but not used [-Wunused-but-set-variable] fenv_union_t u = { .fenv = fegetenv_register () }; ^