Skip to Content.
Sympa Menu

baslinux - Re: [BL] uclibc static lynx 2.8.6dev16, lynx.lss and mplayer

baslinux AT lists.ibiblio.org

Subject: Baslinux mailing list

List archive

Chronological Thread  
  • From: David Moberg <davidjmoberg AT gmail.com>
  • To: baslinux AT lists.ibiblio.org
  • Subject: Re: [BL] uclibc static lynx 2.8.6dev16, lynx.lss and mplayer
  • Date: Wed, 18 Jan 2006 15:46:09 -0800

sindi keesan wrote:
> On Wed, 18 Jan 2006, David Moberg wrote:
>
> > I've uploaded it. By changing CFLAGS to -Os (in the makefiles) I
> > was able to reduce the size by about 30k after compression.
>
> Lovely, thanks!
> What is CFLAGS and how does it affect size?

CFLAGS is a special variable that you can change in most
Makefiles. It controls the header include locations (e.g.
-I/usr/include/linux) and optimization flags (e.g. -Os -funroll-loops).

gcc accepts several different 'global' optimization flags:

-O0 no optimization
-O1 minimal optimization
-O2 even more " "
-O3 etc.
-O4 max (in recent gccs)

-Os optimize for size

-O + a number optimizes for speed mainly, but -Os optimizes
maximally for size. AFAIK you want -Os if you try Linux From
Scratch, as it will save many megs of disk space.

Apparently, -Os also produces faster code than -O3 or even
-O4 in most circumstances. That's the consensus from a
recent discussion on the Linux kernel mailing list.

Just edit all of the makefiles and change every instance of
-O2 or whatever it is to -Os. Sometimes you can also do
export CFLAGS="-Os" and then configure and make will
automatically use that setting.

> Will upx files gzip any smaller?

No. That would be like taking a gzip'ed file and running it
through gzip again. It's already about as small as it can
get.

> > I suggest that you cut out the middleman (I) and download the
> > uClibc rootfs to compile lynx yourself when the next version
> > arrives.
>
> Will do, since you have demonstrated that it all works - gcc 2.95.3?

uClibc rootfs comes with gcc 3.4, which worked quite well with
lynx, openssl, dosemu, and many other packages that I have
compiled with it.

To use the rootfs image, you need a partition with several hundred
MB of disk space to grow into. bunzip2 it, then mount -o loop.
Then do cp -a /mnt /newdirectory, where /mnt is where it is mounted,
and newdirectory is where you want to keep it permanently. You
can then umount /mnt and chroot to newdirectory and start building.

Most programs should work fine, but you might want to set up some
symlinks such as ln -s /usr/bin/cpp /lib/cpp.

David




Archive powered by MHonArc 2.6.24.

Top of Page