rasmus 99/07/24 11:05:03
Modified: src Configure src/support apxs.pl Log: This builds DSO's correctly on linux2 using gcc -shared instead of ld -Bshareable. It also tweaks apxs to correctly pass -Wl args to the linker in case the linker is gcc and not ld. Theoretically all systems that use gcc should be using gcc -shared, but I have only tested this on linux2 so far and therefore have only turned it on for this platform. I will test other platforms as well, but could use some help. Revision Changes Path 1.362 +2 -1 apache-1.3/src/Configure Index: Configure =================================================================== RCS file: /home/cvs/apache-1.3/src/Configure,v retrieving revision 1.361 retrieving revision 1.362 diff -u -r1.361 -r1.362 --- Configure 1999/07/22 17:41:47 1.361 +++ Configure 1999/07/24 18:05:01 1.362 @@ -957,8 +957,9 @@ LDFLAGS_SHLIB_EXPORT="-rdynamic" ;; *-linux2) + LD_SHLIB="gcc" CFLAGS_SHLIB="-fpic" - LDFLAGS_SHLIB="-Bshareable" + LDFLAGS_SHLIB="-shared" LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB LDFLAGS_SHLIB_EXPORT="-rdynamic" SHLIB_SUFFIX_DEPTH=0 1.25 +5 -1 apache-1.3/src/support/apxs.pl Index: apxs.pl =================================================================== RCS file: /home/cvs/apache-1.3/src/support/apxs.pl,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- apxs.pl 1999/07/09 21:44:32 1.24 +++ apxs.pl 1999/07/24 18:05:02 1.25 @@ -382,7 +382,11 @@ $opt = ''; my ($opt_Wl, $opt_L, $opt_l); foreach $opt_Wl (@opt_W) { - $opt .= " $1" if ($opt_Wl =~ m|^\s*l,(.*)$|); + if($CFG_LD_SHLIB ne "gcc") { + $opt .= " $1" if ($opt_Wl =~ m|^\s*l,(.*)$|); + } else { + $opt .= " -W$opt_Wl"; + } } foreach $opt_L (@opt_L) { $opt .= " -L$opt_L";