Date: Tue, 19 Nov 2002 21:30:31 -0500 From: The Anarcat <anarcat@anarcat.ath.cx> To: libh@freebsd.org Subject: precisions on the linking problem Message-ID: <20021120023031.GA316@lenny.anarcat.ath.cx>
next in thread | raw e-mail | index | archive | help
--opJtzjQTFsWo+cga Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Ok.. I checked out things a bit more cold-headed tonight, and it seems that one missing function isn't defined anywhere (LanguageInterface::LanguageInterface). In contrast, Shared::onHeap() is defined in Pointer.o However, both show up in the link errors. I discovered that the linking command for libhsysinstall is somewhat wrong. Here it is in all its beauty^Whorror: gcc31 -shared -Wl,-x -o libhsysinstall.so.0 -Wl,-soname,libhsysinstall.so= .0 `lorder PackageDescription.cd.So PackageStreamReference.cd.So Feature.S= o Feature.cd.So PackageFile.So PackageFile.cd.So Database.So Database.cd.So= Package.So Package.cd.So PackageStreamSubpackage.cd.So PackageStreamFile.S= o PackageStreamFile.cd.So PackageStreamStructure.cd.So PackageStreamStructu= re.So PackageCreator.So PackageCreator.cd.So PackageStream.So PackageStream= .cd.So Callback.So Callback.cd.So FeaturesProvided.So FeaturesProvided.cd.S= o Exec.cd.So History.cd.So libhsysinstall_init.So /usr/home/anarcat/cvs-wor= k/libh/lib/sysinstall/../../lib/tcl/TclLanguageInterface.So | tsort -q` -L/= usr/local/lib -lstdc++ -lgcc -lm The first thing that is immediatly obvious to me is that Pointer.So is missing in there. I don't know why/how, but it is, and that is one major problem. Putting it back in manually immediatly has the effect of defining Shared::onHeap() properly in libhsysinstall.so.0: 000c77b2 T Shared::onHeap(void const*) 000c76c0 T Shared::isOnHeap(Shared const*) and in libhsysinstall.a: Pointer.o: U _GLOBAL_OFFSET_TABLE_ U _Unwind_Resume 000000f2 T Shared::onHeap(void const*) 00000000 T Shared::isOnHeap(Shared const*) And hurray! It links!!! Now as to why, I'll let you in a little secret. I just redid the experiment *without* modifying the command line, that is: 1- building the libs straight from make(1) 2- cp(1) the files over and it just works. Even though Shared::onHeap() and friends is *not* defined in the library: U Shared::onHeap(void const*) U Shared::isOnHeap(Shared const*) Go figure. It's probably Alex that had it right all along. My setup was borked. So many headaches for nothing. :( I'll just resume my work, thanks for the assistance! A. --=20 =46rom the age of uniformity, from the age of solitude, from the age of Big Brother, from the age of doublethink - greetings! --opJtzjQTFsWo+cga Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (FreeBSD) iD8DBQE92vPGttcWHAnWiGcRAkxAAJ4jdhxiHCrdOoyliV0nbDO7eEBfEACfdINA UVp5xEFUS5hSzP8Cw2dI15g= =PT2m -----END PGP SIGNATURE----- --opJtzjQTFsWo+cga-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-libh" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021120023031.GA316>