newlib, uclib

4 messages, 4 authors, 2000-07-06 · open the first message on its own page

newlib, uclib

From: <hidden>
Date: 2000-07-06 13:29:59

Hi

In order to build a commercially successful product I have to reduce the footprint of the system.
Having a quick look at the files showed me, that the largest files are the libs (libc.so.6 = 4M) ... as u all know.
When searching the web for replacements, I came across newlib and uclib.

Is anyone out there who has done some work with this libs?

 Are they easy to use, install, build?

Are there other (small) replacements for the libc?

/Ruedi

Re: newlib, uclib

From: Tom Roberts <hidden>
Date: 2000-07-06 14:26:33

Ruedi.Hofer@ascom.ch wrote:
In order to build a commercially successful product I have to reduce the footprint of the system.
Having a quick look at the files showed me, that the largest files are the libs (libc.so.6 = 4M) ... as u all know.
Initially I also thought I would have to strip down the libraries
to reduce their footprint. But then I realized that Linux is a demand-
paged system, and only the pages which actually get used will be
loaded into memory. In our case only memory is an issue, the disk
space required is not important. So making libc include _everything_
is actually a good design decision, IMHO, because it avoids users
having to configure it, picking and choosing among thousands of
library functions.


Tom Roberts	tjroberts@lucent.com

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

Re: newlib, uclib

From: Pete Buechler <hidden>
Date: 2000-07-06 14:59:48

On Thu, 06 Jul 2000, Ruedi.Hofer@ascom.ch wrote:
Hi

In order to build a commercially successful product I have to reduce the footprint of the system.
Having a quick look at the files showed me, that the largest files are the libs (libc.so.6 = 4M) ... as u all know.
When searching the web for replacements, I came across newlib and uclib.

Is anyone out there who has done some work with this libs?

 Are they easy to use, install, build?

Are there other (small) replacements for the libc?

/Ruedi
4M sounds like the unstripped size. Make sure you strip the symbols from the
libraries if you are desperate for disk space. Newlib is an implementation of
the C library, but it was intended for use on embedded systems without Linux.
Hence there is no support for the Linux system calls in it.

Another option is to identify the C library functions that you are actually
using and remove the others from the archive. That would be rather tough by
hand. Lineo has a closed source tool called "Lipo" which will do that for you -
there may be a free replacement in the works somewhere.

--
Pete Buechler	: SuSE Linux Developer
Work e-mail	: peterb@suse.com
Work web page	: http://www.suse.com/~peterb
Personal e-mail	: peter.buechler@home.com

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

Re: newlib, uclib

From: Frank Smith <hidden>
Date: 2000-07-06 15:14:19

Pete Buechler wrote:
Another option is to identify the C library functions that you are actually
using and remove the others from the archive. That would be rather tough by
hand. Lineo has a closed source tool called "Lipo" which will do that for you -
there may be a free replacement in the works somewhere.
The Debian boot-floppies package has a script that does this sort of
thing,
I believe. Don't know how well it performs as compared to lipo-suction.

Excerpt from 'boot-floppies/scripts/rootdisk/mklibs.sh':

# Introduction:
# When creating boot floppies, there is never enough room on the disks.
# So it is important not to waste bytes on unnecessary code.
# Shared Libraries contain many functions that are probably not used in
the
# binaries included in the boot disks, and copying the whole library is
a
# waste of space.
# This utilitiy helps to reduce the necessary libraries to only include
the
# symbols needed to run a given set of executables.
#
# Features:
# * Automatic detection of all necessary libraries, even for
inter-library
#   dependencies, for a given set of executables.
# * Automatic installation of all needed libraries and soname links.
# * Automatic reduction of all libraries to minimal size for which PIC
#   libraries are provided.
#
# Requirements:
# * Beside the shared libraries, you need libfoo_pic.a files for all
#   libraries you want to reduce.
# * You need binutils (notably objdump and objcopy) installed.


Frank.


--
Frank Smith, MCompSci
Principal Software Designer      frank.smith@amirix.com
AMIRIX Systems Inc.              http://www.amirix.com/
Embedded Debian Project          http://www.emdebian.org/
77 Chain Lake Drive              902-450-1700 x289 (Phone)
Halifax, N.S. B3S 1E1            902-450-1704 (FAX)

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help