Date: Mon, 7 Dec 1998 11:52:02 -0500 Message-Id: <199812071652.LAA24659@envy.delorie.com> From: DJ Delorie To: djgpp-workers AT delorie DOT com CC: djgpp-workers AT delorie DOT com In-reply-to: <366C0171.AACE7F0@cyberoptics.com> (message from Eric Rudd on Mon, 07 Dec 1998 10:25:21 -0600) Subject: Re: libc math function upgrade work References: <199810191414 DOT KAA25670 AT indy DOT delorie DOT com> <36696383 DOT 3E66693A AT cyberoptics DOT com> <199812051723 DOT MAA30930 AT envy DOT delorie DOT com> <366C0171 DOT AACE7F0 AT cyberoptics DOT com> Reply-To: djgpp-workers AT delorie DOT com > double exp2(double x) { > return pow2(x); > } Do an "nm" on your libc.a and make sure that object has both _exp2 and ___pow2 global. This shouldn't work. Consider: main.o: T _exp2 U _pow2 stub.o: T _pow2 U ___pow2 libc.o: T _exp2 T ___pow2 Now, you link main.o, you get _exp2 and need _pow2. Adding the stub resolves _pow2, but needs ___pow2. Adding libc resolves ___pow2 but now you have two _exp2. That should fail.