How can I add LDFLAGS for bsp build?
Y. HB
sprhawk at gmail.com
Mon Jul 25 14:52:45 UTC 2022
an updated config.log here:
CFLAGS ->
-qrtems -B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/lib/
-B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/tms570lc4357_launchxl/lib/
--specs bsp_specs -march=armv7-r -mthumb -mbig-endian -mfpu=vfpv3-d16
-mfloat-abi=hard -Og -ggdb -ffunction-sections -fdata-sections -Wall
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -lm -lm
LDFLAGS ->
pkconfig warning: Label not found: LDFLAGS
LIB ->
pkconfig warning: Label not found: LIB
-------------------------------------------
Checking for a valid RTEMS BSP installation
==>
#include <rtems.h>
void Init(rtems_task_argument arg) { (void)arg; }
#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
#define CONFIGURE_INIT
#include <rtems/confdefs.h>
<==
[1/2] Compiling
^[[32mbuild/.conf_check_261484d99ea5da27480d47dee9a30c04/test.c^[[0m
['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc', '-qrtems',
'-B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/lib/',
'-B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/tms570lc4357_launchxl/lib/',
'--specs', 'bsp_specs', '-march=armv7-r', '-mthumb', '-mbig-endian',
'-mfpu=vfpv3-d16', '-mfloat-abi=hard', '-ffunction-sections',
'-fdata-sections', '-MMD', '../test.c', '-c',
'-o/home/hongbo/Developer/Embedded/rtems/app/hello/build/.conf_check_261484d99ea5da27480d47dee9a30c04/testbuild/test.c.1.o']
[2/2] Linking
^[[33mbuild/.conf_check_261484d99ea5da27480d47dee9a30c04/testbuild/testprog^[[0m
['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc', '-qrtems',
'-B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/lib/',
'-B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/tms570lc4357_launchxl/lib/',
'--specs', 'bsp_specs', '-march=armv7-r', '-mthumb', '-mbig-endian',
'-mfpu=vfpv3-d16', '-mfloat-abi=hard', '-ffunction-sections',
'-fdata-sections', '-MMD', 'test.c.1.o',
'-o/home/hongbo/Developer/Embedded/rtems/app/hello/build/.conf_check_261484d99ea5da27480d47dee9a30c04/testbuild/testprog',
'-Wl,-Bstatic', '-Wl,-Bdynamic', '-Wl,-Bstatic', '-lm']
err:
/home/hongbo/Developer/Embedded/rtems/5/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld:
/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/tms570lc4357_launchxl/lib/librtemsbsp.a(HL_sci.o):
in function `sciSetBaudrate':
/home/hongbo/Developer/Embedded/rtems/build/tms570lc4357/arm-rtems5/c/tms570lc4357_launchxl/lib/libbsp/arm/tms570/../../../../../../../../../rtems-master/c/src/lib/libbsp/arm/tms570/../../../../../../bsps/arm/tms570/start/tms570lc4357/source/HL_sci.c:284:
undefined reference to `floor'
collect2: error: ld returned 1 exit status
I managed to add -Wl,-Bstatic -lm by hacking sample_code/rtems_waf/rtems.py,
On Mon, Jul 25, 2022 at 10:47 PM Y. HB <sprhawk at gmail.com> wrote:
> Hi Dave
>
> the default configure will have option for library find path, here is the
> config.log
>
> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc', '-qrtems',
> '-B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/lib/',
> '-B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/tms570lc4357_launchxl/lib/',
> '--specs', 'bsp_specs', '-march=armv7-r', '-mthumb', '-mbig-endian',
> '-mfpu=vfpv3-d16', '-mfloat-abi=hard', '-ffunction-sections',
> '-fdata-sections', '-MMD', '../test.c', '-c',
> '-o/home/hongbo/Developer/Embedded/rtems/app/hello/build/.conf_check_261484d99ea5da27480d47dee9a30c04/testbuild/test.c.1.o']
> [2/2] Linking
> ^[[33mbuild/.conf_check_261484d99ea5da27480d47dee9a30c04/testbuild/testprog^[[0m
>
> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc', '-qrtems',
> '-B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/lib/',
> '-B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/tms570lc4357_launchxl/lib/',
> '--specs', 'bsp_specs', '-march=armv7-r', '-mthumb', '-mbig-endian',
> '-mfpu=vfpv3-d16', '-mfloat-abi=hard', '-ffunction-sections',
> '-fdata-sections', '-MMD', 'test.c.1.o',
> '-o/home/hongbo/Developer/Embedded/rtems/app/hello/build/.conf_check_261484d99ea5da27480d47dee9a30c04/testbuild/testprog',
> '-Wl,-Bstatic', '-Wl,-Bdynamic', '-Bstatic -lm']
> err:
> /home/hongbo/Developer/Embedded/rtems/5/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld:
> /home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/tms570lc4357_launchxl/lib/librtemsbsp.a(HL_sci.o):
> in function `sciSetBaudrate':
> /home/hongbo/Developer/Embedded/rtems/build/tms570lc4357/arm-rtems5/c/tms570lc4357_launchxl/lib/libbsp/arm/tms570/../../../../../../../../../rtems-master/c/src/lib/libbsp/arm/tms570/../../../../../../bsps/arm/tms570/start/tms570lc4357/source/HL_sci.c:284:
> undefined reference to `floor'
> collect2: error: ld returned 1 exit status
>
> from /home/hongbo/Developer/Embedded/rtems/app/hello: Test does not build:
> Traceback (most recent call last):
> File
> "/home/hongbo/Developer/Embedded/rtems/app/hello/.waf3-2.0.19-1f3c580272b15a03d2566843c5fe872a/waflib/Configure.py",
> line 333, in run_build
> bld.compile()
> File
> "/home/hongbo/Developer/Embedded/rtems/app/hello/.waf3-2.0.19-1f3c580272b15a03d2566843c5fe872a/waflib/Build.py",
> line 176, in compile
> raise Errors.BuildError(self.producer.error)
> waflib.Errors.BuildError: Build failed
> -> task in 'testprog' failed with exit status 1 (run with -v to display
> more information)
>
>
> On Mon, Jul 25, 2022 at 10:33 PM DAVE ERICKSON <daveerickson at shaw.ca>
> wrote:
>
>> Hongbo;
>>
>> In a phrase, "There are a number of libm.a inside the toolchain,"
>>
>> is exactly your problem. Your poor ld is finding the WRONG libm.* and
>> linking it into the archive. autotools have no internal logic, they can't
>> double check configurations for you.
>>
>> They don't stop to confirm all functions wanted are in the linked archive
>> UNLESS YOU EXPRESS THAT. autotools are mindless automatons.
>>
>> Do you see? That's why you need to, one by one, find all libm.* it can
>> possibly find then rule each one out as the cause. If you
>>
>> nm -D
>>
>> or
>>
>> nm
>>
>> for every one you will find a faulty libm.* that doesn't have floor() /
>> ceiling() in it. That is / are the ones ld linker is finding first.
>>
>> You NEED to, not optional, use the linker flag
>>
>>
>> -L/path/to/correct/libm.a
>>
>> in exactly the right configuration folder to allow ld to find the RIGHT
>> libm.* before it finds the WRONG libm.*
>>
>>
>> Dave
>>
>>>
>>>
>>> Cheers!
>>>
>>> Daemondave on github
>>>
>>> Check out my new book Untrapped Value on LeanPub:
>>> https://leanpub.com/untrappedvalue
>>>
>> ------------------------------
>> *From: *"Y. HB" <sprhawk at gmail.com>
>> *To: *"DAVE ERICKSON" <daveerickson at shaw.ca>
>> *Cc: *"rtems-users at rtems.org" <users at rtems.org>
>> *Sent: *Monday, July 25, 2022 8:12:46 AM
>> *Subject: *Re: How can I add LDFLAGS for bsp build?
>>
>> Hi Dave,
>>
>> I believe the build system will find the libm.a in rtems toolchain, which
>> I used arm-rtems-5,
>> There are a number of libm.a inside the toolchain, specific to soft /
>> hard VFP features
>>
>> here is the configure command line to build the rtems bsp:
>>
>> ../../rtems-master/configure --prefix=$RTEMS_ROOT/5 --target=arm-rtems5
>> --enable-rtemsbsp=tms570lc4357_launchxl --enable-posix --disable-networking
>> --enable-rtems-debug --enable-maintainer-mode --enable-rdbg
>> --enable-rtems-inlines --disable-multiprocessing --enable-cxx
>> --enable-itron --disable-ada --disable-expada --disable-multilib
>> --disable-docs TMS570_USE_HWINIT_STARTUP=1 ARM_TMS570LC4357=1
>>
>> Remember that I have added LIBS = -lm inside my tms570lc4357.inc config
>> file
>>
>> On Mon, Jul 25, 2022 at 10:05 PM DAVE ERICKSON <daveerickson at shaw.ca>
>> wrote:
>>
>>> Hi Hongbo (Is that right?);
>>>
>>>
>>> I have no experience with waf so I can't help there...over to joel...
>>>
>>> What I want to see is the output from the exact same shell (terminal,
>>> BASH) that you are compiling with and may have environmental variables set,
>>> is the computer's reply to you executing the
>>>
>>> which libm.*
>>>
>>> command. that will give you the list of libm.a, libm.so, libm.la files
>>> that the bash shell / or c shell can find.
>>>
>>> It is important that it come from the identical shell because some of
>>> the programs you are using may have set global scope environmental
>>> variables in that shell that are trampling on other setup in makefiles
>>> variables.
>>>
>>> you can also use command:
>>>
>>> locate libm.*
>>>
>>> and then list all the contents here that would help rule out
>>> environmental setup as the cause of the failed build.
>>>
>>> If you do either of these two things I can diagnose where the problem
>>> is.
>>>
>>> Also, after you have done that, try this command in that same shell:
>>>
>>>
>>> sudo updatedb
>>>
>>>
>>> that updates the /var/lib/plocate/plocate.db database used to locate
>>> files. On most systems that is what is searching for files you want on
>>> behalf of ggc, ar, ld, and so on. Then try compiling again.
>>>
>>>
>>> Dave
>>>
>>>>
>>>>
>>>> Cheers!
>>>>
>>>> Daemondave on github
>>>>
>>>> Check out my new book Untrapped Value on LeanPub:
>>>> https://leanpub.com/untrappedvalue
>>>>
>>>
>>> ------------------------------
>>> *From: *"Y. HB" <sprhawk at gmail.com>
>>> *To: *"joel" <joel at rtems.org>
>>> *Cc: *"DAVE ERICKSON" <daveerickson at shaw.ca>, "rtems-users at rtems.org" <
>>> users at rtems.org>
>>> *Sent: *Sunday, July 24, 2022 9:35:37 PM
>>> *Subject: *Re: How can I add LDFLAGS for bsp build?
>>>
>>> Hi Dave & Joel:
>>>
>>> Thanks for your replies.
>>>
>>> I'm building RTEMS bsp, I think it should not find libm.so or lib.la in
>>> LD_LIBRARY_PATH in configure script of RTEMS (5.1),
>>> In fact, the compiling has -lm added, but still missing floor references:
>>>
>>> arm-rtems5-gcc -march=armv7-r -mthumb -mbig-endian -mfpu=vfpv3-d16
>>> -mfloat-abi=hard -Og -ggdb -ffunction-sections -fdata-sections -Wall
>>> -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
>>> -Wnested-externs -B./../../lib/libbsp/arm/tms570
>>> -B/home/hongbo/Developer/Embedded/rtems/rtems-master/bsps/arm/tms570/start
>>> -specs bsp_specs -qrtems -L./../../cpukit
>>> -L/home/hongbo/Developer/Embedded/rtems/rtems-master/bsps/arm/shared/start
>>> -Wl,--wrap=printf -Wl,--wrap=puts -Wl,--wrap=putchar -Wl,--gc-sections -lm
>>> -o base_sp.exe base_sp/base_sp-init.o base_sp/base_sp-apptask.o
>>> ./../../lib/libbsp/arm/tms570/librtemsbsp.a ./../../cpukit/librtemscpu.a
>>> ./../../cpukit/librtemstest.a
>>> /home/hongbo/Developer/Embedded/rtems/5/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld:
>>> ./../../lib/libbsp/arm/tms570/librtemsbsp.a(HL_sci.o): in function
>>> `sciSetBaudrate':
>>> /home/hongbo/Developer/Embedded/rtems/build/tms570lc4357/arm-rtems5/c/tms570lc4357_launchxl/lib/libbsp/arm/tms570/../../../../../../../../../rtems-master/c/src/lib/libbsp/arm/tms570/../../../../../../bsps/arm/tms570/start/tms570lc4357/source/HL_sci.c:284:
>>> undefined reference to `floor'
>>>
>>> I added LIBS=-lm in bsps/arm/tms570/config/tms570lc4357.inc (which is I
>>> added for a new BSP), it passed build bsp,
>>>
>>> however, in application build, I'm building application with waf, but
>>> ./waf configure did not pass "test c program", due to the link flags for
>>> application still has no -lm, which reported again undefined reference to
>>> floor
>>>
>>> following is config.log
>>>
>>> # project configured on Mon Jul 25 11:30:44 2022 by
>>> # waf 2.0.19 (abi 20, python 30902f0 on linux)
>>> # using ./waf configure --rtems=/home/hongbo/Developer/Embedded/rtems/5
>>> --rtems-bsp=arm/tms570lc4357_launchxl
>>> #
>>> ----------------------------------------
>>> Setting top to
>>> /home/hongbo/Developer/Embedded/rtems/app/hello
>>> ----------------------------------------
>>> Setting out to
>>> /home/hongbo/Developer/Embedded/rtems/app/hello/build
>>> -----------------------------------------
>>> ----------------------------------------
>>> RTEMS Version
>>> 5
>>> ----------------------------------------
>>> Architectures
>>> arm-rtems5
>>> ----------------------------------------
>>> Board Support Package (BSP)
>>> arm-rtems5-tms570lc4357_launchxl
>>> ----------------------------------------
>>> Show commands
>>> no
>>> ----------------------------------------
>>> Long commands
>>> no
>>> ----------------------------------------
>>> Checking for program 'arm-rtems5-gcc'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc
>>> find program=['arm-rtems5-gcc']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin'] var='ARM_RTEMS5_GCC'
>>> -> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc']
>>> ----------------------------------------
>>> Checking for program 'arm-rtems5-g++'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-g++
>>> find program=['arm-rtems5-g++']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin'] var='ARM_RTEMS5_G++'
>>> -> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-g++']
>>> ----------------------------------------
>>> Checking for program 'arm-rtems5-gcc'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc
>>> find program=['arm-rtems5-gcc']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin'] var='ARM_RTEMS5_GCC'
>>> -> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc']
>>> ----------------------------------------
>>> Checking for program 'arm-rtems5-ld'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-ld
>>> find program=['arm-rtems5-ld']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin'] var='ARM_RTEMS5_LD'
>>> -> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-ld']
>>> ----------------------------------------
>>> Checking for program 'arm-rtems5-ar'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-ar
>>> find program=['arm-rtems5-ar']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin'] var='ARM_RTEMS5_AR'
>>> -> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-ar']
>>> ----------------------------------------
>>> Checking for program 'arm-rtems5-nm'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-nm
>>> find program=['arm-rtems5-nm']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin'] var='ARM_RTEMS5_NM'
>>> -> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-nm']
>>> -----------------------------------------
>>> Checking for program 'arm-rtems5-objdump'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-objdump
>>> find program=['arm-rtems5-objdump']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin']
>>> var='ARM_RTEMS5_OBJDUMP' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-objdump']
>>> -----------------------------------------
>>> Checking for program 'arm-rtems5-objcopy'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-objcopy
>>> find program=['arm-rtems5-objcopy']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin']
>>> var='ARM_RTEMS5_OBJCOPY' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-objcopy']
>>> -----------------------------------------
>>> Checking for program 'arm-rtems5-readelf'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-readelf
>>> find program=['arm-rtems5-readelf']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin']
>>> var='ARM_RTEMS5_READELF' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-readelf']
>>> -----------------------------------------
>>> Checking for program 'arm-rtems5-strip'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-strip
>>> find program=['arm-rtems5-strip']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin']
>>> var='ARM_RTEMS5_STRIP' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-strip']
>>> -----------------------------------------
>>> Checking for program 'arm-rtems5-ranlib'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-ranlib
>>> find program=['arm-rtems5-ranlib']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin']
>>> var='ARM_RTEMS5_RANLIB' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-ranlib']
>>> -----------------------------------------
>>> Checking for program 'rtems-ld'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/rtems-ld
>>> find program=['rtems-ld']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin'] var='RTEMS_LD' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/rtems-ld']
>>> -----------------------------------------
>>> Checking for program 'rtems-tld'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/rtems-tld
>>> find program=['rtems-tld']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin'] var='RTEMS_TLD' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/rtems-tld']
>>> -----------------------------------------
>>> Checking for program 'rtems-syms'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/rtems-syms
>>> find program=['rtems-syms']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin'] var='RTEMS_SYMS' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/rtems-syms']
>>> -----------------------------------------
>>> Checking for program 'rtems-bin2c'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/rtems-bin2c
>>> find program=['rtems-bin2c']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin'] var='RTEMS_BIN2C' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/rtems-bin2c']
>>> -----------------------------------------
>>> Checking for program 'tar'
>>> /usr/bin/tar
>>> find program=['tar']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin',
>>> '/home/hongbo/Developer/Embedded/local/bin', '/opt/wine-devel/bin',
>>> '/home/hongbo/Developer/Android/sdk/platform-tools',
>>> '/home/hongbo/.yarn/bin',
>>> '/home/hongbo/.local/node-v14.17.4-linux-x64//bin',
>>> '/home/hongbo/.local/go/bin', '/home/hongbo/.local/bin',
>>> '/home/hongbo/.cargo/bin', '/usr/lib/postgresql/14/bin', '/usr/local/bin',
>>> '/usr/bin', '/bin', '/usr/local/games', '/usr/games',
>>> '/home/hongbo/.local/go/bin'] var='TAR' -> ['/usr/bin/tar']
>>> -----------------------------------------
>>> Checking for program 'gcc, cc'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc
>>> find program=['gcc', 'cc']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin',
>>> '/home/hongbo/Developer/Embedded/local/bin', '/opt/wine-devel/bin',
>>> '/home/hongbo/Developer/Android/sdk/platform-tools',
>>> '/home/hongbo/.yarn/bin',
>>> '/home/hongbo/.local/node-v14.17.4-linux-x64//bin',
>>> '/home/hongbo/.local/go/bin', '/home/hongbo/.local/bin',
>>> '/home/hongbo/.cargo/bin', '/usr/lib/postgresql/14/bin', '/usr/local/bin',
>>> '/usr/bin', '/bin', '/usr/local/games', '/usr/games',
>>> '/home/hongbo/.local/go/bin'] var='CC' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc']
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc', '-dM',
>>> '-E', '-']
>>> out: #define __DBL_MIN_EXP__ (-1021)
>>> #define __HQ_FBIT__ 15
>>> #define __FLT32X_MAX_EXP__ 1024
>>> #define __UINT_LEAST16_MAX__ 0xffff
>>> #define __ARM_SIZEOF_WCHAR_T 4
>>> #define __ATOMIC_ACQUIRE 2
>>> #define __SFRACT_IBIT__ 0
>>> #define __FLT_MIN__ 1.1754943508222875e-38F
>>> #define __GCC_IEC_559_COMPLEX 0
>>> #define __UFRACT_MAX__ 0XFFFFP-16UR
>>> #define __UINT_LEAST8_TYPE__ unsigned char
>>> #define __DQ_FBIT__ 63
>>> #define __INTMAX_C(c) c ## LL
>>> #define __ULFRACT_FBIT__ 32
>>> #define __SACCUM_EPSILON__ 0x1P-7HK
>>> #define __CHAR_BIT__ 8
>>> #define __USQ_IBIT__ 0
>>> #define __UINT8_MAX__ 0xff
>>> #define __ACCUM_FBIT__ 15
>>> #define __WINT_MAX__ 0xffffffffU
>>> #define __FLT32_MIN_EXP__ (-125)
>>> #define __USFRACT_FBIT__ 8
>>> #define __ORDER_LITTLE_ENDIAN__ 1234
>>> #define __SIZE_MAX__ 0xffffffffU
>>> #define __ARM_ARCH_ISA_ARM 1
>>> #define __WCHAR_MAX__ 0xffffffffU
>>> #define __LACCUM_IBIT__ 32
>>> #define __DBL_DENORM_MIN__ ((double)4.9406564584124654e-324L)
>>> #define __GCC_ATOMIC_CHAR_LOCK_FREE 1
>>> #define __GCC_IEC_559 0
>>> #define __FLT32X_DECIMAL_DIG__ 17
>>> #define __FLT_EVAL_METHOD__ 0
>>> #define __LLACCUM_MAX__ 0X7FFFFFFFFFFFFFFFP-31LLK
>>> #define __FLT64_DECIMAL_DIG__ 17
>>> #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 1
>>> #define __FRACT_FBIT__ 15
>>> #define __UINT_FAST64_MAX__ 0xffffffffffffffffULL
>>> #define __SIG_ATOMIC_TYPE__ int
>>> #define __UACCUM_FBIT__ 16
>>> #define __DBL_MIN_10_EXP__ (-307)
>>> #define __FINITE_MATH_ONLY__ 0
>>> #define __ARMEL__ 1
>>> #define __LFRACT_IBIT__ 0
>>> #define __GNUC_PATCHLEVEL__ 0
>>> #define __FLT32_HAS_DENORM__ 1
>>> #define __LFRACT_MAX__ 0X7FFFFFFFP-31LR
>>> #define __UINT_FAST8_MAX__ 0xffffffffU
>>> #define __has_include(STR) __has_include__(STR)
>>> #define __DEC64_MAX_EXP__ 385
>>> #define __INT8_C(c) c
>>> #define __INT_LEAST8_WIDTH__ 8
>>> #define __UINT_LEAST64_MAX__ 0xffffffffffffffffULL
>>> #define __SA_FBIT__ 15
>>> #define __SHRT_MAX__ 0x7fff
>>> #define __LDBL_MAX__ 1.7976931348623157e+308L
>>> #define __FRACT_MAX__ 0X7FFFP-15R
>>> #define __UFRACT_FBIT__ 16
>>> #define __UFRACT_MIN__ 0.0UR
>>> #define __UINT_LEAST8_MAX__ 0xff
>>> #define __GCC_ATOMIC_BOOL_LOCK_FREE 1
>>> #define __UINTMAX_TYPE__ long long unsigned int
>>> #define __LLFRACT_EPSILON__ 0x1P-63LLR
>>> #define __DEC32_EPSILON__ 1E-6DF
>>> #define __FLT_EVAL_METHOD_TS_18661_3__ 0
>>> #define __CHAR_UNSIGNED__ 1
>>> #define __UINT32_MAX__ 0xffffffffU
>>> #define __ULFRACT_MAX__ 0XFFFFFFFFP-32ULR
>>> #define __TA_IBIT__ 64
>>> #define __LDBL_MAX_EXP__ 1024
>>> #define __WINT_MIN__ 0U
>>> #define __INT_LEAST16_WIDTH__ 16
>>> #define __ULLFRACT_MIN__ 0.0ULLR
>>> #define __SCHAR_MAX__ 0x7f
>>> #define __WCHAR_MIN__ 0U
>>> #define __INT64_C(c) c ## LL
>>> #define __DBL_DIG__ 15
>>> #define __GCC_ATOMIC_POINTER_LOCK_FREE 1
>>> #define __LLACCUM_MIN__ (-0X1P31LLK-0X1P31LLK)
>>> #define __SIZEOF_INT__ 4
>>> #define __SIZEOF_POINTER__ 4
>>> #define __USACCUM_IBIT__ 8
>>> #define __USER_LABEL_PREFIX__
>>> #define __STDC_HOSTED__ 1
>>> #define __LDBL_HAS_INFINITY__ 1
>>> #define __LFRACT_MIN__ (-0.5LR-0.5LR)
>>> #define __HA_IBIT__ 8
>>> #define __FLT32_DIG__ 6
>>> #define __TQ_IBIT__ 0
>>> #define __FLT_EPSILON__ 1.1920928955078125e-7F
>>> #define __APCS_32__ 1
>>> #define __SHRT_WIDTH__ 16
>>> #define __USFRACT_IBIT__ 0
>>> #define __LDBL_MIN__ 2.2250738585072014e-308L
>>> #define __STDC_UTF_16__ 1
>>> #define __FRACT_MIN__ (-0.5R-0.5R)
>>> #define __DEC32_MAX__ 9.999999E96DF
>>> #define __DA_IBIT__ 32
>>> #define __ARM_SIZEOF_MINIMAL_ENUM 4
>>> #define __FLT32X_HAS_INFINITY__ 1
>>> #define __INT32_MAX__ 0x7fffffff
>>> #define __UQQ_FBIT__ 8
>>> #define __INT_WIDTH__ 32
>>> #define __SIZEOF_LONG__ 4
>>> #define __UACCUM_MAX__ 0XFFFFFFFFP-16UK
>>> #define __UINT16_C(c) c
>>> #define __PTRDIFF_WIDTH__ 32
>>> #define __DECIMAL_DIG__ 17
>>> #define __LFRACT_EPSILON__ 0x1P-31LR
>>> #define __FLT64_EPSILON__ 2.2204460492503131e-16F64
>>> #define __ULFRACT_MIN__ 0.0ULR
>>> #define __INTMAX_WIDTH__ 64
>>> #define __has_include_next(STR) __has_include_next__(STR)
>>> #define __LDBL_HAS_QUIET_NAN__ 1
>>> #define __ULACCUM_IBIT__ 32
>>> #define __FLT64_MANT_DIG__ 53
>>> #define __UACCUM_EPSILON__ 0x1P-16UK
>>> #define __GNUC__ 7
>>> #define __ULLACCUM_MAX__ 0XFFFFFFFFFFFFFFFFP-32ULLK
>>> #define __HQ_IBIT__ 0
>>> #define __FLT_HAS_DENORM__ 1
>>> #define __SIZEOF_LONG_DOUBLE__ 8
>>> #define __BIGGEST_ALIGNMENT__ 8
>>> #define __FLT64_MAX_10_EXP__ 308
>>> #define __GNUC_STDC_INLINE__ 1
>>> #define __DQ_IBIT__ 0
>>> #define __DBL_MAX__ ((double)1.7976931348623157e+308L)
>>> #define __ULFRACT_IBIT__ 0
>>> #define __INT_FAST32_MAX__ 0x7fffffff
>>> #define __DBL_HAS_INFINITY__ 1
>>> #define __ACCUM_IBIT__ 16
>>> #define __DEC32_MIN_EXP__ (-94)
>>> #define __THUMB_INTERWORK__ 1
>>> #define __INTPTR_WIDTH__ 32
>>> #define __LACCUM_MAX__ 0X7FFFFFFFFFFFFFFFP-31LK
>>> #define __FLT32X_HAS_DENORM__ 1
>>> #define __INT_FAST16_TYPE__ int
>>> #define __LDBL_HAS_DENORM__ 1
>>> #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
>>> #define __INT_LEAST32_MAX__ 0x7fffffff
>>> #define __ARM_PCS 1
>>> #define __DEC32_MIN__ 1E-95DF
>>> #define __ACCUM_MAX__ 0X7FFFFFFFP-15K
>>> #define __DBL_MAX_EXP__ 1024
>>> #define __USACCUM_EPSILON__ 0x1P-8UHK
>>> #define __WCHAR_WIDTH__ 32
>>> #define __FLT32_MAX__ 3.4028234663852886e+38F32
>>> #define __DEC128_EPSILON__ 1E-33DL
>>> #define __SFRACT_MAX__ 0X7FP-7HR
>>> #define __FRACT_IBIT__ 0
>>> #define __PTRDIFF_MAX__ 0x7fffffff
>>> #define __UACCUM_MIN__ 0.0UK
>>> #define __UACCUM_IBIT__ 16
>>> #define __FLT32_HAS_QUIET_NAN__ 1
>>> #define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
>>> #define __SIZEOF_SIZE_T__ 4
>>> #define __ULACCUM_MAX__ 0XFFFFFFFFFFFFFFFFP-32ULK
>>> #define __SIZEOF_WINT_T__ 4
>>> #define __LONG_LONG_WIDTH__ 64
>>> #define __FLT32_MAX_EXP__ 128
>>> #define __SA_IBIT__ 16
>>> #define __ULLACCUM_MIN__ 0.0ULLK
>>> #define __GXX_ABI_VERSION 1011
>>> #define __UTA_FBIT__ 64
>>> #define __SOFTFP__ 1
>>> #define __FLT_MIN_EXP__ (-125)
>>> #define __USFRACT_MAX__ 0XFFP-8UHR
>>> #define __UFRACT_IBIT__ 0
>>> #define __INT_FAST64_TYPE__ long long int
>>> #define __FLT64_DENORM_MIN__ 4.9406564584124654e-324F64
>>> #define __DBL_MIN__ ((double)2.2250738585072014e-308L)
>>> #define __USE_INIT_FINI__ 1
>>> #define __FLT32X_EPSILON__ 2.2204460492503131e-16F32x
>>> #define __FLT64_MIN_EXP__ (-1021)
>>> #define __LACCUM_MIN__ (-0X1P31LK-0X1P31LK)
>>> #define __ULLACCUM_FBIT__ 32
>>> #define __GXX_TYPEINFO_EQUALITY_INLINE 0
>>> #define __FLT64_MIN_10_EXP__ (-307)
>>> #define __ULLFRACT_EPSILON__ 0x1P-64ULLR
>>> #define __USES_INITFINI__ 1
>>> #define __DEC128_MIN__ 1E-6143DL
>>> #define __REGISTER_PREFIX__
>>> #define __UINT16_MAX__ 0xffff
>>> #define __DBL_HAS_DENORM__ 1
>>> #define __ACCUM_MIN__ (-0X1P15K-0X1P15K)
>>> #define __SQ_IBIT__ 0
>>> #define __FLT32_MIN__ 1.1754943508222875e-38F32
>>> #define __UINT8_TYPE__ unsigned char
>>> #define __UHA_FBIT__ 8
>>> #define __NO_INLINE__ 1
>>> #define __SFRACT_MIN__ (-0.5HR-0.5HR)
>>> #define __UTQ_FBIT__ 128
>>> #define __FLT_MANT_DIG__ 24
>>> #define __LDBL_DECIMAL_DIG__ 17
>>> #define __VERSION__ "7.5.0 20191114 (RTEMS 5, RSB 5.1, Newlib 7947581)"
>>> #define __UINT64_C(c) c ## ULL
>>> #define __ULLFRACT_FBIT__ 64
>>> #define __FRACT_EPSILON__ 0x1P-15R
>>> #define __ULACCUM_MIN__ 0.0ULK
>>> #define __UDA_FBIT__ 32
>>> #define __LLACCUM_EPSILON__ 0x1P-31LLK
>>> #define __GCC_ATOMIC_INT_LOCK_FREE 1
>>> #define __FLT32_MANT_DIG__ 24
>>> #define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
>>> #define __USFRACT_MIN__ 0.0UHR
>>> #define __UQQ_IBIT__ 0
>>> #define __SCHAR_WIDTH__ 8
>>> #define __INT32_C(c) c
>>> #define __DEC64_EPSILON__ 1E-15DD
>>> #define __ORDER_PDP_ENDIAN__ 3412
>>> #define __DEC128_MIN_EXP__ (-6142)
>>> #define __UHQ_FBIT__ 16
>>> #define __LLACCUM_FBIT__ 31
>>> #define __FLT32_MAX_10_EXP__ 38
>>> #define __INT_FAST32_TYPE__ int
>>> #define __UINT_LEAST16_TYPE__ short unsigned int
>>> #define __INT16_MAX__ 0x7fff
>>> #define __SIZE_TYPE__ unsigned int
>>> #define __UINT64_MAX__ 0xffffffffffffffffULL
>>> #define __UDQ_FBIT__ 64
>>> #define __INT8_TYPE__ signed char
>>> #define __ELF__ 1
>>> #define __ULFRACT_EPSILON__ 0x1P-32ULR
>>> #define __LLFRACT_FBIT__ 63
>>> #define __rtems__ 1
>>> #define __FLT_RADIX__ 2
>>> #define __INT_LEAST16_TYPE__ short int
>>> #define __LDBL_EPSILON__ 2.2204460492503131e-16L
>>> #define __UINTMAX_C(c) c ## ULL
>>> #define __SACCUM_MAX__ 0X7FFFP-7HK
>>> #define __SIG_ATOMIC_MAX__ 0x7fffffff
>>> #define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 1
>>> #define __VFP_FP__ 1
>>> #define __SIZEOF_PTRDIFF_T__ 4
>>> #define __FLT32X_MANT_DIG__ 53
>>> #define __LACCUM_EPSILON__ 0x1P-31LK
>>> #define __FLT32X_MIN_EXP__ (-1021)
>>> #define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
>>> #define __INT_FAST16_MAX__ 0x7fffffff
>>> #define __FLT64_DIG__ 15
>>> #define __UINT_FAST32_MAX__ 0xffffffffU
>>> #define __UINT_LEAST64_TYPE__ long long unsigned int
>>> #define __USACCUM_MAX__ 0XFFFFP-8UHK
>>> #define __SFRACT_EPSILON__ 0x1P-7HR
>>> #define __FLT_HAS_QUIET_NAN__ 1
>>> #define __FLT_MAX_10_EXP__ 38
>>> #define __LONG_MAX__ 0x7fffffffL
>>> #define __DEC128_SUBNORMAL_MIN__
>>> 0.000000000000000000000000000000001E-6143DL
>>> #define __FLT_HAS_INFINITY__ 1
>>> #define __USA_FBIT__ 16
>>> #define __UINT_FAST16_TYPE__ unsigned int
>>> #define __DEC64_MAX__ 9.999999999999999E384DD
>>> #define __ARM_32BIT_STATE 1
>>> #define __INT_FAST32_WIDTH__ 32
>>> #define __CHAR16_TYPE__ short unsigned int
>>> #define __PRAGMA_REDEFINE_EXTNAME 1
>>> #define __SIZE_WIDTH__ 32
>>> #define __INT_LEAST16_MAX__ 0x7fff
>>> #define __DEC64_MANT_DIG__ 16
>>> #define __INT64_MAX__ 0x7fffffffffffffffLL
>>> #define __UINT_LEAST32_MAX__ 0xffffffffU
>>> #define __SACCUM_FBIT__ 7
>>> #define __FLT32_DENORM_MIN__ 1.4012984643248171e-45F32
>>> #define __GCC_ATOMIC_LONG_LOCK_FREE 1
>>> #define __SIG_ATOMIC_WIDTH__ 32
>>> #define __INT_LEAST64_TYPE__ long long int
>>> #define __INT16_TYPE__ short int
>>> #define __INT_LEAST8_TYPE__ signed char
>>> #define __STDC_VERSION__ 201112L
>>> #define __SQ_FBIT__ 31
>>> #define __DEC32_MAX_EXP__ 97
>>> #define __ARM_ARCH_ISA_THUMB 1
>>> #define __INT_FAST8_MAX__ 0x7fffffff
>>> #define __ARM_ARCH 4
>>> #define __INTPTR_MAX__ 0x7fffffff
>>> #define __QQ_FBIT__ 7
>>> #define __UTA_IBIT__ 64
>>> #define __FLT64_HAS_QUIET_NAN__ 1
>>> #define __FLT32_MIN_10_EXP__ (-37)
>>> #define __FLT32X_DIG__ 15
>>> #define __LDBL_MANT_DIG__ 53
>>> #define __SFRACT_FBIT__ 7
>>> #define __SACCUM_MIN__ (-0X1P7HK-0X1P7HK)
>>> #define __DBL_HAS_QUIET_NAN__ 1
>>> #define __FLT64_HAS_INFINITY__ 1
>>> #define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
>>> #define __INTPTR_TYPE__ int
>>> #define __UINT16_TYPE__ short unsigned int
>>> #define __WCHAR_TYPE__ unsigned int
>>> #define __SIZEOF_FLOAT__ 4
>>> #define __USQ_FBIT__ 32
>>> #define __UINTPTR_MAX__ 0xffffffffU
>>> #define __INT_FAST64_WIDTH__ 64
>>> #define __DEC64_MIN_EXP__ (-382)
>>> #define __ULLACCUM_IBIT__ 32
>>> #define __FLT32_DECIMAL_DIG__ 9
>>> #define __INT_FAST64_MAX__ 0x7fffffffffffffffLL
>>> #define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
>>> #define __FLT_DIG__ 6
>>> #define __FLT32_HAS_INFINITY__ 1
>>> #define __UINT_FAST64_TYPE__ long long unsigned int
>>> #define __INT_MAX__ 0x7fffffff
>>> #define __LACCUM_FBIT__ 31
>>> #define __USACCUM_MIN__ 0.0UHK
>>> #define __UHA_IBIT__ 8
>>> #define __INT64_TYPE__ long long int
>>> #define __FLT_MAX_EXP__ 128
>>> #define __UTQ_IBIT__ 0
>>> #define __DBL_MANT_DIG__ 53
>>> #define __INT_LEAST64_MAX__ 0x7fffffffffffffffLL
>>> #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 1
>>> #define __DEC64_MIN__ 1E-383DD
>>> #define __WINT_TYPE__ unsigned int
>>> #define __UINT_LEAST32_TYPE__ unsigned int
>>> #define __SIZEOF_SHORT__ 2
>>> #define __ULLFRACT_IBIT__ 0
>>> #define __LDBL_MIN_EXP__ (-1021)
>>> #define __arm__ 1
>>> #define __FLT64_MAX__ 1.7976931348623157e+308F64
>>> #define __UDA_IBIT__ 32
>>> #define __WINT_WIDTH__ 32
>>> #define __INT_LEAST8_MAX__ 0x7f
>>> #define __FLT32X_MAX_10_EXP__ 308
>>> #define __LFRACT_FBIT__ 31
>>> #define __LDBL_MAX_10_EXP__ 308
>>> #define __ATOMIC_RELAXED 0
>>> #define __DBL_EPSILON__ ((double)2.2204460492503131e-16L)
>>> #define __UINT8_C(c) c
>>> #define __FLT64_MAX_EXP__ 1024
>>> #define __INT_LEAST32_TYPE__ int
>>> #define __SIZEOF_WCHAR_T__ 4
>>> #define __UINT64_TYPE__ long long unsigned int
>>> #define __LLFRACT_MAX__ 0X7FFFFFFFFFFFFFFFP-63LLR
>>> #define __TQ_FBIT__ 127
>>> #define __INT_FAST8_TYPE__ int
>>> #define __ULLACCUM_EPSILON__ 0x1P-32ULLK
>>> #define __UHQ_IBIT__ 0
>>> #define __LLACCUM_IBIT__ 32
>>> #define __FLT64_HAS_DENORM__ 1
>>> #define __FLT32_EPSILON__ 1.1920928955078125e-7F32
>>> #define __DBL_DECIMAL_DIG__ 17
>>> #define __STDC_UTF_32__ 1
>>> #define __INT_FAST8_WIDTH__ 32
>>> #define __DEC_EVAL_METHOD__ 2
>>> #define __FLT32X_MAX__ 1.7976931348623157e+308F32x
>>> #define __TA_FBIT__ 63
>>> #define __UDQ_IBIT__ 0
>>> #define __ORDER_BIG_ENDIAN__ 4321
>>> #define __ACCUM_EPSILON__ 0x1P-15K
>>> #define __UINT32_C(c) c ## U
>>> #define __INTMAX_MAX__ 0x7fffffffffffffffLL
>>> #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
>>> #define __FLT_DENORM_MIN__ 1.4012984643248171e-45F
>>> #define __LLFRACT_IBIT__ 0
>>> #define __INT8_MAX__ 0x7f
>>> #define __LONG_WIDTH__ 32
>>> #define __UINT_FAST32_TYPE__ unsigned int
>>> #define __CHAR32_TYPE__ unsigned int
>>> #define __FLT_MAX__ 3.4028234663852886e+38F
>>> #define __USACCUM_FBIT__ 8
>>> #define __INT32_TYPE__ int
>>> #define __SIZEOF_DOUBLE__ 8
>>> #define __FLT_MIN_10_EXP__ (-37)
>>> #define __UFRACT_EPSILON__ 0x1P-16UR
>>> #define __FLT64_MIN__ 2.2250738585072014e-308F64
>>> #define __INT_LEAST32_WIDTH__ 32
>>> #define __INTMAX_TYPE__ long long int
>>> #define __DEC128_MAX_EXP__ 6145
>>> #define __FLT32X_HAS_QUIET_NAN__ 1
>>> #define __ATOMIC_CONSUME 1
>>> #define __GNUC_MINOR__ 5
>>> #define __INT_FAST16_WIDTH__ 32
>>> #define __UINTMAX_MAX__ 0xffffffffffffffffULL
>>> #define __DEC32_MANT_DIG__ 7
>>> #define __FLT32X_DENORM_MIN__ 4.9406564584124654e-324F32x
>>> #define __HA_FBIT__ 7
>>> #define __DBL_MAX_10_EXP__ 308
>>> #define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
>>> #define __INT16_C(c) c
>>> #define __STDC__ 1
>>> #define __ARM_ARCH_4T__ 1
>>> #define __PTRDIFF_TYPE__ int
>>> #define __LLFRACT_MIN__ (-0.5LLR-0.5LLR)
>>> #define __ATOMIC_SEQ_CST 5
>>> #define __DA_FBIT__ 31
>>> #define __UINT32_TYPE__ unsigned int
>>> #define __FLT32X_MIN_10_EXP__ (-307)
>>> #define __UINTPTR_TYPE__ unsigned int
>>> #define __USA_IBIT__ 16
>>> #define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
>>> #define __ARM_EABI__ 1
>>> #define __DEC128_MANT_DIG__ 34
>>> #define __LDBL_MIN_10_EXP__ (-307)
>>> #define __SIZEOF_LONG_LONG__ 8
>>> #define __ULACCUM_EPSILON__ 0x1P-32ULK
>>> #define __SACCUM_IBIT__ 8
>>> #define __GCC_ATOMIC_LLONG_LOCK_FREE 1
>>> #define __FLT32X_MIN__ 2.2250738585072014e-308F32x
>>> #define __LDBL_DIG__ 15
>>> #define __FLT_DECIMAL_DIG__ 9
>>> #define __UINT_FAST16_MAX__ 0xffffffffU
>>> #define __GCC_ATOMIC_SHORT_LOCK_FREE 1
>>> #define __INT_LEAST64_WIDTH__ 64
>>> #define __ULLFRACT_MAX__ 0XFFFFFFFFFFFFFFFFP-64ULLR
>>> #define __UINT_FAST8_TYPE__ unsigned int
>>> #define __USFRACT_EPSILON__ 0x1P-8UHR
>>> #define __ULACCUM_FBIT__ 32
>>> #define __QQ_IBIT__ 0
>>> #define __ATOMIC_ACQ_REL 4
>>> #define __ATOMIC_RELEASE 3
>>>
>>> -----------------------------------------
>>> Checking for program 'ar'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-ar
>>> find program=['ar']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin',
>>> '/home/hongbo/Developer/Embedded/local/bin', '/opt/wine-devel/bin',
>>> '/home/hongbo/Developer/Android/sdk/platform-tools',
>>> '/home/hongbo/.yarn/bin',
>>> '/home/hongbo/.local/node-v14.17.4-linux-x64//bin',
>>> '/home/hongbo/.local/go/bin', '/home/hongbo/.local/bin',
>>> '/home/hongbo/.cargo/bin', '/usr/lib/postgresql/14/bin', '/usr/local/bin',
>>> '/usr/bin', '/bin', '/usr/local/games', '/usr/games',
>>> '/home/hongbo/.local/go/bin'] var='AR' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-ar']
>>> -----------------------------------------
>>> Checking for program 'g++, c++'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-g++
>>> find program=['g++', 'c++']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin',
>>> '/home/hongbo/Developer/Embedded/local/bin', '/opt/wine-devel/bin',
>>> '/home/hongbo/Developer/Android/sdk/platform-tools',
>>> '/home/hongbo/.yarn/bin',
>>> '/home/hongbo/.local/node-v14.17.4-linux-x64//bin',
>>> '/home/hongbo/.local/go/bin', '/home/hongbo/.local/bin',
>>> '/home/hongbo/.cargo/bin', '/usr/lib/postgresql/14/bin', '/usr/local/bin',
>>> '/usr/bin', '/bin', '/usr/local/games', '/usr/games',
>>> '/home/hongbo/.local/go/bin'] var='CXX' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-g++']
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-g++', '-dM',
>>> '-E', '-']
>>> out: #define __DBL_MIN_EXP__ (-1021)
>>> #define __HQ_FBIT__ 15
>>> #define __FLT32X_MAX_EXP__ 1024
>>> #define __UINT_LEAST16_MAX__ 0xffff
>>> #define __ARM_SIZEOF_WCHAR_T 4
>>> #define __ATOMIC_ACQUIRE 2
>>> #define __SFRACT_IBIT__ 0
>>> #define __FLT_MIN__ 1.1754943508222875e-38F
>>> #define __GCC_IEC_559_COMPLEX 0
>>> #define __UFRACT_MAX__ 0XFFFFP-16UR
>>> #define __UINT_LEAST8_TYPE__ unsigned char
>>> #define __DQ_FBIT__ 63
>>> #define __INTMAX_C(c) c ## LL
>>> #define __ULFRACT_FBIT__ 32
>>> #define __SACCUM_EPSILON__ 0x1P-7HK
>>> #define __CHAR_BIT__ 8
>>> #define __USQ_IBIT__ 0
>>> #define __UINT8_MAX__ 0xff
>>> #define __ACCUM_FBIT__ 15
>>> #define __WINT_MAX__ 0xffffffffU
>>> #define __FLT32_MIN_EXP__ (-125)
>>> #define __USFRACT_FBIT__ 8
>>> #define __ORDER_LITTLE_ENDIAN__ 1234
>>> #define __SIZE_MAX__ 0xffffffffU
>>> #define __ARM_ARCH_ISA_ARM 1
>>> #define __WCHAR_MAX__ 0xffffffffU
>>> #define __LACCUM_IBIT__ 32
>>> #define __DBL_DENORM_MIN__ ((double)4.9406564584124654e-324L)
>>> #define __GCC_ATOMIC_CHAR_LOCK_FREE 1
>>> #define __GCC_IEC_559 0
>>> #define __FLT32X_DECIMAL_DIG__ 17
>>> #define __FLT_EVAL_METHOD__ 0
>>> #define __LLACCUM_MAX__ 0X7FFFFFFFFFFFFFFFP-31LLK
>>> #define __FLT64_DECIMAL_DIG__ 17
>>> #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 1
>>> #define __FRACT_FBIT__ 15
>>> #define __UINT_FAST64_MAX__ 0xffffffffffffffffULL
>>> #define __SIG_ATOMIC_TYPE__ int
>>> #define __UACCUM_FBIT__ 16
>>> #define __DBL_MIN_10_EXP__ (-307)
>>> #define __FINITE_MATH_ONLY__ 0
>>> #define __ARMEL__ 1
>>> #define __LFRACT_IBIT__ 0
>>> #define __GNUC_PATCHLEVEL__ 0
>>> #define __FLT32_HAS_DENORM__ 1
>>> #define __LFRACT_MAX__ 0X7FFFFFFFP-31LR
>>> #define __UINT_FAST8_MAX__ 0xffffffffU
>>> #define __has_include(STR) __has_include__(STR)
>>> #define __DEC64_MAX_EXP__ 385
>>> #define __INT8_C(c) c
>>> #define __INT_LEAST8_WIDTH__ 8
>>> #define __UINT_LEAST64_MAX__ 0xffffffffffffffffULL
>>> #define __SA_FBIT__ 15
>>> #define __SHRT_MAX__ 0x7fff
>>> #define __LDBL_MAX__ 1.7976931348623157e+308L
>>> #define __FRACT_MAX__ 0X7FFFP-15R
>>> #define __UFRACT_FBIT__ 16
>>> #define __UFRACT_MIN__ 0.0UR
>>> #define __UINT_LEAST8_MAX__ 0xff
>>> #define __GCC_ATOMIC_BOOL_LOCK_FREE 1
>>> #define __UINTMAX_TYPE__ long long unsigned int
>>> #define __LLFRACT_EPSILON__ 0x1P-63LLR
>>> #define __DEC32_EPSILON__ 1E-6DF
>>> #define __FLT_EVAL_METHOD_TS_18661_3__ 0
>>> #define __CHAR_UNSIGNED__ 1
>>> #define __UINT32_MAX__ 0xffffffffU
>>> #define __ULFRACT_MAX__ 0XFFFFFFFFP-32ULR
>>> #define __TA_IBIT__ 64
>>> #define __LDBL_MAX_EXP__ 1024
>>> #define __WINT_MIN__ 0U
>>> #define __INT_LEAST16_WIDTH__ 16
>>> #define __ULLFRACT_MIN__ 0.0ULLR
>>> #define __SCHAR_MAX__ 0x7f
>>> #define __WCHAR_MIN__ 0U
>>> #define __INT64_C(c) c ## LL
>>> #define __DBL_DIG__ 15
>>> #define __GCC_ATOMIC_POINTER_LOCK_FREE 1
>>> #define __LLACCUM_MIN__ (-0X1P31LLK-0X1P31LLK)
>>> #define __SIZEOF_INT__ 4
>>> #define __SIZEOF_POINTER__ 4
>>> #define __USACCUM_IBIT__ 8
>>> #define __USER_LABEL_PREFIX__
>>> #define __STDC_HOSTED__ 1
>>> #define __LDBL_HAS_INFINITY__ 1
>>> #define __LFRACT_MIN__ (-0.5LR-0.5LR)
>>> #define __HA_IBIT__ 8
>>> #define __FLT32_DIG__ 6
>>> #define __TQ_IBIT__ 0
>>> #define __FLT_EPSILON__ 1.1920928955078125e-7F
>>> #define __APCS_32__ 1
>>> #define __SHRT_WIDTH__ 16
>>> #define __USFRACT_IBIT__ 0
>>> #define __LDBL_MIN__ 2.2250738585072014e-308L
>>> #define __STDC_UTF_16__ 1
>>> #define __FRACT_MIN__ (-0.5R-0.5R)
>>> #define __DEC32_MAX__ 9.999999E96DF
>>> #define __DA_IBIT__ 32
>>> #define __ARM_SIZEOF_MINIMAL_ENUM 4
>>> #define __FLT32X_HAS_INFINITY__ 1
>>> #define __INT32_MAX__ 0x7fffffff
>>> #define __UQQ_FBIT__ 8
>>> #define __INT_WIDTH__ 32
>>> #define __SIZEOF_LONG__ 4
>>> #define __UACCUM_MAX__ 0XFFFFFFFFP-16UK
>>> #define __UINT16_C(c) c
>>> #define __PTRDIFF_WIDTH__ 32
>>> #define __DECIMAL_DIG__ 17
>>> #define __LFRACT_EPSILON__ 0x1P-31LR
>>> #define __FLT64_EPSILON__ 2.2204460492503131e-16F64
>>> #define __ULFRACT_MIN__ 0.0ULR
>>> #define __INTMAX_WIDTH__ 64
>>> #define __has_include_next(STR) __has_include_next__(STR)
>>> #define __LDBL_HAS_QUIET_NAN__ 1
>>> #define __ULACCUM_IBIT__ 32
>>> #define __FLT64_MANT_DIG__ 53
>>> #define __UACCUM_EPSILON__ 0x1P-16UK
>>> #define __GNUC__ 7
>>> #define __ULLACCUM_MAX__ 0XFFFFFFFFFFFFFFFFP-32ULLK
>>> #define __HQ_IBIT__ 0
>>> #define __FLT_HAS_DENORM__ 1
>>> #define __SIZEOF_LONG_DOUBLE__ 8
>>> #define __BIGGEST_ALIGNMENT__ 8
>>> #define __FLT64_MAX_10_EXP__ 308
>>> #define __GNUC_STDC_INLINE__ 1
>>> #define __DQ_IBIT__ 0
>>> #define __DBL_MAX__ ((double)1.7976931348623157e+308L)
>>> #define __ULFRACT_IBIT__ 0
>>> #define __INT_FAST32_MAX__ 0x7fffffff
>>> #define __DBL_HAS_INFINITY__ 1
>>> #define __ACCUM_IBIT__ 16
>>> #define __DEC32_MIN_EXP__ (-94)
>>> #define __THUMB_INTERWORK__ 1
>>> #define __INTPTR_WIDTH__ 32
>>> #define __LACCUM_MAX__ 0X7FFFFFFFFFFFFFFFP-31LK
>>> #define __FLT32X_HAS_DENORM__ 1
>>> #define __INT_FAST16_TYPE__ int
>>> #define __LDBL_HAS_DENORM__ 1
>>> #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
>>> #define __INT_LEAST32_MAX__ 0x7fffffff
>>> #define __ARM_PCS 1
>>> #define __DEC32_MIN__ 1E-95DF
>>> #define __ACCUM_MAX__ 0X7FFFFFFFP-15K
>>> #define __DBL_MAX_EXP__ 1024
>>> #define __USACCUM_EPSILON__ 0x1P-8UHK
>>> #define __WCHAR_WIDTH__ 32
>>> #define __FLT32_MAX__ 3.4028234663852886e+38F32
>>> #define __DEC128_EPSILON__ 1E-33DL
>>> #define __SFRACT_MAX__ 0X7FP-7HR
>>> #define __FRACT_IBIT__ 0
>>> #define __PTRDIFF_MAX__ 0x7fffffff
>>> #define __UACCUM_MIN__ 0.0UK
>>> #define __UACCUM_IBIT__ 16
>>> #define __FLT32_HAS_QUIET_NAN__ 1
>>> #define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
>>> #define __SIZEOF_SIZE_T__ 4
>>> #define __ULACCUM_MAX__ 0XFFFFFFFFFFFFFFFFP-32ULK
>>> #define __SIZEOF_WINT_T__ 4
>>> #define __LONG_LONG_WIDTH__ 64
>>> #define __FLT32_MAX_EXP__ 128
>>> #define __SA_IBIT__ 16
>>> #define __ULLACCUM_MIN__ 0.0ULLK
>>> #define __GXX_ABI_VERSION 1011
>>> #define __UTA_FBIT__ 64
>>> #define __SOFTFP__ 1
>>> #define __FLT_MIN_EXP__ (-125)
>>> #define __USFRACT_MAX__ 0XFFP-8UHR
>>> #define __UFRACT_IBIT__ 0
>>> #define __INT_FAST64_TYPE__ long long int
>>> #define __FLT64_DENORM_MIN__ 4.9406564584124654e-324F64
>>> #define __DBL_MIN__ ((double)2.2250738585072014e-308L)
>>> #define __USE_INIT_FINI__ 1
>>> #define __FLT32X_EPSILON__ 2.2204460492503131e-16F32x
>>> #define __FLT64_MIN_EXP__ (-1021)
>>> #define __LACCUM_MIN__ (-0X1P31LK-0X1P31LK)
>>> #define __ULLACCUM_FBIT__ 32
>>> #define __GXX_TYPEINFO_EQUALITY_INLINE 0
>>> #define __FLT64_MIN_10_EXP__ (-307)
>>> #define __ULLFRACT_EPSILON__ 0x1P-64ULLR
>>> #define __USES_INITFINI__ 1
>>> #define __DEC128_MIN__ 1E-6143DL
>>> #define __REGISTER_PREFIX__
>>> #define __UINT16_MAX__ 0xffff
>>> #define __DBL_HAS_DENORM__ 1
>>> #define __ACCUM_MIN__ (-0X1P15K-0X1P15K)
>>> #define __SQ_IBIT__ 0
>>> #define __FLT32_MIN__ 1.1754943508222875e-38F32
>>> #define __UINT8_TYPE__ unsigned char
>>> #define __UHA_FBIT__ 8
>>> #define __NO_INLINE__ 1
>>> #define __SFRACT_MIN__ (-0.5HR-0.5HR)
>>> #define __UTQ_FBIT__ 128
>>> #define __FLT_MANT_DIG__ 24
>>> #define __LDBL_DECIMAL_DIG__ 17
>>> #define __VERSION__ "7.5.0 20191114 (RTEMS 5, RSB 5.1, Newlib 7947581)"
>>> #define __UINT64_C(c) c ## ULL
>>> #define __ULLFRACT_FBIT__ 64
>>> #define __FRACT_EPSILON__ 0x1P-15R
>>> #define __ULACCUM_MIN__ 0.0ULK
>>> #define __UDA_FBIT__ 32
>>> #define __LLACCUM_EPSILON__ 0x1P-31LLK
>>> #define __GCC_ATOMIC_INT_LOCK_FREE 1
>>> #define __FLT32_MANT_DIG__ 24
>>> #define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
>>> #define __USFRACT_MIN__ 0.0UHR
>>> #define __UQQ_IBIT__ 0
>>> #define __SCHAR_WIDTH__ 8
>>> #define __INT32_C(c) c
>>> #define __DEC64_EPSILON__ 1E-15DD
>>> #define __ORDER_PDP_ENDIAN__ 3412
>>> #define __DEC128_MIN_EXP__ (-6142)
>>> #define __UHQ_FBIT__ 16
>>> #define __LLACCUM_FBIT__ 31
>>> #define __FLT32_MAX_10_EXP__ 38
>>> #define __INT_FAST32_TYPE__ int
>>> #define __UINT_LEAST16_TYPE__ short unsigned int
>>> #define __INT16_MAX__ 0x7fff
>>> #define __SIZE_TYPE__ unsigned int
>>> #define __UINT64_MAX__ 0xffffffffffffffffULL
>>> #define __UDQ_FBIT__ 64
>>> #define __INT8_TYPE__ signed char
>>> #define __ELF__ 1
>>> #define __ULFRACT_EPSILON__ 0x1P-32ULR
>>> #define __LLFRACT_FBIT__ 63
>>> #define __rtems__ 1
>>> #define __FLT_RADIX__ 2
>>> #define __INT_LEAST16_TYPE__ short int
>>> #define __LDBL_EPSILON__ 2.2204460492503131e-16L
>>> #define __UINTMAX_C(c) c ## ULL
>>> #define __SACCUM_MAX__ 0X7FFFP-7HK
>>> #define __SIG_ATOMIC_MAX__ 0x7fffffff
>>> #define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 1
>>> #define __VFP_FP__ 1
>>> #define __SIZEOF_PTRDIFF_T__ 4
>>> #define __FLT32X_MANT_DIG__ 53
>>> #define __LACCUM_EPSILON__ 0x1P-31LK
>>> #define __FLT32X_MIN_EXP__ (-1021)
>>> #define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
>>> #define __INT_FAST16_MAX__ 0x7fffffff
>>> #define __FLT64_DIG__ 15
>>> #define __UINT_FAST32_MAX__ 0xffffffffU
>>> #define __UINT_LEAST64_TYPE__ long long unsigned int
>>> #define __USACCUM_MAX__ 0XFFFFP-8UHK
>>> #define __SFRACT_EPSILON__ 0x1P-7HR
>>> #define __FLT_HAS_QUIET_NAN__ 1
>>> #define __FLT_MAX_10_EXP__ 38
>>> #define __LONG_MAX__ 0x7fffffffL
>>> #define __DEC128_SUBNORMAL_MIN__
>>> 0.000000000000000000000000000000001E-6143DL
>>> #define __FLT_HAS_INFINITY__ 1
>>> #define __USA_FBIT__ 16
>>> #define __UINT_FAST16_TYPE__ unsigned int
>>> #define __DEC64_MAX__ 9.999999999999999E384DD
>>> #define __ARM_32BIT_STATE 1
>>> #define __INT_FAST32_WIDTH__ 32
>>> #define __CHAR16_TYPE__ short unsigned int
>>> #define __PRAGMA_REDEFINE_EXTNAME 1
>>> #define __SIZE_WIDTH__ 32
>>> #define __INT_LEAST16_MAX__ 0x7fff
>>> #define __DEC64_MANT_DIG__ 16
>>> #define __INT64_MAX__ 0x7fffffffffffffffLL
>>> #define __UINT_LEAST32_MAX__ 0xffffffffU
>>> #define __SACCUM_FBIT__ 7
>>> #define __FLT32_DENORM_MIN__ 1.4012984643248171e-45F32
>>> #define __GCC_ATOMIC_LONG_LOCK_FREE 1
>>> #define __SIG_ATOMIC_WIDTH__ 32
>>> #define __INT_LEAST64_TYPE__ long long int
>>> #define __INT16_TYPE__ short int
>>> #define __INT_LEAST8_TYPE__ signed char
>>> #define __STDC_VERSION__ 201112L
>>> #define __SQ_FBIT__ 31
>>> #define __DEC32_MAX_EXP__ 97
>>> #define __ARM_ARCH_ISA_THUMB 1
>>> #define __INT_FAST8_MAX__ 0x7fffffff
>>> #define __ARM_ARCH 4
>>> #define __INTPTR_MAX__ 0x7fffffff
>>> #define __QQ_FBIT__ 7
>>> #define __UTA_IBIT__ 64
>>> #define __FLT64_HAS_QUIET_NAN__ 1
>>> #define __FLT32_MIN_10_EXP__ (-37)
>>> #define __FLT32X_DIG__ 15
>>> #define __LDBL_MANT_DIG__ 53
>>> #define __SFRACT_FBIT__ 7
>>> #define __SACCUM_MIN__ (-0X1P7HK-0X1P7HK)
>>> #define __DBL_HAS_QUIET_NAN__ 1
>>> #define __FLT64_HAS_INFINITY__ 1
>>> #define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
>>> #define __INTPTR_TYPE__ int
>>> #define __UINT16_TYPE__ short unsigned int
>>> #define __WCHAR_TYPE__ unsigned int
>>> #define __SIZEOF_FLOAT__ 4
>>> #define __USQ_FBIT__ 32
>>> #define __UINTPTR_MAX__ 0xffffffffU
>>> #define __INT_FAST64_WIDTH__ 64
>>> #define __DEC64_MIN_EXP__ (-382)
>>> #define __ULLACCUM_IBIT__ 32
>>> #define __FLT32_DECIMAL_DIG__ 9
>>> #define __INT_FAST64_MAX__ 0x7fffffffffffffffLL
>>> #define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
>>> #define __FLT_DIG__ 6
>>> #define __FLT32_HAS_INFINITY__ 1
>>> #define __UINT_FAST64_TYPE__ long long unsigned int
>>> #define __INT_MAX__ 0x7fffffff
>>> #define __LACCUM_FBIT__ 31
>>> #define __USACCUM_MIN__ 0.0UHK
>>> #define __UHA_IBIT__ 8
>>> #define __INT64_TYPE__ long long int
>>> #define __FLT_MAX_EXP__ 128
>>> #define __UTQ_IBIT__ 0
>>> #define __DBL_MANT_DIG__ 53
>>> #define __INT_LEAST64_MAX__ 0x7fffffffffffffffLL
>>> #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 1
>>> #define __DEC64_MIN__ 1E-383DD
>>> #define __WINT_TYPE__ unsigned int
>>> #define __UINT_LEAST32_TYPE__ unsigned int
>>> #define __SIZEOF_SHORT__ 2
>>> #define __ULLFRACT_IBIT__ 0
>>> #define __LDBL_MIN_EXP__ (-1021)
>>> #define __arm__ 1
>>> #define __FLT64_MAX__ 1.7976931348623157e+308F64
>>> #define __UDA_IBIT__ 32
>>> #define __WINT_WIDTH__ 32
>>> #define __INT_LEAST8_MAX__ 0x7f
>>> #define __FLT32X_MAX_10_EXP__ 308
>>> #define __LFRACT_FBIT__ 31
>>> #define __LDBL_MAX_10_EXP__ 308
>>> #define __ATOMIC_RELAXED 0
>>> #define __DBL_EPSILON__ ((double)2.2204460492503131e-16L)
>>> #define __UINT8_C(c) c
>>> #define __FLT64_MAX_EXP__ 1024
>>> #define __INT_LEAST32_TYPE__ int
>>> #define __SIZEOF_WCHAR_T__ 4
>>> #define __UINT64_TYPE__ long long unsigned int
>>> #define __LLFRACT_MAX__ 0X7FFFFFFFFFFFFFFFP-63LLR
>>> #define __TQ_FBIT__ 127
>>> #define __INT_FAST8_TYPE__ int
>>> #define __ULLACCUM_EPSILON__ 0x1P-32ULLK
>>> #define __UHQ_IBIT__ 0
>>> #define __LLACCUM_IBIT__ 32
>>> #define __FLT64_HAS_DENORM__ 1
>>> #define __FLT32_EPSILON__ 1.1920928955078125e-7F32
>>> #define __DBL_DECIMAL_DIG__ 17
>>> #define __STDC_UTF_32__ 1
>>> #define __INT_FAST8_WIDTH__ 32
>>> #define __DEC_EVAL_METHOD__ 2
>>> #define __FLT32X_MAX__ 1.7976931348623157e+308F32x
>>> #define __TA_FBIT__ 63
>>> #define __UDQ_IBIT__ 0
>>> #define __ORDER_BIG_ENDIAN__ 4321
>>> #define __ACCUM_EPSILON__ 0x1P-15K
>>> #define __UINT32_C(c) c ## U
>>> #define __INTMAX_MAX__ 0x7fffffffffffffffLL
>>> #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
>>> #define __FLT_DENORM_MIN__ 1.4012984643248171e-45F
>>> #define __LLFRACT_IBIT__ 0
>>> #define __INT8_MAX__ 0x7f
>>> #define __LONG_WIDTH__ 32
>>> #define __UINT_FAST32_TYPE__ unsigned int
>>> #define __CHAR32_TYPE__ unsigned int
>>> #define __FLT_MAX__ 3.4028234663852886e+38F
>>> #define __USACCUM_FBIT__ 8
>>> #define __INT32_TYPE__ int
>>> #define __SIZEOF_DOUBLE__ 8
>>> #define __FLT_MIN_10_EXP__ (-37)
>>> #define __UFRACT_EPSILON__ 0x1P-16UR
>>> #define __FLT64_MIN__ 2.2250738585072014e-308F64
>>> #define __INT_LEAST32_WIDTH__ 32
>>> #define __INTMAX_TYPE__ long long int
>>> #define __DEC128_MAX_EXP__ 6145
>>> #define __FLT32X_HAS_QUIET_NAN__ 1
>>> #define __ATOMIC_CONSUME 1
>>> #define __GNUC_MINOR__ 5
>>> #define __INT_FAST16_WIDTH__ 32
>>> #define __UINTMAX_MAX__ 0xffffffffffffffffULL
>>> #define __DEC32_MANT_DIG__ 7
>>> #define __FLT32X_DENORM_MIN__ 4.9406564584124654e-324F32x
>>> #define __HA_FBIT__ 7
>>> #define __DBL_MAX_10_EXP__ 308
>>> #define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
>>> #define __INT16_C(c) c
>>> #define __STDC__ 1
>>> #define __ARM_ARCH_4T__ 1
>>> #define __PTRDIFF_TYPE__ int
>>> #define __LLFRACT_MIN__ (-0.5LLR-0.5LLR)
>>> #define __ATOMIC_SEQ_CST 5
>>> #define __DA_FBIT__ 31
>>> #define __UINT32_TYPE__ unsigned int
>>> #define __FLT32X_MIN_10_EXP__ (-307)
>>> #define __UINTPTR_TYPE__ unsigned int
>>> #define __USA_IBIT__ 16
>>> #define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
>>> #define __ARM_EABI__ 1
>>> #define __DEC128_MANT_DIG__ 34
>>> #define __LDBL_MIN_10_EXP__ (-307)
>>> #define __SIZEOF_LONG_LONG__ 8
>>> #define __ULACCUM_EPSILON__ 0x1P-32ULK
>>> #define __SACCUM_IBIT__ 8
>>> #define __GCC_ATOMIC_LLONG_LOCK_FREE 1
>>> #define __FLT32X_MIN__ 2.2250738585072014e-308F32x
>>> #define __LDBL_DIG__ 15
>>> #define __FLT_DECIMAL_DIG__ 9
>>> #define __UINT_FAST16_MAX__ 0xffffffffU
>>> #define __GCC_ATOMIC_SHORT_LOCK_FREE 1
>>> #define __INT_LEAST64_WIDTH__ 64
>>> #define __ULLFRACT_MAX__ 0XFFFFFFFFFFFFFFFFP-64ULLR
>>> #define __UINT_FAST8_TYPE__ unsigned int
>>> #define __USFRACT_EPSILON__ 0x1P-8UHR
>>> #define __ULACCUM_FBIT__ 32
>>> #define __QQ_IBIT__ 0
>>> #define __ATOMIC_ACQ_REL 4
>>> #define __ATOMIC_RELEASE 3
>>>
>>> -----------------------------------------
>>> Checking for program 'ar'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-ar
>>> find program=['ar']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin',
>>> '/home/hongbo/Developer/Embedded/local/bin', '/opt/wine-devel/bin',
>>> '/home/hongbo/Developer/Android/sdk/platform-tools',
>>> '/home/hongbo/.yarn/bin',
>>> '/home/hongbo/.local/node-v14.17.4-linux-x64//bin',
>>> '/home/hongbo/.local/go/bin', '/home/hongbo/.local/bin',
>>> '/home/hongbo/.cargo/bin', '/usr/lib/postgresql/14/bin', '/usr/local/bin',
>>> '/usr/bin', '/bin', '/usr/local/games', '/usr/games',
>>> '/home/hongbo/.local/go/bin'] var='AR' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-ar']
>>> -----------------------------------------
>>> Checking for program 'gas, gcc'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc
>>> find program=['gas', 'gcc']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin',
>>> '/home/hongbo/Developer/Embedded/local/bin', '/opt/wine-devel/bin',
>>> '/home/hongbo/Developer/Android/sdk/platform-tools',
>>> '/home/hongbo/.yarn/bin',
>>> '/home/hongbo/.local/node-v14.17.4-linux-x64//bin',
>>> '/home/hongbo/.local/go/bin', '/home/hongbo/.local/bin',
>>> '/home/hongbo/.cargo/bin', '/usr/lib/postgresql/14/bin', '/usr/local/bin',
>>> '/usr/bin', '/bin', '/usr/local/games', '/usr/games',
>>> '/home/hongbo/.local/go/bin'] var='AS' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc']
>>> -----------------------------------------
>>> Checking for program 'ar'
>>> /home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-ar
>>> find program=['ar']
>>> paths=['/home/hongbo/Developer/Embedded/rtems/5/bin',
>>> '/home/hongbo/Developer/Embedded/local/bin', '/opt/wine-devel/bin',
>>> '/home/hongbo/Developer/Android/sdk/platform-tools',
>>> '/home/hongbo/.yarn/bin',
>>> '/home/hongbo/.local/node-v14.17.4-linux-x64//bin',
>>> '/home/hongbo/.local/go/bin', '/home/hongbo/.local/bin',
>>> '/home/hongbo/.cargo/bin', '/usr/lib/postgresql/14/bin', '/usr/local/bin',
>>> '/usr/bin', '/bin', '/usr/local/games', '/usr/games',
>>> '/home/hongbo/.local/go/bin'] var='AR' ->
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-ar']
>>> -----------------------------------------
>>> Checking for c flags '-MMD'
>>> ==>
>>> int main() { return 0; }
>>> <==
>>> [1/1] Compiling
>>> [32mbuild/.conf_check_509462851c9724c0a8dfb70e8a94563b/test.c [0m
>>>
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc', '-MMD',
>>> '../test.c', '-c',
>>> '-o/home/hongbo/Developer/Embedded/rtems/app/hello/build/.conf_check_509462851c9724c0a8dfb70e8a94563b/testbuild/test.c.1.o']
>>> yes
>>> -----------------------------------------
>>> Checking for cxx flags '-MMD'
>>> ==>
>>> int main() { return 0; }
>>> <==
>>> [1/1] Compiling
>>> [32mbuild/.conf_check_a483f89cb2b8760c1662d80180dd6fd4/test.cpp [0m
>>>
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-g++', '-MMD',
>>> '../test.cpp', '-c',
>>> '-o/home/hongbo/Developer/Embedded/rtems/app/hello/build/.conf_check_a483f89cb2b8760c1662d80180dd6fd4/testbuild/test.cpp.1.o']
>>> yes
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc',
>>> '--version']
>>> out: arm-rtems5-gcc (GCC) 7.5.0 20191114 (RTEMS 5, RSB 5.1, Newlib
>>> 7947581)
>>> Copyright (C) 2017 Free Software Foundation, Inc.
>>> This is free software; see the source for copying conditions. There is
>>> NO
>>> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
>>> PURPOSE.
>>>
>>>
>>> -----------------------------------------
>>> Compiler version (arm-rtems5-gcc)
>>> 7.5.0 20191114 (RTEMS 5, RSB 5.1, Newlib 7947581)
>>> Opening and load pkgconfig:
>>> /home/hongbo/Developer/Embedded/rtems/5/lib/pkgconfig/arm-rtems5-tms570lc4357_launchxl.pc
>>> -----------------------------------------
>>> CFLAGS ->
>>> -qrtems -B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/lib/
>>> -B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/tms570lc4357_launchxl/lib/
>>> --specs bsp_specs -march=armv7-r -mthumb -mbig-endian -mfpu=vfpv3-d16
>>> -mfloat-abi=hard -Og -ggdb -ffunction-sections -fdata-sections -Wall
>>> -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
>>> -Wnested-externs
>>> LDFLAGS ->
>>> pkconfig warning: Label not found: LDFLAGS
>>>
>>> LIB ->
>>> pkconfig warning: Label not found: LIB
>>>
>>> -------------------------------------------
>>> Checking for a valid RTEMS BSP installation
>>> ==>
>>> #include <rtems.h>
>>> void Init(rtems_task_argument arg) { (void)arg; }
>>> #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
>>> #define CONFIGURE_MAXIMUM_TASKS 1
>>> #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
>>> #define CONFIGURE_INIT
>>> #include <rtems/confdefs.h>
>>> <==
>>> [1/2] Compiling
>>> [32mbuild/.conf_check_261484d99ea5da27480d47dee9a30c04/test.c [0m
>>>
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc',
>>> '-qrtems', '-B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/lib/',
>>> '-B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/tms570lc4357_launchxl/lib/',
>>> '--specs', 'bsp_specs', '-march=armv7-r', '-mthumb', '-mbig-endian',
>>> '-mfpu=vfpv3-d16', '-mfloat-abi=hard', '-ffunction-sections',
>>> '-fdata-sections', '-MMD', '../test.c', '-c',
>>> '-o/home/hongbo/Developer/Embedded/rtems/app/hello/build/.conf_check_261484d99ea5da27480d47dee9a30c04/testbuild/test.c.1.o']
>>> [2/2] Linking
>>> [33mbuild/.conf_check_261484d99ea5da27480d47dee9a30c04/testbuild/testprog
>>> [0m
>>>
>>> ['/home/hongbo/Developer/Embedded/rtems/5/bin/arm-rtems5-gcc',
>>> '-qrtems', '-B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/lib/',
>>> '-B/home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/tms570lc4357_launchxl/lib/',
>>> '--specs', 'bsp_specs', '-march=armv7-r', '-mthumb', '-mbig-endian',
>>> '-mfpu=vfpv3-d16', '-mfloat-abi=hard', '-ffunction-sections',
>>> '-fdata-sections', '-MMD', 'test.c.1.o',
>>> '-o/home/hongbo/Developer/Embedded/rtems/app/hello/build/.conf_check_261484d99ea5da27480d47dee9a30c04/testbuild/testprog',
>>> '-Wl,-Bstatic', '-Wl,-Bdynamic']
>>> err:
>>> /home/hongbo/Developer/Embedded/rtems/5/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld:
>>> /home/hongbo/Developer/Embedded/rtems/5/arm-rtems5/tms570lc4357_launchxl/lib/librtemsbsp.a(HL_sci.o):
>>> in function `sciSetBaudrate':
>>> /home/hongbo/Developer/Embedded/rtems/build/tms570lc4357/arm-rtems5/c/tms570lc4357_launchxl/lib/libbsp/arm/tms570/../../../../../../../../../rtems-master/c/src/lib/libbsp/arm/tms570/../../../../../../bsps/arm/tms570/start/tms570lc4357/source/HL_sci.c:284:
>>> undefined reference to `floor'
>>> collect2: error: ld returned 1 exit status
>>>
>>> from /home/hongbo/Developer/Embedded/rtems/app/hello: Test does not
>>> build: Traceback (most recent call last):
>>> File
>>> "/home/hongbo/Developer/Embedded/rtems/app/hello/.waf3-2.0.19-1f3c580272b15a03d2566843c5fe872a/waflib/Configure.py",
>>> line 333, in run_build
>>> bld.compile()
>>> File
>>> "/home/hongbo/Developer/Embedded/rtems/app/hello/.waf3-2.0.19-1f3c580272b15a03d2566843c5fe872a/waflib/Build.py",
>>> line 176, in compile
>>> raise Errors.BuildError(self.producer.error)
>>> waflib.Errors.BuildError: Build failed
>>> -> task in 'testprog' failed with exit status 1 (run with -v to display
>>> more information)
>>>
>>> no
>>> from /home/hongbo/Developer/Embedded/rtems/app/hello: The configuration
>>> failed
>>> On Fri, Jul 22, 2022 at 10:09 PM DAVE ERICKSON <daveerickson at shaw.ca>
>>> wrote:
>>>
>>>> Hi Y.HB
>>>>
>>>> LDFLAGS sets both the library kind to include in the archive build but
>>>> it also uses the -L flags to know where to look for it. The -lm can mean
>>>> the libm.a. libm.so libm.la so it searches the LD_LIBRARY_PATH
>>>> environment variable to find one that fits. If you want expressly to
>>>> include the libm.a you should specify it instead of -lm. The first thing I
>>>> recommend is find the symbols inside the Makefile configured for the .
>>>> Look for the LDFLAGS and then your LD_LIBRARY_PATH to see if it matches
>>>> where that arm-rtems5/lib/libm.a is.
>>>>
>>>> You can even use the flag argument: arm-rtems5/lib/libm.a or
>>>> ./arm-rtems5/lib/libm.a to express the precise library and location to use.
>>>>
>>>> This is one important distinction that many people confuse about how
>>>> automake and autoconf work: There is no "internal logic" in the autotools
>>>> way of creating recipes for Makefiles. m4 is used for pattern processing.
>>>> You must express what you want it to make, it won't go looking anywhere
>>>> else than what is specified.
>>>>
>>>> It's not cmake, scons, or raw make. GNU Autotools creates recipe files,
>>>> like config.status, that just hold environmental variables.
>>>>
>>>> DaemonDave on github.
>>>>
>>>> ------------------------------
>>>> *From: *"Y. HB" <sprhawk at gmail.com>
>>>> *To: *"rtems-users at rtems.org" <users at rtems.org>
>>>> *Sent: *Friday, July 22, 2022 12:11:38 AM
>>>> *Subject: *Re: How can I add LDFLAGS for bsp build?
>>>>
>>>> I added -lm in LDFLAGS in my custom bsps/arm/tms570/config/xxx.cfg
>>>>
>>>> the flag is added to compiling arguments, but it still reported
>>>> undefined reference to 'floor', but I see there is floor symbols in the
>>>> arm-rtems5/lib/libm.a
>>>>
>>>> Why is it?
>>>>
>>>> Thanks
>>>>
>>>> On Fri, Jul 22, 2022 at 1:43 PM Y. HB <sprhawk at gmail.com> wrote:
>>>>
>>>>> Hello
>>>>>
>>>>> I'm working on a custom tms570 bsp upon RTEMS 5.1, but it depends on
>>>>> math lib (-lm), how can I add this flag to the bsp build?
>>>>>
>>>>> Shall I add LDFLAGS="-lm" during configure or shall I change some
>>>>> variables in c/src/lib/libbsp/arm/xxxx/Makefile.am?
>>>>>
>>>>> Thanks
>>>>>
>>>>
>>>> _______________________________________________
>>>> users mailing list
>>>> users at rtems.org
>>>> http://lists.rtems.org/mailman/listinfo/users
>>>>
>>>>
>>>>
>>> On Fri, Jul 22, 2022 at 10:43 PM Joel Sherrill <joel at rtems.org> wrote:
>>>
>>>> This is an application matter and it all depends on what build system
>>>> you are using.
>>>> If your build system is make, then something like this will probably
>>>> work.
>>>>
>>>> LDFLAGS += -lm
>>>>
>>>> You may also want to ensure that the CFLAGS has the desired
>>>> optimization, debug, and warning levels selected:
>>>>
>>>> CFLAGS += -Og -g -Wall
>>>> CXXFLAGS += -Og -g -Wall
>>>>
>>>> If using waf, cmake, etc, etc, you ultimately want to produce the same
>>>> invocations of gcc but the mechanics are different.
>>>>
>>>> --joel
>>>>
>>>> On Fri, Jul 22, 2022 at 9:09 AM DAVE ERICKSON <daveerickson at shaw.ca>
>>>> wrote:
>>>>
>>>>> Hi Y.HB
>>>>>
>>>>> LDFLAGS sets both the library kind to include in the archive build but
>>>>> it also uses the -L flags to know where to look for it. The -lm can mean
>>>>> the libm.a. libm.so libm.la so it searches the LD_LIBRARY_PATH
>>>>> environment variable to find one that fits. If you want expressly to
>>>>> include the libm.a you should specify it instead of -lm. The first thing I
>>>>> recommend is find the symbols inside the Makefile configured for the .
>>>>> Look for the LDFLAGS and then your LD_LIBRARY_PATH to see if it matches
>>>>> where that arm-rtems5/lib/libm.a is.
>>>>>
>>>>> You can even use the flag argument: arm-rtems5/lib/libm.a or
>>>>> ./arm-rtems5/lib/libm.a to express the precise library and location to use.
>>>>>
>>>>> This is one important distinction that many people confuse about how
>>>>> automake and autoconf work: There is no "internal logic" in the autotools
>>>>> way of creating recipes for Makefiles. m4 is used for pattern processing.
>>>>> You must express what you want it to make, it won't go looking anywhere
>>>>> else than what is specified.
>>>>>
>>>>> It's not cmake, scons, or raw make. GNU Autotools creates recipe
>>>>> files, like config.status, that just hold environmental variables.
>>>>>
>>>>> DaemonDave on github.
>>>>>
>>>>> ------------------------------
>>>>> *From: *"Y. HB" <sprhawk at gmail.com>
>>>>> *To: *"rtems-users at rtems.org" <users at rtems.org>
>>>>> *Sent: *Friday, July 22, 2022 12:11:38 AM
>>>>> *Subject: *Re: How can I add LDFLAGS for bsp build?
>>>>>
>>>>> I added -lm in LDFLAGS in my custom bsps/arm/tms570/config/xxx.cfg
>>>>>
>>>>> the flag is added to compiling arguments, but it still reported
>>>>> undefined reference to 'floor', but I see there is floor symbols in the
>>>>> arm-rtems5/lib/libm.a
>>>>>
>>>>> Why is it?
>>>>>
>>>>> Thanks
>>>>>
>>>>> On Fri, Jul 22, 2022 at 1:43 PM Y. HB <sprhawk at gmail.com> wrote:
>>>>>
>>>>>> Hello
>>>>>>
>>>>>> I'm working on a custom tms570 bsp upon RTEMS 5.1, but it depends on
>>>>>> math lib (-lm), how can I add this flag to the bsp build?
>>>>>>
>>>>>> Shall I add LDFLAGS="-lm" during configure or shall I change some
>>>>>> variables in c/src/lib/libbsp/arm/xxxx/Makefile.am?
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> users mailing list
>>>>> users at rtems.org
>>>>> http://lists.rtems.org/mailman/listinfo/users
>>>>>
>>>>> _______________________________________________
>>>>> users mailing list
>>>>> users at rtems.org
>>>>> http://lists.rtems.org/mailman/listinfo/users
>>>>>
>>>>
>> _______________________________________________
>> users mailing list
>> users at rtems.org
>> http://lists.rtems.org/mailman/listinfo/users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20220725/1da70806/attachment-0001.htm>
More information about the users
mailing list