Preface: -------- I have a userspace toolchain issue. I'm not sure where to post it, so I'll start here. I know some toolchain people are on this list. If there's a more appropriate mailing list someone let me know. Synopsis: --------- I am cross-compiling (on x86) the GNU Gatekeeper using "homebuilt" GNU mipsel-linux tools. For those not familiar with Gatekeeper there are three parts. Two libraries: pwlib and openh323, and then a gatekeeper client called openh323gk which links to both libraries. I am able to build pwlib completely--both static and shared versions of both the debug and regular libraries. I can build static versions of both debug and regular openh323, but when linking the shared versions I get relocation truncation errors (details below). If try to build the openh323gk client using either of the static openh323 libs that I was able to create, I get the same kinds of relocation truncation errors at link time. Details: -------- Here is the link step that fails from the openh323 library build: mipsel-linux-g++ -shared -Wl,-soname,libh323_linux_mips_r.so.1 -o /home/brad/openh323/lib/libh323_linux_mips_r.so.1.11.7 -s -fPIC -L/home/brad/pwl ib/lib -L/home/brad/openh323/lib -lpthread /home/brad/openh323/lib/obj_linux_mips_r/h225_1.o [... continues with 169 other .o files] The error output is thousands of the following: /home/brad/openh323/lib/obj_linux_mips_r/h235.o(.gnu.linkonce.t._ZNK14H235_ENCRY PTEDI27H235_EncodedKeySyncMaterialE5CloneEv+0x98): In function `H235_ENCRYPTED<H235_EncodedKeySyncMaterial>::Clone() const': : relocation truncated to fit: R_MIPS_GOT16 vtable for H235_ENCRYPTED<H235_EncodedKeySyncMaterial> /home/brad/openh323/lib/obj_linux_mips_r/h235.o(.gnu.linkonce.t._ZNK14H235_ENCRY PTEDI27H235_EncodedKeySyncMaterialE5CloneEv+0xb0): In function `H235_ENCRYPTED<H235_EncodedKeySyncMaterial>::Clone() const': : relocation truncated to fit: R_MIPS_CALL16 PASN_ObjectId::PASN_ObjectId[in-charge](PASN_ObjectId const&) /home/brad/openh323/lib/obj_linux_mips_r/h235.o(.gnu.linkonce.t._ZNK14H235_ENCRY PTEDI27H235_EncodedKeySyncMaterialE5CloneEv+0xd0): In function `H235_ENCRYPTED<H235_EncodedKeySyncMaterial>::Clone() const': : relocation truncated to fit: R_MIPS_CALL16 H235_Params::H235_Params[in-charge](H235_Params const&) [...] I built the cross-tools myself. They are now about 6-8 months old. They consist of: - gcc version 3.2.1 20020903 (prerelease) - GNU ld version 2.13.90.0.10 20021010 [from H.J. Lu] - glibc version 2.2.5 What I know: ------------ Googling hasn't turn up much, with the exception of an intriguing exchange from Sept 2001 on this mailing list: Petter Reinholdtsen reports similar messages when (native) compiling "a huge C++ program" (actually Opera) on an Indy: http://www.spinics.net/lists/mips/msg04568.html Wilbern Cobb suggests using -G4, -G2, or -G1, which Petter reports reduces the messages but does not eliminate them. Then Ryan Murray says that every static library used in the link, including libc_noshared.a and libgcc.a, must be compiled with -Wa,xgot. H.J. Lu appears to think it's an -fpic vs -fPIC issue (which from my level of understanding seems very plausible). Most interesting of all is that Ryan notes that this issue is *known* to affect Openh323. http://www.spinics.net/lists/mips/msg04575.html There is no follow up post from Petter, so how he resolved the issue is unknown. >From what I can gather, the -Gn option seems like a workaround, not a fix for the root problem. I have tried forcing -fPIC on every file in pwlib and openh323, but this does not resolve the problem. Perhaps my glibc libraries contain some pic instead of PIC though? "-Wa,xgot" seems like a whole lot of work...essentially rebuilding the toolchain. I have not tried it yet. I'm hoping someone will be able to give me a more conclusive diagnosis and allow me to avoid hours of banging my head against the wall. Is this a known issue (or just better understood than in Sept 2001) with the mips linker? Do I need newer tools, or a patch, or to rebuild the tools differently? Has anyone successfully built (native or cross) GNU Gatekeeper on MIPS? Thanks in advance, Brad -- Brad Barrett Senior Design Engineer, Patton Electronics 7622 Rickenbacker Dr., Gaithersburg, MD 20879 301/975-1000 x361