From: H.Merijn Brand Date: Fri, 16 Apr 2010 15:47:15 +0000 (+0200) Subject: [PATCH] [5.12] Allow build on aix 4.2 (sigaction and IPv6) X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=4f1623e5e854b85ee815e79fd4cf7f5c0c8cccb5;p=p5sagit%2Fp5-mst-13.2.git [PATCH] [5.12] Allow build on aix 4.2 (sigaction and IPv6) Based on a patch by AUGUSTE-ETIENNE José The attached patches are necessary to work around aix 4.2 lack of support for IPv6, and limited support for POSIX sigaction() The hints/aix_4.sh patch solves the following build failure: "Socket.xs", line 468.16: 1506-007 (S) "struct in6_addr" is undefined. The ext/POSIX/t/sigaction.t patch solves the failing test reported a looong time ago: http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-01/msg01124.html After testing a simple C program using POSIX sigaction() with SA_SIGINFO, I found that it worked on aix 4.3 but failed on aix 4.2. I think it's safe to skip the SA_SIGINFO test on the aix 4.2 platform. perl 5.12.0 builds fine on the following platforms / C compiler : aix 4.2.1 / vac 5.0.2.7 (with attached patches) aix 4.3.2 / gcc 2.95.3 aix 4.3.3 / vac 4.4.0.3 aix 4.3.3 / vac 5.0.28 aix 5.2 / GNUpro gcc 2.9.aix51.020209 The atatched patches should be applied to blead and maint. --- diff --git a/ext/POSIX/t/sigaction.t b/ext/POSIX/t/sigaction.t index fd6cf2d..bb1b715 100644 --- a/ext/POSIX/t/sigaction.t +++ b/ext/POSIX/t/sigaction.t @@ -192,6 +192,7 @@ SKIP: { SKIP: { eval 'use POSIX qw(SA_SIGINFO); SA_SIGINFO'; skip("no SA_SIGINFO", 1) if $@; + skip("SA_SIGINFO is broken on AIX 4.2", 1) if $^O.$Config{osvers} =~ m/^aix4\.2/; sub hiphup { is($_[1]->{signo}, SIGHUP, "SA_SIGINFO got right signal"); } diff --git a/hints/aix_4.sh b/hints/aix_4.sh index 46b95b9..08a6894 100755 --- a/hints/aix_4.sh +++ b/hints/aix_4.sh @@ -119,8 +119,12 @@ case "$cc" in # 1506-294 (S) Syntax error in expression on #if directive. # case "$osvers" in - 4.2.1.0) ccflags="$ccflags -D_XOPEN_SOURCE" ;; - *) ;; + 4.2.1.0) + ccflags="$ccflags -D_XOPEN_SOURCE" + # aix 4.2 does not have IPv6 support + d_inetpton='undef' + d_inetntop='undef' + ;; esac nm_opt='-B'