[CentOS] [OT] how does ELF record file scope things?

Paul Norton pnorton3.14 at gmail.com
Mon Feb 18 10:58:58 UTC 2013


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*



More information about the CentOS mailing list