OSDev.org

The Place to Start for Operating System Developers
It is currently Sat Apr 27, 2024 6:01 pm

All times are UTC - 6 hours




Post new topic Reply to topic  [ 3 posts ] 
Author Message
 Post subject: Minimal GNU Arm Toolchain?
PostPosted: Thu Mar 14, 2024 4:55 am 
Offline

Joined: Sat Jun 29, 2019 8:58 am
Posts: 8
Hi all,
The complete installation of the GNU ARM Toolchain is over 400MB.
1- There are many folders : arm-none-eab, bin, lib, include, libexec and share.
What are those folders for? Can you please give me a short description of the files in each folder?
2- I want to strip down the toolchain to keep just a simple compiler-linker-objdump toolchain. What are the bare minimum folders and files I need to build C programs for cortex M3 and M4F?
3- How to know which C library is used by the toolchain (uclibc, newlib, newlib_nano, ...)? And how to replace it with another one?
Thanks


Top
 Profile  
 
 Post subject: Re: Minimal GNU Arm Toolchain?
PostPosted: Thu Mar 14, 2024 2:28 pm 
Online
Member
Member
User avatar

Joined: Mon May 22, 2017 5:56 am
Posts: 817
Location: Hyperspace
Hiya! I can answer some of this, and I've had quite some experience with seeking simplicity too.

nullpointer wrote:
Hi all,
The complete installation of the GNU ARM Toolchain is over 400MB.
1- There are many folders : arm-none-eab, bin, lib, include, libexec and share.
What are those folders for? Can you please give me a short description of the files in each folder?

bin — Literally "binary", but in Unix culture it means "executable programs". Ideally, should contain only those programs meant to be launched by the shell.

lib — "Library"; common code & data, but nowadays supposed to only contain code libraries for linking. (There's often other stuff in there.)

share — Architecture-independent common data, such as text and image files.

libexec — Sometimes, an application is implemented as multiple programs but is launched as if it is a single program. The one program goes in bin, the others are supposed to go in libexec. They're sometimes installed to lib instead as libexec is the newest of these standard folders and everything always worked fine without it.

include — C & C++ header files. This one is exactly what it says on the tin.

arm-none-eab — Files specific to that target. May have another set of bin, lib, etc. folders inside it, possibly with include, probably not share. "eab" specifies the ABI.


nullpointer wrote:
2- I want to strip down the toolchain to keep just a simple compiler-linker-objdump toolchain. What are the bare minimum folders and files I need to build C programs for cortex M3 and M4F?

I suggest not doing this as it's so easy to break the whole package or break features some other program wants. I used to try to strip down bloated software, but in the end decided it was much better to just ignore the features I didn't need, treating the contents of packages as black boxes when possible. If someone who knows the toolchain tells you which parts you can remove, maybe it'll be all right.


nullpointer wrote:
3- How to know which C library is used by the toolchain (uclibc, newlib, newlib_nano, ...)? And how to replace it with another one?
Thanks

That, I'll have to leave for someone else. :)

_________________
Kaph — a modular OS intended to be easy and fun to administer and code for.
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie


Top
 Profile  
 
 Post subject: Re: Minimal GNU Arm Toolchain?
PostPosted: Fri Mar 15, 2024 4:01 am 
Offline

Joined: Sat Jun 29, 2019 8:58 am
Posts: 8
thanks eekee for your reply and the interresting infos you provided.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group