Mark Phalan wrote: > Up until recently when I was debugging something I sometimes liked to > build debug libraries that I could use with dbx. > For e.g. when building mech_krb5.so.1 I built like this: > > CTFCONVERT_O="" CTFMERGE_LIB="" COPTFLAG="-g" COPTFLAG64="-g" make > install > > I'm not sure exactly what the CTF options are doing but I assume that > they are preventing the removal of debug bits that dbx needs. > > Anyway this stopped working for me recently (I'm on build 84 but perhaps > caused by the direct bindings putback?). When I build with these options > I get plenty of errors: > Text relocation remains referenced > against symbol offset in file > <unknown> 0x4 pics/gssapi_krb5.o > <unknown> 0xc pics/gssapi_krb5.o > <unknown> 0x14 pics/gssapi_krb5.o > <unknown> 0x1c pics/gssapi_krb5.o > <unknown> 0x24 pics/gssapi_krb5.o > <unknown> 0x2c pics/gssapi_krb5.o > oidsets 0x0 pics/gssapi_krb5.o > oidsets 0x0 pics/gssapi_krb5.o > oidsets 0x0 pics/gssapi_krb5.o > ... > > What's the correct way to build debug libraries (with recent builds)?
I'm not sure I have an answer, but I can replicate the failure you're seeing, but don't think it has anything to do with direct bindings. The "Text relocation" error messages are telling you that the code isn't position independent. These messages are produced by ld(1) when -ztext is provided. As far as I can tell, this flag has always been passed to this component (it's actually a default that should be passed to all OSNet shard object builds). Note, even a default build passes in "-g", as debugging information must be created for CTF to leverage off of. So, by default you get: /ws/onnv-tools/SUNWspro/SS11/bin/cc -O -K pic -xspace -Xa -xildoff \ ^^ -errtags=yes -errwarn=%all -erroff=E_EMPTY_TRANSLATION_UNIT \ -erroff=E_STATEMENT_NOT_REACHED -xc99=%none -W0,-xglobalstatic -g ... ^^ and all is well. But with your options we get: /ws/onnv-tools/SUNWspro/SS11/bin/cc -g -K pic -xspace -Xa -xildoff \ ^^ -errtags=yes -errwarn=%all -erroff=E_EMPTY_TRANSLATION_UNIT \ -erroff=E_STATEMENT_NOT_REACHED -xc99=%none -W0,-xglobalstatic -g ... ^^ and the corresponding text relocation errors. The difference is the -O is swapped for -g. However, the -K pic flag is defined for both, so I don't know why the compiler isn't generating position independent code. Perhaps a compiler engineer can enlighten us. Maybe your debugging requirement can be obtained by simply using CTFCONVERT_O="" CTFMERGE_LIB=""? -- Rod.