Michael Hennebry
2013-Feb-18 01:56 UTC
[CentOS] [OT] how does ELF record file scope things?
fred.c: static void sfunc(int *p) { *p=1; } static int x; void fred(void) { ... sfunc(&x); ... } greg.c: static void sfunc(int *p) { *p=2; } static int x; void greg(void) { ... sfunc(&x); ... } Once the object files from fred.c and greg.c are linked, how does ELF distinguish the sfunc's and the x's? I've been trying to RTFM, but it hasn't helped? -- Michael hennebry at web.cs.ndsu.NoDak.edu "On Monday, I'm gonna have to tell my kindergarten class, whom I teach not to run with scissors, that my fiance ran me through with a broadsword." -- Lily
On 18 February 2013 01:56, Michael Hennebry <hennebry at web.cs.ndsu.nodak.edu>wrote:> fred.c: > static void sfunc(int *p) { *p=1; } > static int x; > > void fred(void) > { > ... sfunc(&x); ... > } > > > greg.c: > static void sfunc(int *p) { *p=2; } > static int x; > > void greg(void) > { > ... sfunc(&x); ... > } > > Once the object files from fred.c and greg.c are linked, > how does ELF distinguish the sfunc's and the x's? > I've been trying to RTFM, but it hasn't helped? >--> Michael hennebry at web.cs.ndsu.NoDak.edu > "On Monday, I'm gonna have to tell my kindergarten class, > whom I teach not to run with scissors, > that my fiance ran me through with a broadsword." -- Lily > _______________________________________________ > CentOS mailing list > CentOS at centos.org > http://lists.centos.org/mailman/listinfo/centos >The variables and functions belong to a block/file, this is their scope. Both functions/variables you mention are actually unique within their respective file scope. Also have a look at name mangling. http://en.wikipedia.org/wiki/Name_mangling. Gcc help @ http://gcc.gnu.org/ml/gcc-help/ IAll the best. Paul -- "It is a good day to die, Duras. And the day is not yet over"* **Lieutenant Worf*