GP2X Stripping The Gp2x Toolchain


timbobsteve

Member
Joined
Oct 4, 2005
Messages
301
Hi all,

Just wanted to know everyones thoughts on reducing the size of the devkitPro GP2X toolchain.

My first thoughts would be stripping the debuging symbols from all the libs and binaries. What do you think of running these commands:

find /opt/local/DevKitPro/{arm-linux-gnu/}bin/ -type f -exec strip --strip-all '{}' ';'
find /opt/local/DevKitPro/lib/ -type f -exec strip --strip-unneeded '{}' ';'

Would that do harm to the toolchain if I ran those commands?

Also, when stripping the toolchain, do I need to use the arm-linux-strip? or will the normal gnu strip command be sufficient?

Thanks for any help. Basically I want the toolchain down to the smallest possible size, as it is going on a liveCD distro.
 
use the version of strip that works for the platform the binary is targeted for (so native strip for the compiler etc., and the arm strip for the libs). I wouldn't strip the debugging info out of the libraries, but that's just because I like to use the debugger...

P.
 
Why bother? End devs can strip their binaries. Stripping 'gcc' and such could help, but not by a lot.. and has it got debugging included anyway? But debugging in the libs is hugely valuable to many..

jeff
 
Hmmm... I had a fair few ppl say that a liveCD over 300Mb is too big to be usefull. So far the system is around 400Mb... so I thought stripping the libs and bins for devkitpro would help, space wise anyway.

I do understand tho about wanting debuggin symbols left in the libs... which is more than fine by me.... it just means an extra +50Mb on the total liveCD size.

One thing I could do once the devkit toolchain is up and running, is remove the X86 toolchain. I mean... seeing as how this is meant for GP2X devs, why include the X86 toolchain... of course with the CD being slack based ppl could just re-download the X86 toolchain if they decided to do a HDD install.... hmmm many questions.... few answers.

1) What would you all like to see in the Live CD?
2) What is an acceptable size for the CD image?
3) Should X86 dev be available on the CD?
4) Is a GUI prefered? or is CLI sufficient (I know some die-hard devs prefer CLI)
5) Anything else?

Thanks for your input.
 
Here's my two cents. It's Canadian though, so it's not worth a whole lot with the exchange rate. :)

Hmmm... I had a fair few ppl say that a liveCD over 300Mb is too big to be usefull. So far the system is around 400Mb... so I thought stripping the libs and bins for devkitpro would help, space wise anyway.

I don't know why those people would say that. Most of the live CDs I've used were 500-600MB. I get the desire for minimalism, but it shouldn't come at the expense of things that will be either very useful or outright necessary for development. I personally will probably just be installing it outright so size is really not a concern for me.

1) What would you all like to see in the Live CD?

Obvious: The main GP2X toolchain, rlyeh's minilib, an IDE or two, a help document for getting everything up and running would probably be helpful too.

Less obvious: Some example code and makefiles. Most of the "hardcore" devs will already have their development environments set up. Something like this will probably mostly appeal to "noobs" (or lazy people like me) so having a few basic tutorials and examples in a convenient spot would definitely be helpful.

2) What is an acceptable size for the CD image?

As long as it fits on one CD you should be OK. Less is good, but again, don't sacrifice the necessities for size.

3) Should X86 dev be available on the CD?

I personally wouldn't use it, but if it's not going to be a killer for space it won't hurt.

4) Is a GUI prefered? or is CLI sufficient (I know some die-hard devs prefer CLI)

A lightweight GUI would probably be preferred. It's less intimidating when you first see it, and it'll let you include things like Firefox, which will be helpful for looking up docs and tutorials online. If anyone needs the CLI, they can open up an xterm and go to town.

5) Anything else?

Thanks for your input.
A couple of things that would be nice but that I don't seriously expect:
I'd also like to see emerde, but I think that might be pushing it. A 2.6 kernel that will load the necessary modules on boot would be nice though. Last time I tried Slackware I had a real bitch of a time with 2.6, so much so that I just gave up on it altogether. Neither of these are necessary but they would really make my day. :)
 
Last edited by a moderator:
timbosteve,

Here are my opinions to your questions.

1) What would you all like to see in the Live CD?

Obvious: The main GP2X toolchain, rlyeh's minilib, an IDE or two, a help document for getting everything up and running would probably be helpful too.

Less obvious: Some example code and makefiles. Most of the "hardcore" devs will already have their development environments set up. Something like this will probably mostly appeal to "noobs" (or lazy people like me) so having a few basic tutorials and examples in a convenient spot would definitely be helpful.

I agree, but you may also want to include PyGames, SDL utility libraries (i.e. SDL TTF, SDL Image, ... not sure if main GP2X toolchain includes this). I would still like you to include my SGE game engine and Lua.

