Build FreeBSD: FAILED 6/rtems-i386.bset on x86_64-freebsd12.0 (i386-rtems6-gcc-0f81292cb0a-newlib-d06517044-x86_64-freebsd12.0-1)

Joel Sherrill joel at rtems.org
Mon Aug 26 15:19:56 UTC 2019


On Mon, Aug 26, 2019 at 1:30 AM Sebastian Huber
<sebastian.huber at embedded-brains.de> wrote:
>
> Hello,
>
> this error was caused by and looks like a break introduced by the fenv.h
> changes:
>
> libtool: compile:
> /usr/home/user/rtems-source-builder/rtems/build/i386-rtems6-gcc-0f81292cb0a-newlib-d06517044-x86_64-freebsd12.0-1/build/./gcc/xgcc
> -
> B/usr/home/user/rtems-source-builder/rtems/build/i386-rtems6-gcc-0f81292cb0a-newlib-d06517044-x86_64-freebsd12.0-1/build/./gcc/
> -nostdinc -B/usr/home/u
> ser/rtems-source-builder/rtems/build/i386-rtems6-gcc-0f81292cb0a-newlib-d06517044-x86_64-freebsd12.0-1/build/i386-rtems6/newlib/
> -isystem /usr/home/use
> r/rtems-source-builder/rtems/build/i386-rtems6-gcc-0f81292cb0a-newlib-d06517044-x86_64-freebsd12.0-1/build/i386-rtems6/newlib/targ-include
> -isystem /us
> r/home/user/rtems-source-builder/rtems/build/i386-rtems6-gcc-0f81292cb0a-newlib-d06517044-x86_64-freebsd12.0-1/gnu-mirror-gcc-0f81292cb0a/newlib/libc/i
> nclude -B/usr/local/rtems/5/i386-rtems6/bin/
> -B/usr/local/rtems/5/i386-rtems6/lib/ -isystem
> /usr/local/rtems/5/i386-rtems6/include -isystem /usr/local/
> rtems/5/i386-rtems6/sys-include -DHAVE_CONFIG_H -I.
> -I../../../../gnu-mirror-gcc-0f81292cb0a/libquadmath -I
> ../../../../gnu-mirror-gcc-0f81292cb0a/libq
> uadmath/../include -g -O2 -mtune=i486 -MT math/acosq.lo -MD -MP -MF
> math/.deps/acosq.Tpo -c
> ../../../../gnu-mirror-gcc-0f81292cb0a/libquadmath/math/aco
> sq.c -o math/acosq.o
> In file included from
> ../../../../gnu-mirror-gcc-0f81292cb0a/libquadmath/math/x2y2m1q.c:19:
> ../../../../gnu-mirror-gcc-0f81292cb0a/libquadmath/math/x2y2m1q.c: In
> function '__quadmath_x2y2m1q':
> ../../../../gnu-mirror-gcc-0f81292cb0a/libquadmath/math/x2y2m1q.c:57:26:
> error: 'FE_TONEAREST' undeclared (first use in this function)
>     57 |   SET_RESTORE_ROUNDF128 (FE_TONEAREST);
>        |                          ^~~~~~~~~~~~
> ../../../../gnu-mirror-gcc-0f81292cb0a/libquadmath/quadmath-imp.h:318:35:
> note: in definition of macro 'SET_RESTORE_ROUNDF128'
>    318 |   libc_feholdsetround_ctx (&ctx, (RM))
>        |                                   ^~
> ../../../../gnu-mirror-gcc-0f81292cb0a/libquadmath/math/x2y2m1q.c:57:26:
> note: each undeclared identifier is reported only once for each function
> it ap
> pears in
>     57 |   SET_RESTORE_ROUNDF128 (FE_TONEAREST);
>        |                          ^~~~~~~~~~~~
> ../../../../gnu-mirror-gcc-0f81292cb0a/libquadmath/quadmath-imp.h:318:35:
> note: in definition of macro 'SET_RESTORE_ROUNDF128'
>    318 |   libc_feholdsetround_ctx (&ctx, (RM))
>        |                                   ^~

The code not compiling is incorrect per POSIX. The FE_TONEAREST constant should
not be defined if it is not supported by the implementation. This is
true for almost all
the constants provided by fenv.h

http://pubs.opengroup.org/onlinepubs/009695399/basedefs/fenv.h.html

Alternatively, add an x86_64 implementation. Corinna suggested moving
the Cygwin implementations to newlib/libm so they could be used by all
targets. This one at least is just moving/porting software rather than
writing one from scratch.

--joel
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel


More information about the devel mailing list