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*