RTEMS 5.1: cmath compiler errors on m68k/uC5282

Chris Johns chrisj at rtems.org
Wed Feb 17 01:33:05 UTC 2021

On 17/2/21 7:16 am, Johnson, Andrew N. wrote:
> 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

This file looks fine. I copied this into a file in my 5.1 RSB and built it
without error. The end of the build is:

ruru rtems $ ../source-builder/sb-set-builder
--prefix=/builds/rtems/release/5.1/install --log=uC5282.txt
--with-rtems-tests=yes 5/bsps/uC5282

RTEMS Source Builder - Set Builder, 5.1
Build Set: 5/bsps/uC5282

Build Set: 5/rtems-m68k.bset
Installing: 5/bsps/uC5282 -> /builds/rtems/release/5.1/install
clean staging: 5/bsps/uC5282
Staging Size: 2.540GB
Build Set: Time 0:22:20.672548
ruru rtems $ /builds/rtems/release/5.1/install/bin/m68k-rtems5-g++ --version
m68k-rtems5-g++ (GCC) 7.5.0 20191114 (RTEMS 5, RSB 5.1, Newlib 7947581)

> The libbsd line there might be wrong, but I wouldn’t expect that to affect the availability of <cmath> functions to the C++ compiler.

The libbsd did not cause an issue for me.

What host are you on?


More information about the users mailing list