2) What is an acceptable size for the CD image?

Should fit on one CD but there needs to be enough room left to add new features/libs later.

3) Should X86 dev be available on the CD?

Yes, I want to be able to write/test apps on my PC before transfering them to my GP2X.

4) Is a GUI prefered? or is CLI sufficient (I know some die-hard devs prefer CLI)

I think this is required for 3)

5) Anything else?

I will be happy to test your distro when it is available and help to create documentation / tutorials.
 
I agree, but you may also want to include PyGames, SDL utility libraries (i.e. SDL TTF, SDL Image, ... not sure if main GP2X toolchain includes this). I would still like you to include my SGE game engine and Lua.

Heh, I forgot about those. I would have included them in my statement if I wasn't such a retard. Basically I wanted to see the major development tools, so yes, include these as well. :)
 
I don't know if this is obvious or not, but some of the basic utilities shouldn't be omitted. Tar, gzip, and grep come to mind.
 
GeminiDomino: For sure... i don't think any proper linux user would ever consider taking them out ;) The only thing I would change would be linux-utils for busybox (but I won't at this stage).

Thanks for the input everyone. Most appreciative. I will go about setting up a module system for the liveCD so ppl can add/change/remove certain features (mainly updates to SDL, miniLib etc...)

The gui will most likely be fluxbox or XFCE (perhaps XFCE would be good because of ROX etc) X86 Dev is staying in for the time being. And I won't be stripping the libraries at all for the time being.

I was working under a 300Mb size limit because I felt no one would DL a 600Mb distro... but the response here has made me see otherwise. Bring on the functionality!!!

As for IDE's ... I prefer a simple Tabbed-Editor with Syntax Highlighting... but I may also add in mingw-ide (precompiled and statically linked, so no deps required)

Makefiles are a definate... also tutorials would be great... does anyone want to write some or submit some to be added to the CD?

I am aiming at making it 'n00b' friendly, but more experienced devs should also find it valuable... so all the input you can provide on specifics would be great.

Hopefully once I get the base system up I will be able to make an Initial Release.

Just for those that haven't seen previous posts, the Distro is called "GP2niX: Developer CD" or just "GP2niX" for short.

Thanks again.. more news soon.
 
As for IDE's ... I prefer a simple Tabbed-Editor with Syntax Highlighting... but I may also add in mingw-ide (precompiled and statically linked, so no deps required)

Do you already have one in mind? If not, might I suggest taking a look at Scite? Even with the scintilla library, it may be smaller than a lot of others out there.
 
Last edited by a moderator:
Do you already have one in mind? If not, might I suggest taking a look at Scite? Even with the scintilla library, it may be smaller than a lot of others out there.

Actually I have been a long time user of ScITE and I think it will most definately make it into the CD. One thing I am worried about is the list of dependancies for the GTK+ library (needed for Scite's interface)... once installed GTK+ and GTK+2 + the required libraries, is actually quite large... perhaps if a less dependant Tabbed editor, like Scite, can be found it may be a better option.

One option is Beaver, but upong further inspection it also requires GTK+ :(
 
Do you already have one in mind? If not, might I suggest taking a look at Scite? Even with the scintilla library, it may be smaller than a lot of others out there.

Actually I have been a long time user of ScITE and I think it will most definately make it into the CD. One thing I am worried about is the list of dependancies for the GTK+ library (needed for Scite's interface)... once installed GTK+ and GTK+2 + the required libraries, is actually quite large... perhaps if a less dependant Tabbed editor, like Scite, can be found it may be a better option.

One option is Beaver, but upong further inspection it also requires GTK+ :(

Ugh, you're right. I totally forgot about that behemoth abortion that is GTK+... Lets see what I've got gathering dust in my old source storage directory...

Cooledit seems to just require X libs, no GTK.

There's also Anjuta, but I think that one is C/C++ centered, rather large, and GTK-based.

Also KDevelop, based on the ungodly QT libs, which are hopefully not planned for the core disc.
 
Last edited by a moderator:
My alternative for the full IDE's (Anjuta + Kdevelop) is the Mingw IDE (can't remember the exact name ATM)... it seems like it uses alot of libs like GTK etc, but the devs kindly statically linked all their binaries, so no additional libs need be installed. So that has the IDE catagory sorted out... I think I will just try and statically link my own compiled version of Beaver or Scite and add that to the build.
 
I thought mingw was for windows. At any rate, I found a couple of alternatives if you're interested. First is Code::Blocks which uses wxwidgets as its gui toolkit, and for everyone whose dicks are hard for the command line, I found Motor. Since I don't think either of these rely on GTK or Qt, they may be better choices for IDEs. :)
 
1) What would you all like to see in the Live CD?
2) What is an acceptable size for the CD image?
3) Should X86 dev be available on the CD?
4) Is a GUI prefered? or is CLI sufficient (I know some die-hard devs prefer CLI)
5) Anything else?
1. A simple wm instead of kde or whatever you're using at the moment. Go with blackbox or something similar. Rylehs minilib, hardware accelerate sdl, gp2x toolchan and x86 gcc/sdl for test builds, python/pygame, fenix and an ide like anjuta (kdevelop is nice but is way too bloated/memory hungry and would require the even more bloated qt libs.)

