RTEMS 5.1: cmath compiler errors on m68k/uC5282
Johnson, Andrew N.
anj at anl.gov
Tue Feb 16 20:16:40 UTC 2021
I tried to build the in-progress port of EPICS for the uC5282 BSP last night against a release build of RTEMS-5.1 with tools and BSP built using RSB. It looks like the g++ cmath routines haven't been configured properly for this target. It failed at the first C++ source file includes math.h (other BSPs such as the beatnik and qoriq_e500 get further than this, and only the pc686 build completely succeeds right now):
> /local/anj/RTEMS-5.1/rtems-5.1/bin/m68k-rtems5-g++ -B/local/anj/RTEMS-5.1/rtems-5.1/m68k-rtems5/uC5282/lib/ -specs bsp_specs -qrtems -mcpu=5282 -D_GNU_SOURCE -D_DEFAULT_SOURCE -DUNIX -O2 -g -ffunction-sections -fdata-sections -Wall -DMY_DO_BOOTP=NULL -D__LINUX_ERRNO_EXTENSIONS__ -DHAVE_SOCKADDR_SA_LEN=1 -I. -I../O.Common -I. -I../osi/compiler/gcc -I../osi/compiler/default -I. -I../osi/os/RTEMS-posix -I../osi/os/RTEMS -I../osi/os/posix -I../osi/os/default -I.. -I../as -I../bucketLib -I../calc -I../cvtFast -I../cppStd -I../cxxTemplates -I../dbmf -I../ellLib -I../env -I../error -I../fdmgr -I../flex -I../freeList -I../gpHash -I../iocsh -I../log -I../macLib -I../misc -I../osi -I../pool -I../ring -I../taskwd -I../timer -I../yacc -I../yacc -I../yajl -I../../../../include/compiler/gcc -I../../../../include/os/RTEMS -I../../../../include -c ../cxxTemplates/resourceLib.cpp
> In file included from /local/anj/RTEMS-5.1/rtems-5.1/lib/gcc/m68k-rtems5/7.5.0/include/c++/math.h:36:0,
> from ../cxxTemplates/resourceLib.h:38,
> from ../cxxTemplates/resourceLib.cpp:15:
> /local/anj/RTEMS-5.1/rtems-5.1/lib/gcc/m68k-rtems5/7.5.0/include/c++/cmath:1086:11: error: '::acoshl' has not been declared
> using ::acoshl;
> ^~~~~~
> /local/anj/RTEMS-5.1/rtems-5.1/lib/gcc/m68k-rtems5/7.5.0/include/c++/cmath:1090:11: error: '::asinhl' has not been declared
> using ::asinhl;
> ^~~~~~
> /local/anj/RTEMS-5.1/rtems-5.1/lib/gcc/m68k-rtems5/7.5.0/include/c++/cmath:1094:11: error: '::atanhl' has not been declared
> using ::atanhl;
> ^~~~~~
>
> ... many similar errors snipped ...
>
> /local/anj/RTEMS-5.1/rtems-5.1/lib/gcc/m68k-rtems5/7.5.0/include/c++/cmath:1220:11: error: '::tgammal' has not been declared
> using ::tgammal;
> ^~~~~~~
> /local/anj/RTEMS-5.1/rtems-5.1/lib/gcc/m68k-rtems5/7.5.0/include/c++/cmath:1224:11: error: '::truncl' has not been declared
> using ::truncl;
> ^~~~~~
There could very well have been errors building the BSP on my part as I had to hand-create a uC5282.bset file for RSB to build it:
> tux% cat config/5/bsps/uC5282.bset
> %define mail_single_report 1
>
> %define with_rtems_bsp uC5282
> %define rtems_target m68k-rtems5
> %define rtems_host %{rtems_target}
>
> 5/rtems-m68k
> 5/rtems-kernel
> 5/rtems-libbsd
The libbsd line there might be wrong, but I wouldn’t expect that to affect the availability of <cmath> functions to the C++ compiler.
Any suggestions?
Thanks,
- Andrew
--
Complexity comes for free, simplicity you have to work for.
More information about the users
mailing list