The HP dynamic loader requires all symbols to be defined. I've been working on a revised method for handling weak undefined symbols introduced by the crt*.o files. Specifically, they need to be removed from shared libraries such as libgcc_s.sl. Moving the stubs into their own library introduced many fails in the gfortran testsuite similar to the following:
Executing on host: /test/gnu/gcc-4.1/objdir/gcc/testsuite/../gfortran -B/test/gn u/gcc-4.1/objdir/gcc/testsuite/../ /test/gnu/gcc-4.1/gcc/gcc/testsuite/gfortran. dg/PR19754_2.f90 -O0 -pedantic-errors -L/test/gnu/gcc-4.1/objdir/hppa64-hp- hpux11.11/./libgfortran/.libs -L/test/gnu/gcc-4.1/objdir/hppa64-hp-hpux11.11/./l ibgfortran/.libs -L/test/gnu/gcc-4.1/objdir/hppa64-hp-hpux11.11/./libiberty -lm -o ./PR19754_2.exe (timeout = 300) PASS: gfortran.dg/PR19754_2.f90 -O0 (test for excess errors) Setting LD_LIBRARY_PATH to .:/test/gnu/gcc-4.1/objdir/hppa64-hp-hpux11.11/./libg fortran/.libs:/test/gnu/gcc-4.1/objdir/hppa64-hp-hpux11.11/./libgfortran/.libs:/ test/gnu/gcc-4.1/objdir/gcc:.:/test/gnu/gcc-4.1/objdir/hppa64-hp-hpux11.11/./lib gfortran/.libs:/test/gnu/gcc-4.1/objdir/hppa64-hp-hpux11.11/./libgfortran/.libs: /test/gnu/gcc-4.1/objdir/gcc /usr/lib/pa20_64/dld.sl: Unsatisfied code symbol '_Jv_RegisterClasses' in load m odule './PR19754_2.exe'. -- Summary: Incorrect handling of -B by gfortran driver Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: driver AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: danglin at gcc dot gnu dot org GCC build triplet: hppa64-hp-hpux11.11 GCC host triplet: hppa64-hp-hpux11.11 GCC target triplet: hppa64-hp-hpux11.11 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26876