Thanks for stepping on my point, Joel. :) 

( I attended the RTEMS Open course instructed by Joel many years ago... ) 

Joel's comments on 

CFLAGS += -Og -g -Wall 
CXXFLAGS += -Og -g -Wall 

will NOT solve your gcc "can't find library problem" since these are tangential 
to your problem and are compiler flags. Compiler flags don't affect linking 
which is the stage where gcc/ar/ld programs create the code archive. 

If you want to express exactly which library to use then specify in the LDFLAGS 
environment variable in the folder where gcc is configured to "build from" in 
bsps/arm/tms570/config/xxx.cfg 

LDFLAGS += ~/ ...rest of explicit path... /arm-rtems5/lib/libm.a 

(NOTICE NO FLAG PREFIX ON EXPLICIT PATH) 

Will instruct gcc/ar/ld to do exactly what you want, which is include EXACTLY 
that library at EXACTLY that location. 

The explicit library path can be used to check and see if it's a location 
problem before a library internals problem. 

nm -D or nm to find the missing symbol inside a library. 


BTW RTEMS uses GNU autotools differently in that it configures in one 
folder/directory and the builds targets into another folder is a very rare way 
of using autotools. I know this because I have downloaded and reviewed over 
5000 open source projects for my new book. 

Most GNU autotools projects configure IN THE FOLDER that they want to compile 
and archive source code. That's one reason why the problems of diagnosing RTEMS 
build configurations are harder. 

Setting explicit file locations with absolute directories is a way to 
workaround the problems. 


Cheers! 

Daemondave on github 

Check out my new book Untrapped Value on LeanPub: 
https://leanpub.com/untrappedvalue 





From: "Joel Sherrill" <j...@rtems.org> 
To: "DAVE ERICKSON" <daveerick...@shaw.ca> 
Cc: "Y. HB" <sprh...@gmail.com>, "rtems-us...@rtems.org" <users@rtems.org> 
Sent: Friday, July 22, 2022 8:42:49 AM 
Subject: Re: How can I add LDFLAGS for bsp build? 

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 < [ mailto:daveerick...@shaw.ca | 
daveerick...@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 [ http://libm.la/ | 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" < [ mailto:sprh...@gmail.com | sprh...@gmail.com ] > 
To: " [ mailto:rtems-us...@rtems.org | rtems-us...@rtems.org ] " < [ 
mailto:users@rtems.org | users@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 < [ mailto:sprh...@gmail.com | 
sprh...@gmail.com ] > wrote: 

BQ_BEGIN

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 
[ mailto:users@rtems.org | users@rtems.org ] 
[ http://lists.rtems.org/mailman/listinfo/users | 
http://lists.rtems.org/mailman/listinfo/users ] 

_______________________________________________ 
users mailing list 
[ mailto:users@rtems.org | users@rtems.org ] 
[ http://lists.rtems.org/mailman/listinfo/users | 
http://lists.rtems.org/mailman/listinfo/users ] 

BQ_END


_______________________________________________
users mailing list
users@rtems.org
http://lists.rtems.org/mailman/listinfo/users

Reply via email to