bug-report: ld: hidden symbol `stat' in /usr/lib/libc_nonshared.a(stat.oS) is referenced by DSO

Daniel Jacobowitz drow@mvista.com
Wed Jan 21 15:46:00 GMT 2004


On Wed, Jan 21, 2004 at 11:22:34AM +0100, Stefaan wrote:
> Hi,
> 
> I get the error
> "hidden symbol `stat' in /usr/lib/libc_nonshared.a(stat.oS) is referenced
> by DSO"
> both on debian/unstable and redhat 9 with self-compiled binutils 2.14.
> 
> I produce it with the following code:
> main.c:
> int main() {};
> 
> libfile.c:
> #include <sys/stat.h>
> void func(void) {
>         stat(0, 0);
> };
> 
> gcc -o main.o -c main.c
> gcc -o libfile.o -c libfile.c

No, say gcc -fPIC -o libfile.o -c libfile.c.

> ld -o libmylib.so -shared libfile.o

Do not, ever, do that.  Use gcc -shared -o libmylib.so libfile.o.

> gcc -o exec main.o -L. -lmylib
> 
> The last command invokes ld and gives the error.  I don't get this error
> when using binutils-2.13.2.  I also got this error using the
> binutils-weekly.

The error message is new, the problem is not.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer



More information about the Binutils mailing list