X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=README.aix;h=a4134a0b815c0e74ee2e193bcb28374f7ddccd8f;hb=7e6b8b1f52e0373e6767447e297b272f88bd4dfc;hp=96d82a6db761ffb1c73c64fdf5baf592f818430a;hpb=60ecc970a26fc45f3046a6008289d931e06f34a2;p=p5sagit%2Fp5-mst-13.2.git diff --git a/README.aix b/README.aix index 96d82a6..a4134a0 100644 --- a/README.aix +++ b/README.aix @@ -19,7 +19,7 @@ an ANSI compliant C-compiler with AIX by default, but binary builds of gcc for AIX are widely available. At the moment of writing, AIX supports two different native C compilers, -for which you have to pay: B and B. If you decide to use eiter +for which you have to pay: B and B. If you decide to use either of these two (which is quite a lot easier than using gcc), be sure to upgrade to the latest available patch level. Currently: @@ -31,6 +31,12 @@ The former is recommended, as not only can it compile Perl with no difficulty, but also can take advantage of features listed later that require the use of IBM compiler-specific command-line flags. +The IBM's compiler patch levels 5.0.0.0 and 5.0.1.0 have compiler +optimization bugs that affect compiling perl.c and regcomp.c, +respectively. If Perl's configuration detects those compiler patch +levels, optimization is turned off for the said source code files. +Upgrading to at least 5.0.2.0 is recommended. + If you decide to use gcc, make sure your installation is recent and complete, and be sure to read the Perl README file for more gcc-specific details. Please report any hoops you had to jump through to the development @@ -51,9 +57,22 @@ show the base, but is not always complete: =head2 Building Dynamic Extensions on AIX -AIX supports dynamically loadable libraries (shared libraries). -Shared libraries end with the suffix .a, which is a bit misleading, -because *all* libraries are shared ;-). +AIX supports dynamically loadable objects as well as shared libraries. +Shared libraries by convention end with the suffix .a, which is a bit +misleading, as an archive can contain static as well as dynamic members. +For perl dynamically loaded objects we use the .so suffix also used on +many other platforms. + +Note that starting from Perl 5.7.2 (and consequently 5.8.0) and AIX 4.3 +or newer Perl uses the AIX native dynamic loading interface in the so +called runtime linking mode instead of the emulated interface that was +used in Perl releases 5.6.1 and earlier or, for AIX releases 4.2 and +earlier. This change does break backward compatibility with compiled +modules from earlier perl releases. The change was made to make Perl +more compliant with other applications like Apache/modperl which are +using the AIX native interface. This change also enables the use of C++ +code with static constructors and destructors in perl extensions, which +was not possible using the emulated interface. =head2 The IBM ANSI C Compiler @@ -140,7 +159,7 @@ Follow the messages ... and you're done. =head2 Using GNU's gcc for building perl -We're woking on this using gcc-3.0 ... (any input highly appreciated) +We're working on this using gcc-3.0 ... (any input highly appreciated) =head2 Using Large Files with Perl @@ -154,15 +173,18 @@ threads are used in combination with 64bit configurations. =head2 64-bit Perl If your AIX is installed with 64-bit support, you can expect 64bit -configurations to work. In combination with threads some tests might still fail. - -=head2 GDBM and Threads - -... ? +configurations to work. In combination with threads some tests might +still fail. -=head2 NFS filesystems and utime(2) +=head2 AIX 4.2 and extensions using C++ with statics -... ? +In AIX 4.2 Perl extensions that use C++ functions that use statics +may have problems in that the statics are not getting initialized. +In newer AIX releases this has been solved by linking Perl with +the libC_r library, but unfortunately in AIX 4.2 the said library +has an obscure bug where the various functions related to time +(such as time() and gettimeofday()) return broken values, and +therefore in AIX 4.2 Perl is not linked against the libC_r. =head1 AUTHOR @@ -172,6 +194,6 @@ Structure copied from README.hpux =head1 DATE -Version 0.0.2: 12 Jul 2001 +Version 0.0.3: 12 Jul 2001 =cut