[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[patches] EGLIBC size measurements for option groups



Here's a summary of the size effects of the various option groups.
Some notes:
- In all of these configurations, the sysroot does not include locale
  data.
- Indentation reflects dependency: disabling the parent entails
  disabling the child.
- The 'uclibc API' configuration is an EGLIBC with an API that is the
  least superset of uClibc's possible with the existing option groups.
- The 'minimal' configuration has all option groups disabled.

Configuration                           Filesystem       libc.so memory 
=============                           ==========       ==============

all                                     30.5 MiB (100%)  1225 KiB (100%)  
no-EGLIBC_BSD                           30.5 MiB (100%)  1224 KiB (100%)  
no-EGLIBC_CHARSETS                      23.3 MiB ( 76%)  1225 KiB (100%)  
no-EGLIBC_DB_ALIASES                    30.4 MiB (100%)  1222 KiB (100%)  
no-EGLIBC_ENVZ                          30.5 MiB (100%)  1224 KiB (100%)  
no-EGLIBC_FSTAB                         30.5 MiB (100%)  1224 KiB (100%)  
no-EGLIBC_INET                          26.6 MiB ( 87%)  1055 KiB ( 86%)  
   no-EGLIBC_ADVANCED_INET6             30.5 MiB (100%)  1221 KiB (100%)  
   no-EGLIBC_SUNRPC                     28.6 MiB ( 94%)  1160 KiB ( 95%)  
      no-EGLIBC_NIS                     29.6 MiB ( 97%)  1225 KiB (100%)  
   no-EGLIBC_RCMD                       30.4 MiB (100%)  1214 KiB ( 99%)  
no-EGLIBC_LIBM                          29.2 MiB ( 96%)  1225 KiB (100%)  
no-EGLIBC_LOCALE_CODE                   29.5 MiB ( 97%)  1149 KiB ( 94%)  
   no-EGLIBC_CATGETS                    30.5 MiB (100%)  1222 KiB (100%)  
no-EGLIBC_SPAWN                         30.4 MiB (100%)  1221 KiB (100%)  
no-EGLIBC_STREAMS                       30.5 MiB (100%)  1224 KiB (100%)  
no-EGLIBC_UTMP                          30.3 MiB ( 99%)  1214 KiB ( 99%)  
   no-EGLIBC_GETLOGIN                   30.5 MiB (100%)  1223 KiB (100%)  
   no-EGLIBC_UTMPX                      30.5 MiB (100%)  1224 KiB (100%)  
no-EGLIBC_WORDEXP                       30.4 MiB (100%)  1208 KiB ( 99%)  
no-POSIX_REGEXP                         30.1 MiB ( 99%)  1161 KiB ( 95%)  
uClibc API                              20.0 MiB ( 65%)  1041 KiB ( 85%)  
minimal                                 16.3 MiB ( 53%)   883 KiB ( 72%)  

For comparison, here is the same size measurement script applied to a
uClibc sysroot:

uClibc                                   6.5 MiB ( 21%)   227 KiB ( 19%)  

The more interesting comparison, of course, is the libc.so memory
footprint, since it's little work to trim out files.

For reference, here's the 'uClibc API' option-group.config file.  Note
that it does include networking support, but still manages to get down
to 85%.

OPTION_EGLIBC_ADVANCED_INET6 = n
OPTION_EGLIBC_BSD = n
OPTION_EGLIBC_CATGETS = n
OPTION_EGLIBC_CHARSETS = n
OPTION_EGLIBC_DB_ALIASES = n
OPTION_EGLIBC_ENVZ = n
OPTION_EGLIBC_FSTAB = n
OPTION_EGLIBC_GETLOGIN = n
OPTION_EGLIBC_INET = y
OPTION_EGLIBC_LIBM = y
OPTION_EGLIBC_LOCALES = n
OPTION_EGLIBC_LOCALE_CODE = n
OPTION_EGLIBC_NIS = n
OPTION_EGLIBC_NSSWITCH = y
OPTION_EGLIBC_RCMD = n
OPTION_EGLIBC_SPAWN = n
OPTION_EGLIBC_SUNRPC = n
OPTION_EGLIBC_UTMP = y
OPTION_EGLIBC_UTMPX = n
OPTION_EGLIBC_WORDEXP = n
OPTION_POSIX_REGEXP = y

I haven't gotten the chance yet to go after wide character support.  I
still think that would make sense as the next priority, but I don't
want to promise quick results there.  I'll mess around with this and
have some kind of story to tell by next week.