On Monday 27 August 2007 1:29:32 am Simon 'corecode' Schubert wrote: > Rob Landley wrote: > > I'm confused: it looks like (at a quick glance, which is all I'm up for > > at the moment with this cold) that the patch makes it put the static > > variables into bss, which is _not_ a common section...? > > Exactly. At least only OS (DragonFly) this is necessary. Gcc does this on > Linux as well, so I figured that should at least not be wrong. > > I'm no expert in linking, but it occured to me that the common section is > only for global symbols which in the end get merged to one, i.e. the same > global symbol defined in multiple objects. Obviously, this is never the > case for static symbols: they all need to be created and may never be > merged.
Ah, when you said "don't put them in a common section" I parsed that as "put each static variable into its own section". Right, "put static variables in bss, which gcc does and fixes a bug I hit on DragonFly" makes much more sense. (Since a static variable is essentially just a global with a weird naming convention, this works fine for me.) Query: is this just _uninitialized_ static variables? What happens to ones initialized to a default value? If it's a global, those don't go in .bss, they go in... Darn it, .data? When in doubt, go back to ancient half-remembered references: http://www.linuxjournal.com/article/1059 http://www.linuxjournal.com/article/1060 > cheers > simon Rob -- "One of my most productive days was throwing away 1000 lines of code." - Ken Thompson. _______________________________________________ Tinycc-devel mailing list Tinycc-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/tinycc-devel