How can I add LDFLAGS for bsp build?

Y. HB sprhawk at gmail.com
Mon Jul 25 14:12:46 UTC 2022


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
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20220725/35000a30/attachment-0001.htm>


More information about the users mailing list