Libc Version Conflicts

bpmurray

Still Fresh
Joined
Mar 5, 2006
Messages
38
Age
64
Location
Ireland
Website
louthanglers.8k.com
I've been trying to port some stuff, and my initial attempt failed to run because of the libc version. To resolve this I copied the libs from the gp2x to my PC and built against them. Still no joy - what am I doing wrong?

For the record, building against the GP2X libs, I get:
/lib/libc.so.6: version 'GLIBC_2.3' not found

Any ideas?
 

Mudi

You're pushing your luck little man
Joined
Jan 25, 2006
Messages
815
Website
mudiweb.com
With the advent of read-only cramfs firmwares shared linking is more and more difficult. Everyone else static links (I'd love to shared-link, it would reduce my CloneKeen2X size from ~1MB to 300k).
 

woogal

Certified Guru
Joined
May 15, 2003
Messages
1,823
Age
43
Location
Newark, UK
Website
gp32.sector808.org
If you want to use shared linking you have to compile with the same version of gcc used to compile the libs, which is 2.95. If you want to use any version of gcc other than that then you have to static link. The executable size will be much bigger, but even large apps like Quake are only around a meg or two so no-one really cares (if users are happy to fill cards with hundreds of roms (most of which they'll never play) then saving them a few hundred kb on an exe just isn't worth the effort - they'll only use the extra space to include another tedious game staring a fat plumber on their sd). Just make sure you strip the exe afterwards to get rid of unneccessary debug stuff. If you want to make your app as small as possible then there's also a gpe compressor at retrodev.info
 

theoddbot

Certified Guru
Joined
Sep 25, 2005
Messages
341
Website
oddbot.googlepages.com
Open2x is looking at including all of the libs in oopo's toolchain as the standard environment, and keeping the old libs around for a compatibility mode. This means that devs have the option of supplying non-static versions of their binaries for smaller size and faster loading.

But for now we don't have much choice.
 

bpmurray

Still Fresh
Joined
Mar 5, 2006
Messages
38
Age
64
Location
Ireland
Website
louthanglers.8k.com
OK, the arguments make sense: I'll go the static way. However, where is all this documented. For example, is there any place that explicitly states that the stuff is built using gcc 2.95 and that lists the versions of the libraries?

Binary compatibility is one of the major gripes of non-technical Linux users. Is there any way to avoid this, or at least minimise it?
 

GeminiDomino

Member
Joined
Dec 17, 2005
Messages
374
bpmurray posted on Apr 7 2006 at 07:11 PM said:
Binary compatibility is one of the major gripes of non-technical Linux users. Is there any way to avoid this, or at least minimise it?
Yep.

Static-linking. :D
 
Last edited by a moderator:
Top