Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Oct 1998 15:06:50 -0700 (PDT)
From:      Jin Guojun (FTG staff) <jin@george.lbl.gov>
To:        mike@smith.net.au
Cc:        bugs@FreeBSD.ORG, hackers@FreeBSD.ORG
Subject:   Re: ld for loading dynamic library changed in 3.0-RELEASE?
Message-ID:  <199810222206.PAA07047@george.lbl.gov>

next in thread | raw e-mail | index | archive | help
> > In loading a dynamic library, it loads entire library regardless
> > if objects are used or not. I do not know if this is a bug or intended
> > goal, but it does not make sense to build libraries at this point.
>  
> I'm sorry, but you're not making yourself very clear here.  Could you 
> explain a little more?

Let's say libtest.so containing three (3) files a.c b.c c.c.
a.c:
	a()	{ printf("a");	}

b.c:
	b()	{ b_printf("b");	}

c.c:
	c()	{ c_printf("c");	}

make them into regular library libtest.a and shared library libtest.so.

creating test file test.c:

main()
{
	a();
}

cc -o test test.c -ltest

on all platforms, this cc will be successfully compiled and linked,
but FreeBSD 3.0 complains :

libtest.so: Undefined symbol '_b_printf' referenced from text segment
libtest.so: Undefined symbol '_c_printf' referenced from text segment

However, "cc -o test test.c -static -ltest" is happy when no shared library
is used.

So, it looks like just for linking shared library.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199810222206.PAA07047>