Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!rutgers!ucsd!ucbvax!STONY-BROOK.SCRC.SYMBOLICS.COM!jrd
From: jrd@STONY-BROOK.SCRC.SYMBOLICS.COM (John R. Dunning)
Newsgroups: comp.sys.atari.st
Subject: Strange '-s' flag behavior in the GNU linker ?
Message-ID: <19880918173048.9.JRD@MOA.SCRC.Symbolics.COM>
Date: 18 Sep 88 17:30:00 GMT
Sender: daemon@ucbvax.BERKELEY.EDU
Organization: The Internet
Lines: 32


    From: VBRANDT%DBNUAMA1.BITNET@CUNYVM.CUNY.EDU

       I have found what is not quite a bug, but a somewhat annoying feature in the
    GNU C linker. It seems that the '-s' flag does exactly the opposite of what I
    think it should do. If you don't specify '-s', the linker appends a symbol
    table to the executable, if you do specify it, no symbol table is produced.

Well, I admit it's somewhat counter-intuitive, but the semantics of -s
is unchanged from what it was in the unhacked LD.C.  Ie, the default
behaviour really is supposed to be to produce a symbol table.  After
thinking about it, though, it seems reasonable to change it in the ST
version, as the ST format symbol tables are never useful.  

       This means that to make executables without symbol tables, one cannot use
    GCC, but has to invoke everything manually. 

That's not true.  GCC passes the -s flag along if it's specified. (At
least it's supposed to; did I introduce a bug at the last minute?)

						Also, all the executables from
    the GNU package themselves have quite big symbol tables. Removing them would
    save several KB, which might help people suffering from storage/memory
    shortages.

Indeed.  I'm pretty sure I built all the executables with -s (to GCC),
so if they've really got symbol tables, perhaps I did leave a bug in
there.  I'll investigate tonight and post the results.

       Anyway, thanks to John for his impressive work !

You're very welcome.