I build the DBD::mysql Perl module under HP-UX 11.11 on an RP3440 machine with GCC 4.2.1. The link looked like this:
LD_RUN_PATH="/usr/local/mysql/lib" /opt/perl_64/bin/perl myld gcc -shared -static-libgcc -fPIC -L/lib/pa20_64 dbdimp.o mysql.o -o blib/arch/auto/DBD/mysql/mysql.sl -L/usr/local/mysql/lib -L/opt/hp-gcc64-4.2.1/lib/gcc/hppa64-hp-hpux11.11/4.2.1 -lmysqlclient -lz -lnsl -lm -lgcc The module built fine, but its "make test" failed with the following error. /usr/lib/pa20_64/dld.sl: Unsatisfied code symbol '_Jv_RegisterClasses' in load module '/mnt/DBD-mysql-4.006/blib/arch/auto/DBD/mysql/mysql.sl' I solved this problem by linking in a stub.o that contained an empty definition of _Jv_RegisterClasses. Apparently the problem is that the HP-UX dynamic linker does not just ignore unresolvable weak symbols as it should, so it's not a gcc bug, but perhaps the symbol should be exported by default, since the weak definition has already been removed for HP-UX in this patch: http://gcc.gnu.org/ml/gcc-patches/2006-04/msg00327.html -- Summary: dlopen fails because of missing _Jv_RegisterClasses under HP-UX 11.11 Product: gcc Version: 4.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ams at toroid dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35365