develooper Front page | perl.perl5.porters | Postings from January 2004

perl 5.8.3 AIX build badly broken + fixes

Thread Next
David Favor
January 23, 2004 07:37
perl 5.8.3 AIX build badly broken + fixes
Message ID:
Perl 5.8.3 building is severely mangled on AIX. Attached are the
changes required to get a clean build and test:

    - Makefile.SH

    - hints/

    - config.defs

When these problems are fixed the changes should be added
to the 5.9.x tree also.

If someone can point me to the CVS info for perl 5.[89].x,
I'll do nightly builds to hopefully avoid breakage like
this in the future on AIX.

1) Makefile.SH

    Several modules report requiring additional stack memory
    for maximum optimization.

    In hints/ change -qmaxmem=16384 to -qmaxmem=-1 so
    no compilation stack limits are imposed.

    This option is valid for all versions of VAC currently
    supporte by IBM. Perhaps a check should be made for
    pre-VAC 5.0 and add -qmaxmem=32768, or the max, whatever
    that might be.

2) hints/

    Something has changed in the default AIX link processing.

    It appears -bexpall is only sometimes enforced. The ld docs
    state -bexpall is still the default behavior and this appears
    to be a dirty, rotten lie. :-)

    This occurs on later versions of AIX 433 and all versions
    of 510, 520 and 520+. It's unclear whether this is a VAC
    or ld problem.

    Change the following in Makefile.SH to drop deprecated flags
    (-H512 -T512) and add -bexpall.

             shrpldflags="-H512 -T512 -bhalt:4 -bM:SRE -bE:perl.exp"
             case "$osvers" in
                 3*)     shrpldflags="$shrpldflags -e _nostart"
                 *)      shrpldflags="-bnoentry -bexpall -bhalt:4 -bM:SRE -bE:perl.exp"
             shrpldflags="$shrpldflags $ldflags $perllibs $cryptlib"
             linklibperl="-L $archlibexp/CORE -L `pwd | sed 's/\/UU$//'` -lperl"

    Adding -bexpall should be okay, as it's suppose to be the default
    anyway. When IBM fixes this (someday) the -bexpall will become a NOP.

3) config.defs

    Here's where the majority of breakage occurs. Someone has
    mangled library entry point sensing for AIX.

    As a result many HAS_* and I_* constants are left commented
    out. Imagine how well perl runs with HAS_PIPE and HAS_SOCKET
    commented out.

    See the attached config.defs file for the #defines I added
    to get a clean build.

    If someone can suggest a *real* fix for this, I'll try it
    and report my results.

4) Configure args required for HAS_*/I_* workaround

    Just setting HAS_* is insufficient for getting the extensions
    Socket and IPC/SysV to build. Here's the Configure command line
    which seems to get the job *** partially *** done:

       bash ./Configure \
            -Dprefix=/usr/local/perl-5.8.3-32bit -des -Dusedevel \
            -Doptimize=-g -DDEBUGGING -Dusenm -Dusethreads -Duseshrplib \
            -Dd_dosuid -Dd_socket -Dd_msg -Dd_sem -Dd_shm \
            -Dbison -Dyacc='bison -y' \
            -Dcf_by='' \

    This is a required workaround until library entry point sensing
    is fixed.

5) bison sensing broken

    -Dyacc='bison -y' must be added as bison sensing is broken also.

-- -
Simple ways to look, feel and live your best ever!

Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About