Current-Users archive

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

Re: HEADS-UP: Recent atari install floppy overflow

    Date:        Thu, 13 Sep 2018 11:53:27 +0200
    From:        Martin Husemann <>
    Message-ID:  <>

  | I prefer this option. The SMALL or TINY shell is still functional, and the
  | smaller the better.

For everyone's information ...

size  test.???*
   text    data     bss     dec     hex filename
   9213    1394      40   10647    2997 test.current
   8566    1394      40   10000    2710 test.old
   7568    1314      24    8906    22ca test.small
   9329    1394      40   10763    2a0b test.strcmp
   7471    1314      24    8809    2269 test.tiny

First, the actual sizes are not relevant, SMALL and TINY versions are only
built as part of /bin/sh (not actually installed as /bin/test) and when 
included in sh, the actual code compiled changes a bit (a few functions
are shared, and so omitted from the test compile, and other support stuff
is diffierent).

However the differences in the sizes should still apply - allowing for
that these are AMD64 versions, m68k, i386, arm, etc, sizes, and
differences, will all, well, differ...

Also note, that usually for install media, it is the size of the file that
matters, not the size of the running executable, but here, we would be
just adjusting the size of /bin/sh a little, and the file size change is
likely to reflect the binary size change to a degree, whereas the file
size changes of these test binary files are completely irrlevant.

In the list, "test.current" is what is in 8.99.25 right now.

test.old is (I think close enough to) what was in yesterday's HEAD
(it is actually /bin/test from my laptop, which is an older 8.99.xx from
earlier this year, but I don't think there had been any intervening
changes, though maybe gcc has gone up a revision since).

test.small is what I get compiling with -DSMALL, excluding all
of the fallback code.

test.strcmp is an earlier (never saw the light of day) version of test.current
which blindly used strcmp(s, "!") instead of open coding
s[0] == '!' && s[1] == '\0' and similar - when I saw how much bigger that
was, I abandoned that version, but kept the resulting binary ...)

test.tiny is test.small with support for test expressions containing redundant
(meaningless) surrounding parentheses (first and last args) eliminated (thus
no longer POSIX conforming, but not in a way that would really be a
problem for install media.)


ps: I have not yet built /bin/sh in these different forms to see what 
difference it makes there, and I'm not sure I know how to do that in
a way that the file size actually included in the install media can be
revealed - and I don't really have the setup which would allow me
to do it for the cases that are most important (eg: for port-atari).

Home | Main Index | Thread Index | Old Index