Re: global Variable in multiple files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>
> If we do the following
>
> static int x; // in file1.c
>
> and
>
> extern int x; // in file2.c
>
> wouldn't the linker complain when the 2 object files are linked to
> generate the .o for the module? Shouldn't specifying some variable as
> static hide that variable from other source files. In the above case, I
> agree that x will not be exported, but will the module even build
> successfully?


It will. but will fail during loading!


>
> -Vishwas.
>
>
>
> Mike DeKoker wrote:
>
> > Yes, you'll end up having a local symbol for the
> > static declaration and an undefined exported symbol
> > for the extern declaration. The local symbol is not
> > exported by definition. The undefined exported symbol
> > cannot be exported because there is no object (i.e.
> > variable or function) to which it is bound.
> >
> > -Mike DeKoker
> >
> > --- "Sponsel Carsten (ext)"
> > <carsten.sponsel@erln.gepas.de> wrote:
> >
> >>But then I've two symbols when i view my module with
> >>nm...
> >>
> >>-----Original Message-----
> >>From: Mike DeKoker [mailto:mdekoker@yahoo.com]
> >>Sent: Freitag, 13. Februar 2004 18:20
> >>To: Sponsel Carsten (ext)
> >>Subject: Re: global Variable in multiple files
> >>
> >>
> >>Just define your variable as a module-level static
> >>and
> >>define an external reference to it in the other
> >>source
> >>files. This works for functions also.
> >>
> >>e.g.
> >>
> >>/* File1.c */
> >>static int x;
> >>
> >>/* File2.c */
> >>extern int x;
> >>
> >>This assumes that File1.o and File2.o are being
> >>relocatably linked into a single object file. (Since
> >>you're coding for a module they should be.)
> >>
> >>-Mike DeKoker
> >>
> >>--- "Sponsel Carsten (ext)"
> >><carsten.sponsel@erln.gepas.de> wrote:
> >>
> >>>Hi friends,
> >>>
> >>>it might be a simple question:
> >>>
> >>>What's the best way to get (to define) a global
> >>>variable which can be used in multiple files of a
> >>>kernel module in Linux Kernel 2.6? The variable
> >>>should not be exported as a symbol. In my special
> >>>problem I need an array of a struct which is
> >>
> >>useable
> >>
> >>>in all sourcefiles which form my kernel module.
> >>>
> >>>thanks,
> >>>Carsten
> >>>
> >>
> >>snip
> >>
> >>__________________________________
> >>Do you Yahoo!?
> >>Yahoo! Finance: Get your refund fast by filing
> >>online.
> >>http://taxes.yahoo.com/filing.html
> >
> >
> >
> > __________________________________
> > Do you Yahoo!?
> > Yahoo! Finance: Get your refund fast by filing online.
> > http://taxes.yahoo.com/filing.html
> >
> > --
> > Kernelnewbies: Help each other learn about the Linux kernel.
> > Archive:       http://mail.nl.linux.org/kernelnewbies/
> > FAQ:           http://kernelnewbies.org/faq/
> >
>
>
>


--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux