So I ened up doing both:

 1) add missing tiny wrappers to distrib/utils/libhack untill the main
    locale references to libc disappeared (that is most of the multibyte
    locale code got not pulled in any more)

 2) create a makefile hack to build libcurses and nvi w/o WCHAR support

The resulting "instbin" sizes (the crunched and stripped binary containing
all userland code on the media) was:

                        Method 1        Method 2        diff
atari install floppy    1326224         1309808         16416
sun3 miniroot           1878976         1811280         67696

I consider the additional gain worth the hackish makefiles and will commit
both (as part 1 will also help other install media).

For the archives: the method I used to find symbols missing was: start with
uwe's list (some symbols were already covered) and then add

        LDADD+= -Wl,-Map=instbin.map

to the generated instbin.mk file in the object directory. Looking at the
map file it became obvious which symbol references caused inclusion of things
like is_multibyte.o from libc. I then iteratively added those to libhack
and rebuild, untill no linker failures occured and the whole thing was
small enough (i.e. the build did not fail).

Martin

Reply via email to