2. 400mb is way too much. Start from scratch with damn small linux. 50-75mb i say is a reasonable amount. The only reason the other livecds should be so big is because they should give test users a lot of apps to play with before installing.

3. Enough to test apps. So gcc with sdl libs

4. Only a small simple one like blackbox. Kde/gnome and even fvwm is too fancy and bloated for a simple dev system.
 
Last edited by a moderator:
1) What would you all like to see in the Live CD?
2) What is an acceptable size for the CD image?
3) Should X86 dev be available on the CD?
4) Is a GUI prefered? or is CLI sufficient (I know some die-hard devs prefer CLI)
5) Anything else?
1. A simple wm instead of kde or whatever you're using at the moment. Go with blackbox or something similar.
Nice of you to jump to conclusions as to what WM I am using. Always have and always will use Fluxbox... GNOME and KDE suck... and a distro like this needs as little pretty'ness as possible.
Rylehs minilib, hardware accelerate sdl, gp2x toolchan and x86 gcc/sdl for test builds, python/pygame, fenix and an ide like anjuta (kdevelop is nice but is way too bloated/memory hungry and would require the even more bloated qt libs.)
I am perhaps dropping IDE's altogether and going back to makefiles and a simple tabbed editor (ScITE)

2. 400mb is way too much. Start from scratch with damn small linux. 50-75mb i say is a reasonable amount. The only reason the other livecds should be so big is because they should give test users a lot of apps to play with before installing.
This distro is not meant to welcome ppl to linux... so I don't see any validity in your point. I will give you a quick rundown on how it is:

Base System = 100-150Mb apprx
X = 50-70Mb apprx
X86 Versions of GCC and GlibC etc = 150Mb apprx
ARM Versions of GCC and GlibC etc = 150Mb apprx (without stripping)
SDL (X86 and ARM) and other libs = 50Mb apprx
possible inclusion of GTK+2 = 50Mb apprx

Total (Max/Min) without stripping = 550Mb/670Mb

So far I manage to have it sitting at under 400Mb... I think thats pretty good considering it has 2 Toolchains (with debuging left in), X and a working system

3. Enough to test apps. So gcc with sdl libs
Done.

4. Only a small simple one like blackbox. Kde/gnome and even fvwm is too fancy and bloated for a simple dev system.
Graphical env is a personal requirement.

Sorry if I seem blunt in my answers... I am a little cranky today... stayed up until 4am working on GP2niX (this project) and had to come to work at 7am.. So I am a zombie.

Trust me... I will do all I can to bring the size down, but I will not remove functionality.
 
Last edited by a moderator:
I thought mingw was for windows. At any rate, I found a couple of alternatives if you're interested. First is Code::Blocks which uses wxwidgets as its gui toolkit, and for everyone whose dicks are hard for the command line, I found Motor. Since I don't think either of these rely on GTK or Qt, they may be better choices for IDEs. :)

Oh dear gods, no. Anything but WxWidgets...
 
Last edited by a moderator:
Nice of you to jump to conclusions as to what WM I am using. Always have and always will use Fluxbox... GNOME and KDE suck... and a distro like this needs as little pretty'ness as possible.

.............

This distro is not meant to welcome ppl to linux... so I don't see any validity in your point.
Oh I based this on the fact that I thought you said you had built it from knoppix which can be a bit bloated at times and is often used is a kind of test run for new linux users instead of a dev system or the like.
 
Last edited by a moderator:
Oh I based this on the fact that I thought you said you had built it from knoppix which can be a bit bloated at times and is often used is a kind of test run for new linux users instead of a dev system or the like.

I don't actually remember having ever said or mentioning anything to do with knoppix. I do remember mentioning DSL, SLAX, PuppyLinux, Slackware and Vector Linux throughout these forums.

Either way. I am building this system from a base slackware install. It is not a derivative of another LiveCD. One thing I would like to have setup is a loadable module system, in which users can download the latest updates to SDL_HW_ACCEL , MiniLib, PhyGame, Allegro etc once newer versions are out. This way all it takes to get the update running is to add the new .mo files to the modules folder on teh CD and re-burn it.

But that is just a HOPE at this point. I have not found enough info on setting that kind of system up. Any pointers from other Linux users would be most appreciative.
 
Last edited by a moderator:
Back
Top