First steps towards an explicit perl.exp-less AIX build
H.Merijn Brand [Sat, 31 Jul 2004 08:32:31 +0000 (08:32 +0000)]
Previous method can still be used by undeffing usenativedlopen
If that is ever tested at all on AIX

p4raw-id: //depot/perl@23174

hints/aix.sh
hints/aix_4.sh

index e496604..baf8c00 100644 (file)
@@ -157,7 +157,11 @@ case "$cc" in
 # -bI:$(PERL_INC)/perl.exp  Read the exported symbols from the perl binary
 # -bE:$(BASEEXT).exp       Export these symbols.  This file contains only one
 #                          symbol: boot_$(EXP)  can it be auto-generated?
-lddlflags="$lddlflags -bhalt:4 -bM:SRE -bI:\$(PERL_INC)/perl.exp -bE:\$(BASEEXT).exp -bnoentry -lc"
+if test $usenativedlopen = 'true' ; then
+    lddlflags="$lddlflags -bhalt:4 -bexpall -G -bnoentry -lc"
+else
+    lddlflags="$lddlflags -bhalt:4 -bM:SRE -bI:\$(PERL_INC)/perl.exp -bE:\$(BASEEXT).exp -bnoentry -lc"
+    fi
 
 case "$use64bitall" in
     $define|true|[yY]*) use64bitint="$define" ;;
@@ -415,9 +419,19 @@ EOCBU
 
 if test $usenativedlopen = 'true' ; then
     ccflags="$ccflags -DUSE_NATIVE_DLOPEN"
+    # -brtl                Enables a binary to use run time linking
+    # -bdynamic                    When used with -brtl, tells linker to search for
+    #                      ".so"-suffix libraries as well as ".a" suffix
+    #                      libraries. AIX allows both .so and .a libraries to
+    #                      contain dynamic shared objects.
+    # -bmaxdata:0x80000000  This increases the size of heap memory available
+    #                      to perl. Default is 256 MB, which sounds large but
+    #                      caused a software vendor problems. So this sets
+    #                      heap to 2 GB maximum. Anything higher and you'd
+    #                      want to consider 64 bit perl.
     case "$cc" in
-       *gcc*) ldflags="$ldflags -Wl,-brtl" ;;
-       *)     ldflags="$ldflags -brtl" ;;
+       *gcc*) ldflags="$ldflags -Wl,-brtl -Wl,-bdynamic -Wl,-bmaxdata:0x80000000" ;;
+       *)     ldflags="$ldflags -brtl -bdynamic -bmaxdata:0x80000000" ;;
        esac
 elif test -f /lib/libC.a -a X"`$cc -v 2>&1 | grep gcc`" = X; then
     # If the C++ libraries, libC and libC_r, are available we will
index 35ae781..f88b28d 100755 (executable)
@@ -216,7 +216,11 @@ regcomp_cflags='optimize='
 # -bI:$(PERL_INC)/perl.exp  Read the exported symbols from the perl binary
 # -bE:$(BASEEXT).exp       Export these symbols.  This file contains only one
 #                          symbol: boot_$(EXP)  can it be auto-generated?
-lddlflags="$lddlflags -bhalt:4 -bM:SRE -bI:\$(PERL_INC)/perl.exp -bE:\$(BASEEXT).exp -bnoentry -lc"
+if test $usenativedlopen = 'true' ; then
+    lddlflags="$lddlflags -bhalt:4 -bexpall -G -bnoentry -lc"
+else
+    lddlflags="$lddlflags -bhalt:4 -bM:SRE -bI:\$(PERL_INC)/perl.exp -bE:\$(BASEEXT).exp -bnoentry -lc"
+    fi
 
 case "$use64bitall" in
     $define|true|[yY]*) use64bitint="$define" ;;