Skip Menu |
Report information
Id: 132178
Status: open
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: Christian.Tremel [at] itsv.at
Cc:
AdminCc:

Operating System: (no value)
PatchStatus: (no value)
Severity: low
Type: unknown
Perl Version: (no value)
Fixed In: (no value)



To: "perlbug [...] perl.org" <perlbug [...] perl.org>
Date: Thu, 28 Sep 2017 12:43:11 +0000
From: Tremel Christian <Christian.Tremel [...] itsv.at>
Subject: Perl 5.24.0: AIX compile error
Download (untitled) / with headers
text/plain 2.7k
Download (untitled) / with headers
text/html 14.4k

i am in the process of doing a gcc build of Perl 5.24.0, but it wont let me through. A build with IBM's native xlc compiler is going well, but in this case gcc is necessary to not break the AIX freeware tree.

here ist the error in his full glory.

+ make
        echo @`sh  cflags "optimize='-O2 -g '" opmini.o`  -DPERL_IS_MI
+NIPERL -DPERL_EXTERNAL_GLOB opmini.c
@/usr/bin/gcc -maix32 -maix32 -c -DPERL_CORE -D_THREAD_SAFE -D_ALL_SOU
+RCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -DNEED_PTHRE
+AD_INIT -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LA
+RGE_FILES -O2 -g -Wall -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB opmini
+.c
In file included from op.h:636:0,
                 from perl.h:3903,
                 from op.c:103:
reentr.h:719:14: error: field '_spent_struct' has incomplete type
  struct spwd _spent_struct;
              ^~~~~~~~~~~~~
make: The error code from the last command is 1.
[download]

the configure options

export OBJECT_MODE=32
export CC='/usr/bin/gcc -maix32'
export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib -L/usr
+/lib"
./Configure -desr -Doptimize="$RPM_OPT_FLAGS" \
        -d \
        -Dcc="$CC" -Dldflags="$LDFLAGS" \
        -Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \
        -Dprefix=%{_prefix} \
        -Duselargefiles \
        -Duseshrplib \
        -Dusethreads \
        -Darchname=%{_arch}-%{_os} \
        -A define:ld='/usr/bin/gcc -maix32' \
        -A define:ccdlflags='-brtl -bdynamic' \
        -A define:lddlflags='-bexpall -G -L/opt/freeware/lib'
 
make
#make test
( make -k check || true )
 
# build 64bit mode
export OBJECT_MODE=64
cd 64bit
export CC='/usr/bin/gcc -maix64'
export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib64 -L/u
+sr/lib64 -L/opt/freeware/lib"
 
./Configure -desr -Doptimize="$RPM_OPT_FLAGS" \
        -d \
        -Dcc="$CC" -Dldflags="$LDFLAGS" \
        -Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \
        -Dprefix=%{_prefix} \
        -Duselargefiles \
        -Duseshrplib \
        -Dusethreads \
        -Duse64bitall \
        -Darchname=%{_arch}-%{_os} \
        -A define:ld='/usr/bin/gcc -maix64' \
        -A define:ccdlflags='-brtl -bdynamic' \
        -A define:lddlflags='-bexpall -G -L/opt/freeware/lib64  -L/usr
+/lib64 -L/opt/freeware/lib'

 

 

________________________________­­­

Christian Tremel                                                                                   
IT-Services der Sozialversicherung GmbH                                       

 

Rechenzentrum                                                                                        

AIX Systemadministrator                                                                           

Gruberstraße 77

A – 4021 Linz

T: +43 (0)50124 844 1266

M: +43 (0)664 88661266

christian.tremel@itsv.at

www.itsv.at

 

 

 

Download image001.png
image/png 9.7k
image001.png
Download (untitled) / with headers
text/plain 2.4k
Am Thu, 28 Sep 2017 05:44:33 -0700, Christian.Tremel@itsv.at schrieb: Show quoted text
> i am in the process of doing a gcc build of Perl 5.24.0, but it wont > let me through. A build with IBM's native xlc compiler is going well, > but in this case gcc is necessary to not break the AIX freeware tree. > > here ist the error in his full glory. > > + make > > echo @`sh cflags "optimize='-O2 -g '" opmini.o` -DPERL_IS_MI > > +NIPERL -DPERL_EXTERNAL_GLOB opmini.c > > @/usr/bin/gcc -maix32 -maix32 -c -DPERL_CORE -D_THREAD_SAFE -D_ALL_SOU > > +RCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -DNEED_PTHRE > > +AD_INIT -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LA > > +RGE_FILES -O2 -g -Wall -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB opmini > > +.c > > In file included from op.h:636:0, > > from perl.h:3903, > > from op.c:103: > > reentr.h:719:14: error: field '_spent_struct' has incomplete type > > struct spwd _spent_struct; > > ^~~~~~~~~~~~~ > > make: The error code from the last command is 1. > > [download]<http://www.perlmonks.org/?node_id=1200254;displaytype=displaycode;part=1;abspart=1> > > the configure options > > export OBJECT_MODE=32 > > export CC='/usr/bin/gcc -maix32' > > export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib -L/usr > > +/lib" > > ./Configure -desr -Doptimize="$RPM_OPT_FLAGS" \ > > -d \ > > -Dcc="$CC" -Dldflags="$LDFLAGS" \ > > -Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \ > > -Dprefix=%{_prefix} \ > > -Duselargefiles \ > > -Duseshrplib \ > > -Dusethreads \ > > -Darchname=%{_arch}-%{_os} \ > > -A define:ld='/usr/bin/gcc -maix32' \ > > -A define:ccdlflags='-brtl -bdynamic' \ > > -A define:lddlflags='-bexpall -G -L/opt/freeware/lib' > > > > make > > #make test > > ( make -k check || true ) > > > > # build 64bit mode > > export OBJECT_MODE=64 > > cd 64bit > > export CC='/usr/bin/gcc -maix64' > > export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib64 -L/u > > +sr/lib64 -L/opt/freeware/lib" > > > > ./Configure -desr -Doptimize="$RPM_OPT_FLAGS" \ > > -d \ > > -Dcc="$CC" -Dldflags="$LDFLAGS" \ > > -Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \ > > -Dprefix=%{_prefix} \ > > -Duselargefiles \ > > -Duseshrplib \ > > -Dusethreads \ > > -Duse64bitall \ > > -Darchname=%{_arch}-%{_os} \ > > -A define:ld='/usr/bin/gcc -maix64' \ > > -A define:ccdlflags='-brtl -bdynamic' \ > > -A define:lddlflags='-bexpall -G -L/opt/freeware/lib64 -L/usr > > +/lib64 -L/opt/freeware/lib' > > >
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 3.4k
On Thu, 28 Sep 2017 12:44:33 GMT, Christian.Tremel@itsv.at wrote: Show quoted text
> i am in the process of doing a gcc build of Perl 5.24.0, but it wont > let me through. A build with IBM's native xlc compiler is going well, > but in this case gcc is necessary to not break the AIX freeware tree. > > here ist the error in his full glory. > > + make > > echo @`sh cflags "optimize='-O2 -g '" opmini.o` -DPERL_IS_MI > > +NIPERL -DPERL_EXTERNAL_GLOB opmini.c > > @/usr/bin/gcc -maix32 -maix32 -c -DPERL_CORE -D_THREAD_SAFE -D_ALL_SOU > > +RCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -DNEED_PTHRE > > +AD_INIT -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LA > > +RGE_FILES -O2 -g -Wall -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB opmini > > +.c > > In file included from op.h:636:0, > > from perl.h:3903, > > from op.c:103: > > reentr.h:719:14: error: field '_spent_struct' has incomplete type > > struct spwd _spent_struct; > > ^~~~~~~~~~~~~ > > make: The error code from the last command is 1. > > [download]<http://www.perlmonks.org/?node_id=1200254;displaytype=displaycode;part=1;abspart=1> > > the configure options > > export OBJECT_MODE=32 > > export CC='/usr/bin/gcc -maix32' > > export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib -L/usr > > +/lib" > > ./Configure -desr -Doptimize="$RPM_OPT_FLAGS" \ > > -d \ > > -Dcc="$CC" -Dldflags="$LDFLAGS" \ > > -Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \ > > -Dprefix=%{_prefix} \ > > -Duselargefiles \ > > -Duseshrplib \ > > -Dusethreads \ > > -Darchname=%{_arch}-%{_os} \ > > -A define:ld='/usr/bin/gcc -maix32' \ > > -A define:ccdlflags='-brtl -bdynamic' \ > > -A define:lddlflags='-bexpall -G -L/opt/freeware/lib' > > > > make > > #make test > > ( make -k check || true ) > > > > # build 64bit mode > > export OBJECT_MODE=64 > > cd 64bit > > export CC='/usr/bin/gcc -maix64' > > export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib64 -L/u > > +sr/lib64 -L/opt/freeware/lib" > > > > ./Configure -desr -Doptimize="$RPM_OPT_FLAGS" \ > > -d \ > > -Dcc="$CC" -Dldflags="$LDFLAGS" \ > > -Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \ > > -Dprefix=%{_prefix} \ > > -Duselargefiles \ > > -Duseshrplib \ > > -Dusethreads \ > > -Duse64bitall \ > > -Darchname=%{_arch}-%{_os} \ > > -A define:ld='/usr/bin/gcc -maix64' \ > > -A define:ccdlflags='-brtl -bdynamic' \ > > -A define:lddlflags='-bexpall -G -L/opt/freeware/lib64 -L/usr > > +/lib64 -L/opt/freeware/lib' > >
We support AIX, but it is certainly one of our less well-understood platforms. We're only getting smoke testing reports for AIX on PPC and each of those reports is a FAIL. Just so you know the limits of our ability to help you ... ;-) In situations like this it is often helpful to configure perl with a very limited set of command-line switches and seeing whether 'make' and 'make test' pass with those switches; then add options until you get significant breakage. You have submitted reports for 2 builds, AFAICT: a 32-bit build and a 64-bit build. For heuristic purposes I recommend you select the 64-bit configuration, then configure with something as simple as this: ##### $> sh ./Configure -des -Dusedevel ##### Does 'make' finish successfully with that? How about 'make test' or 'make test_harness'? If they PASS, add command-line switches to ./Configure one at a time until you get failures during either 'make' or 'make test'. Report back to us what works and what does not. Thank you very much. -- James E Keenan (jkeenan@cpan.org)
Download (untitled) / with headers
text/plain 4.7k
Am Thu, 28 Sep 2017 19:53:58 -0700, jkeenan schrieb: Show quoted text
> On Thu, 28 Sep 2017 12:44:33 GMT, Christian.Tremel@itsv.at wrote:
> > i am in the process of doing a gcc build of Perl 5.24.0, but it wont > > let me through. A build with IBM's native xlc compiler is going well, > > but in this case gcc is necessary to not break the AIX freeware tree. > > > > here ist the error in his full glory. > > > > + make > > > > echo @`sh cflags "optimize='-O2 -g '" opmini.o` -DPERL_IS_MI > > > > +NIPERL -DPERL_EXTERNAL_GLOB opmini.c > > > > @/usr/bin/gcc -maix32 -maix32 -c -DPERL_CORE -D_THREAD_SAFE > > -D_ALL_SOU > > > > +RCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN > > -DNEED_PTHRE > > > > +AD_INIT -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include > > -D_LA > > > > +RGE_FILES -O2 -g -Wall -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB > > opmini > > > > +.c > > > > In file included from op.h:636:0, > > > > from perl.h:3903, > > > > from op.c:103: > > > > reentr.h:719:14: error: field '_spent_struct' has incomplete type > > > > struct spwd _spent_struct; > > > > ^~~~~~~~~~~~~ > > > > make: The error code from the last command is 1. > > > > [download]<http://www.perlmonks.org/?node_id=1200254;displaytype=displaycode;part=1;abspart=1> > > > > the configure options > > > > export OBJECT_MODE=32 > > > > export CC='/usr/bin/gcc -maix32' > > > > export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib > > -L/usr > > > > +/lib" > > > > ./Configure -desr -Doptimize="$RPM_OPT_FLAGS" \ > > > > -d \ > > > > -Dcc="$CC" -Dldflags="$LDFLAGS" \ > > > > -Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \ > > > > -Dprefix=%{_prefix} \ > > > > -Duselargefiles \ > > > > -Duseshrplib \ > > > > -Dusethreads \ > > > > -Darchname=%{_arch}-%{_os} \ > > > > -A define:ld='/usr/bin/gcc -maix32' \ > > > > -A define:ccdlflags='-brtl -bdynamic' \ > > > > -A define:lddlflags='-bexpall -G -L/opt/freeware/lib' > > > > > > > > make > > > > #make test > > > > ( make -k check || true ) > > > > > > > > # build 64bit mode > > > > export OBJECT_MODE=64 > > > > cd 64bit > > > > export CC='/usr/bin/gcc -maix64' > > > > export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib64 > > -L/u > > > > +sr/lib64 -L/opt/freeware/lib" > > > > > > > > ./Configure -desr -Doptimize="$RPM_OPT_FLAGS" \ > > > > -d \ > > > > -Dcc="$CC" -Dldflags="$LDFLAGS" \ > > > > -Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \ > > > > -Dprefix=%{_prefix} \ > > > > -Duselargefiles \ > > > > -Duseshrplib \ > > > > -Dusethreads \ > > > > -Duse64bitall \ > > > > -Darchname=%{_arch}-%{_os} \ > > > > -A define:ld='/usr/bin/gcc -maix64' \ > > > > -A define:ccdlflags='-brtl -bdynamic' \ > > > > -A define:lddlflags='-bexpall -G -L/opt/freeware/lib64 -L/usr > > > > +/lib64 -L/opt/freeware/lib' > > > >
> > We support AIX, but it is certainly one of our less well-understood > platforms. We're only getting smoke testing reports for AIX on PPC > and each of those reports is a FAIL. > > Just so you know the limits of our ability to help you ... ;-) > > In situations like this it is often helpful to configure perl with a > very limited set of command-line switches and seeing whether 'make' > and 'make test' pass with those switches; then add options until you > get significant breakage. > > You have submitted reports for 2 builds, AFAICT: a 32-bit build and a > 64-bit build. For heuristic purposes I recommend you select the 64- > bit configuration, then configure with something as simple as this: > > ##### > $> sh ./Configure -des -Dusedevel > ##### > > Does 'make' finish successfully with that? How about 'make test' or > 'make test_harness'? If they PASS, add command-line switches to > ./Configure one at a time until you get failures during either 'make' > or 'make test'. Report back to us what works and what does not. > > Thank you very much.
i tried it with a limited set of options. <code> root@aixbuildhost: /opt/freeware/src/packages/BUILD/perl-5.24.0/64bit # cat gcc_test.sh #!/usr/bin/ksh make clean make distclean export OBJECT_MODE=64 export CC='/usr/bin/gcc -maix64' export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib64 -L/usr/lib64 -L/opt/freeware/lib -lpthreads" ./Configure -des -Dusedevel -Dcc="$CC" -Dldflags="$LDFLAGS" -Dusethreads </code> after running for a while it stops with the following... <code> ./miniperl -Ilib make_ext.pl lib/auto/Time/HiRes/HiRes.so MAKE="make" LIBPERL_A=libperl.a LINKTYPE=dynamic Makefile.PL: The "xdefine" exists, skipping the configure step. ("../../miniperl Makefile.PL --configure" to force the configure step) Warning: No Makefile! make: Cannot find a rule to create target all from dependencies. Stop. make: Cannot find a rule to create target all from dependencies. Stop. Unsuccessful make(dist/Time-HiRes): code=512 at make_ext.pl line 569. make: The error code from the last command is 2. Stop. </code>
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 6.6k
On Fri, 29 Sep 2017 07:26:18 GMT, Christian.Tremel@itsv.at wrote: Show quoted text
> Am Thu, 28 Sep 2017 19:53:58 -0700, jkeenan schrieb:
> > On Thu, 28 Sep 2017 12:44:33 GMT, Christian.Tremel@itsv.at wrote:
> > > i am in the process of doing a gcc build of Perl 5.24.0, but it > > > wont > > > let me through. A build with IBM's native xlc compiler is going > > > well, > > > but in this case gcc is necessary to not break the AIX freeware > > > tree. > > > > > > here ist the error in his full glory. > > > > > > + make > > > > > > echo @`sh cflags "optimize='-O2 -g '" opmini.o` -DPERL_IS_MI > > > > > > +NIPERL -DPERL_EXTERNAL_GLOB opmini.c > > > > > > @/usr/bin/gcc -maix32 -maix32 -c -DPERL_CORE -D_THREAD_SAFE > > > -D_ALL_SOU > > > > > > +RCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN > > > -DNEED_PTHRE > > > > > > +AD_INIT -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include > > > -D_LA > > > > > > +RGE_FILES -O2 -g -Wall -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB > > > opmini > > > > > > +.c > > > > > > In file included from op.h:636:0, > > > > > > from perl.h:3903, > > > > > > from op.c:103: > > > > > > reentr.h:719:14: error: field '_spent_struct' has incomplete type > > > > > > struct spwd _spent_struct; > > > > > > ^~~~~~~~~~~~~ > > > > > > make: The error code from the last command is 1. > > > > > > [download]<http://www.perlmonks.org/?node_id=1200254;displaytype=displaycode;part=1;abspart=1> > > > > > > the configure options > > > > > > export OBJECT_MODE=32 > > > > > > export CC='/usr/bin/gcc -maix32' > > > > > > export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib > > > -L/usr > > > > > > +/lib" > > > > > > ./Configure -desr -Doptimize="$RPM_OPT_FLAGS" \ > > > > > > -d \ > > > > > > -Dcc="$CC" -Dldflags="$LDFLAGS" \ > > > > > > -Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \ > > > > > > -Dprefix=%{_prefix} \ > > > > > > -Duselargefiles \ > > > > > > -Duseshrplib \ > > > > > > -Dusethreads \ > > > > > > -Darchname=%{_arch}-%{_os} \ > > > > > > -A define:ld='/usr/bin/gcc -maix32' \ > > > > > > -A define:ccdlflags='-brtl -bdynamic' \ > > > > > > -A define:lddlflags='-bexpall -G -L/opt/freeware/lib' > > > > > > > > > > > > make > > > > > > #make test > > > > > > ( make -k check || true ) > > > > > > > > > > > > # build 64bit mode > > > > > > export OBJECT_MODE=64 > > > > > > cd 64bit > > > > > > export CC='/usr/bin/gcc -maix64' > > > > > > export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib64 > > > -L/u > > > > > > +sr/lib64 -L/opt/freeware/lib" > > > > > > > > > > > > ./Configure -desr -Doptimize="$RPM_OPT_FLAGS" \ > > > > > > -d \ > > > > > > -Dcc="$CC" -Dldflags="$LDFLAGS" \ > > > > > > -Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \ > > > > > > -Dprefix=%{_prefix} \ > > > > > > -Duselargefiles \ > > > > > > -Duseshrplib \ > > > > > > -Dusethreads \ > > > > > > -Duse64bitall \ > > > > > > -Darchname=%{_arch}-%{_os} \ > > > > > > -A define:ld='/usr/bin/gcc -maix64' \ > > > > > > -A define:ccdlflags='-brtl -bdynamic' \ > > > > > > -A define:lddlflags='-bexpall -G -L/opt/freeware/lib64 -L/usr > > > > > > +/lib64 -L/opt/freeware/lib' > > > > > >
> > > > We support AIX, but it is certainly one of our less well-understood > > platforms. We're only getting smoke testing reports for AIX on PPC > > and each of those reports is a FAIL. > > > > Just so you know the limits of our ability to help you ... ;-) > > > > In situations like this it is often helpful to configure perl with a > > very limited set of command-line switches and seeing whether 'make' > > and 'make test' pass with those switches; then add options until you > > get significant breakage. > > > > You have submitted reports for 2 builds, AFAICT: a 32-bit build and a > > 64-bit build. For heuristic purposes I recommend you select the 64- > > bit configuration, then configure with something as simple as this: > > > > ##### > > $> sh ./Configure -des -Dusedevel > > ##### > > > > Does 'make' finish successfully with that? How about 'make test' or > > 'make test_harness'? If they PASS, add command-line switches to > > ./Configure one at a time until you get failures during either 'make' > > or 'make test'. Report back to us what works and what does not. > > > > Thank you very much.
> > i tried it with a limited set of options. > > <code> > root@aixbuildhost: /opt/freeware/src/packages/BUILD/perl-5.24.0/64bit > # cat gcc_test.sh > #!/usr/bin/ksh > > make clean > make distclean > > export OBJECT_MODE=64 > > > export CC='/usr/bin/gcc -maix64' > > export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib64 > -L/usr/lib64 -L/opt/freeware/lib -lpthreads" > > ./Configure -des -Dusedevel -Dcc="$CC" -Dldflags="$LDFLAGS" > -Dusethreads > > </code> > > after running for a while it stops with the following... > > <code> > ./miniperl -Ilib make_ext.pl lib/auto/Time/HiRes/HiRes.so > MAKE="make" LIBPERL_A=libperl.a LINKTYPE=dynamic > Makefile.PL: The "xdefine" exists, skipping the configure step. > ("../../miniperl Makefile.PL --configure" to force the configure step) > Warning: No Makefile! > make: Cannot find a rule to create target all from dependencies. > Stop. > make: Cannot find a rule to create target all from dependencies. > Stop. > Unsuccessful make(dist/Time-HiRes): code=512 at make_ext.pl line 569. > make: The error code from the last command is 2. > > > Stop. > > </code>
A couple of observations (none of which will solve your original problem): 1. From your code samples I infer that you are trying to build perl-5.24.0, presumably from a tarball -- i.e., not from a git checkout. Correct? If so, then be sure to call: ##### $> make veryclean ##### ... after each attempt at building so that you clean out files created by that attempt. This *may* eliminate these lines of output, which I suspect are not relevant to the problem: ##### Makefile.PL: The "xdefine" exists, skipping the configure step. Show quoted text
> ("../../miniperl Makefile.PL --configure" to force the configure step)
##### 2. This is a good news/bad news situation. On the one hand, you got much farther in the 'make' process than you did with your original set of ./Configure command-line switches. In particular, you were able to build the 'miniperl' executable which is used to bootstrap later stages of 'make'. That suggests that something in the original switches is posing problems early in 'make', i.e., at the compilation of opmini.c. On the other hand, 'make' failed during the compilation of the Time-HiRes library which is distributed along with the Perl 5 core. I don't yet see the reason why -- it may be something we don't know about AIX -- so here's where we'll have to hope that other readers of the list can help. Thank you very much. -- James E Keenan (jkeenan@cpan.org)
Download (untitled) / with headers
text/plain 9.8k
Am Fri, 29 Sep 2017 06:30:40 -0700, jkeenan schrieb: Show quoted text
> On Fri, 29 Sep 2017 07:26:18 GMT, Christian.Tremel@itsv.at wrote:
> > Am Thu, 28 Sep 2017 19:53:58 -0700, jkeenan schrieb:
> > > On Thu, 28 Sep 2017 12:44:33 GMT, Christian.Tremel@itsv.at wrote:
> > > > i am in the process of doing a gcc build of Perl 5.24.0, but it > > > > wont > > > > let me through. A build with IBM's native xlc compiler is going > > > > well, > > > > but in this case gcc is necessary to not break the AIX freeware > > > > tree. > > > > > > > > here ist the error in his full glory. > > > > > > > > + make > > > > > > > > echo @`sh cflags "optimize='-O2 -g '" opmini.o` -DPERL_IS_MI > > > > > > > > +NIPERL -DPERL_EXTERNAL_GLOB opmini.c > > > > > > > > @/usr/bin/gcc -maix32 -maix32 -c -DPERL_CORE -D_THREAD_SAFE > > > > -D_ALL_SOU > > > > > > > > +RCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN > > > > -DNEED_PTHRE > > > > > > > > +AD_INIT -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include > > > > -D_LA > > > > > > > > +RGE_FILES -O2 -g -Wall -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB > > > > opmini > > > > > > > > +.c > > > > > > > > In file included from op.h:636:0, > > > > > > > > from perl.h:3903, > > > > > > > > from op.c:103: > > > > > > > > reentr.h:719:14: error: field '_spent_struct' has incomplete type > > > > > > > > struct spwd _spent_struct; > > > > > > > > ^~~~~~~~~~~~~ > > > > > > > > make: The error code from the last command is 1. > > > > > > > > [download]<http://www.perlmonks.org/?node_id=1200254;displaytype=displaycode;part=1;abspart=1> > > > > > > > > the configure options > > > > > > > > export OBJECT_MODE=32 > > > > > > > > export CC='/usr/bin/gcc -maix32' > > > > > > > > export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib > > > > -L/usr > > > > > > > > +/lib" > > > > > > > > ./Configure -desr -Doptimize="$RPM_OPT_FLAGS" \ > > > > > > > > -d \ > > > > > > > > -Dcc="$CC" -Dldflags="$LDFLAGS" \ > > > > > > > > -Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \ > > > > > > > > -Dprefix=%{_prefix} \ > > > > > > > > -Duselargefiles \ > > > > > > > > -Duseshrplib \ > > > > > > > > -Dusethreads \ > > > > > > > > -Darchname=%{_arch}-%{_os} \ > > > > > > > > -A define:ld='/usr/bin/gcc -maix32' \ > > > > > > > > -A define:ccdlflags='-brtl -bdynamic' \ > > > > > > > > -A define:lddlflags='-bexpall -G -L/opt/freeware/lib' > > > > > > > > > > > > > > > > make > > > > > > > > #make test > > > > > > > > ( make -k check || true ) > > > > > > > > > > > > > > > > # build 64bit mode > > > > > > > > export OBJECT_MODE=64 > > > > > > > > cd 64bit > > > > > > > > export CC='/usr/bin/gcc -maix64' > > > > > > > > export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib64 > > > > -L/u > > > > > > > > +sr/lib64 -L/opt/freeware/lib" > > > > > > > > > > > > > > > > ./Configure -desr -Doptimize="$RPM_OPT_FLAGS" \ > > > > > > > > -d \ > > > > > > > > -Dcc="$CC" -Dldflags="$LDFLAGS" \ > > > > > > > > -Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \ > > > > > > > > -Dprefix=%{_prefix} \ > > > > > > > > -Duselargefiles \ > > > > > > > > -Duseshrplib \ > > > > > > > > -Dusethreads \ > > > > > > > > -Duse64bitall \ > > > > > > > > -Darchname=%{_arch}-%{_os} \ > > > > > > > > -A define:ld='/usr/bin/gcc -maix64' \ > > > > > > > > -A define:ccdlflags='-brtl -bdynamic' \ > > > > > > > > -A define:lddlflags='-bexpall -G -L/opt/freeware/lib64 -L/usr > > > > > > > > +/lib64 -L/opt/freeware/lib' > > > > > > > >
> > > > > > We support AIX, but it is certainly one of our less well-understood > > > platforms. We're only getting smoke testing reports for AIX on PPC > > > and each of those reports is a FAIL. > > > > > > Just so you know the limits of our ability to help you ... ;-) > > > > > > In situations like this it is often helpful to configure perl with > > > a > > > very limited set of command-line switches and seeing whether 'make' > > > and 'make test' pass with those switches; then add options until > > > you > > > get significant breakage. > > > > > > You have submitted reports for 2 builds, AFAICT: a 32-bit build and > > > a > > > 64-bit build. For heuristic purposes I recommend you select the > > > 64- > > > bit configuration, then configure with something as simple as this: > > > > > > ##### > > > $> sh ./Configure -des -Dusedevel > > > ##### > > > > > > Does 'make' finish successfully with that? How about 'make test' > > > or > > > 'make test_harness'? If they PASS, add command-line switches to > > > ./Configure one at a time until you get failures during either > > > 'make' > > > or 'make test'. Report back to us what works and what does not. > > > > > > Thank you very much.
> > > > i tried it with a limited set of options. > > > > <code> > > root@aixbuildhost: /opt/freeware/src/packages/BUILD/perl-5.24.0/64bit > > # cat gcc_test.sh > > #!/usr/bin/ksh > > > > make clean > > make distclean > > > > export OBJECT_MODE=64 > > > > > > export CC='/usr/bin/gcc -maix64' > > > > export LDFLAGS="-s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib64 > > -L/usr/lib64 -L/opt/freeware/lib -lpthreads" > > > > ./Configure -des -Dusedevel -Dcc="$CC" -Dldflags="$LDFLAGS" > > -Dusethreads > > > > </code> > > > > after running for a while it stops with the following... > > > > <code> > > ./miniperl -Ilib make_ext.pl lib/auto/Time/HiRes/HiRes.so > > MAKE="make" LIBPERL_A=libperl.a LINKTYPE=dynamic > > Makefile.PL: The "xdefine" exists, skipping the configure step. > > ("../../miniperl Makefile.PL --configure" to force the configure > > step) > > Warning: No Makefile! > > make: Cannot find a rule to create target all from dependencies. > > Stop. > > make: Cannot find a rule to create target all from dependencies. > > Stop. > > Unsuccessful make(dist/Time-HiRes): code=512 at make_ext.pl line 569. > > make: The error code from the last command is 2. > > > > > > Stop. > > > > </code>
> > A couple of observations (none of which will solve your original > problem): > > 1. From your code samples I infer that you are trying to build perl- > 5.24.0, presumably from a tarball -- i.e., not from a git checkout. > Correct? If so, then be sure to call: > > ##### > $> make veryclean > ##### > > ... after each attempt at building so that you clean out files created > by that attempt. This *may* eliminate these lines of output, which I > suspect are not relevant to the problem: > > ##### > Makefile.PL: The "xdefine" exists, skipping the configure step.
> > ("../../miniperl Makefile.PL --configure" to force the configure > > step)
> ##### > > 2. This is a good news/bad news situation. > > On the one hand, you got much farther in the 'make' process than you > did with your original set of ./Configure command-line switches. In > particular, you were able to build the 'miniperl' executable which is > used to bootstrap later stages of 'make'. That suggests that > something in the original switches is posing problems early in 'make', > i.e., at the compilation of opmini.c. > > On the other hand, 'make' failed during the compilation of the Time- > HiRes library which is distributed along with the Perl 5 core. I > don't yet see the reason why -- it may be something we don't know > about AIX -- so here's where we'll have to hope that other readers of > the list can help. > > Thank you very much.
after a few runs, it looks like i have reached a dead end. the former errors are gone but now the "bootstrapped" perl binary crashes. <code> Updating 'mktables.lst' ./miniperl -Ilib make_ext.pl lib/auto/Unicode/Normalize/Normalize.so MAKE="make" LIBPERL_A=libperl.a LINKTYPE=dynamic Making header files for XS... Generating a Unix-style Makefile Writing Makefile for Unicode::Normalize "../../miniperl" "-I../../lib" -MExtUtils::Mksymlists -e "Mksymlists('NAME'=>\"Unicode::Normalize\", 'DLBASE' => 'Normalize', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" "../../miniperl" "-I../../lib" "../../lib/ExtUtils/xsubpp" -typemap '/usr/local/src/perl-5.26.1/dist/Unicode-Normalize/../../lib/ExtUtils/typemap' Normalize.xs > Normalize.xsc mv Normalize.xsc Normalize.c chmod 644 "Normalize.bs" Running Mkbootstrap for Normalize () /usr/local/src/perl-5.26.1/dist/Unicode-Normalize/../../miniperl "-I../../lib" -MExtUtils::Command::MM -e 'cp_nonempty' -- Normalize.bs ../../lib/auto/Unicode/Normalize/Normalize.bs 644 /usr/bin/gcc -maix64 -maix64 -c -D_THREAD_SAFE -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -maix64 -DUSE_64_BIT_ALL -D_FORTIFY_SOURCE=2 -Wall -Werror=declaration-after-statement -Wextra -Wc++-compat -Wwrite-strings -O -DVERSION=\"1.25\" -DXS_VERSION=\"1.25\" "-I../.." Normalize.c rm -f ../../lib/auto/Unicode/Normalize/Normalize.so /usr/bin/gcc -maix64 -maix64 -Wl,-b64 -Wl,-bhalt:4 -Wl,-G -Wl,-bI:../../perl.exp -Wl,-bE:Normalize.exp -Wl,-bnoentry -lpthreads -lc -lm -L/opt/freeware/lib64 -L/usr/lib64 -L/opt/freeware/lib -L/usr/local/lib Normalize.o -o ../../lib/auto/Unicode/Normalize/Normalize.so chmod 755 ../../lib/auto/Unicode/Normalize/Normalize.so ./perl -Ilib -I. -f pod/buildtoc -q /bin/sh: 21430488 Illegal instruction make: The error code from the last command is 132. Stop. </code> root@aixbuildhost: /usr/local/src/perl-5.26.1 # ./perl -Ilib -I. -f pod/buildtoc -q Illegal instruction root@aixbuildhost: /usr/local/src/perl-5.26.1 # ldd ./perl ./perl needs: /usr/lib/libc.a(shr_64.o) /usr/lib/libpthreads.a(shr_xpg5_64.o) /usr/lib/libnsl.a(shr_64.o) /usr/lib/libcrypt.a(shr_64.o) /usr/lib/libbind.a(shr_64.o) /usr/lib/libdl.a(shr_64.o) /unix /usr/lib/libthread.a(shr_64.o) /usr/lib/libtli.a(shr_64.o) /usr/lib/libC.a(shr3_64.o) /usr/lib/libC.a(shr2_64.o) /usr/lib/libc.a(pse_64.o) /usr/lib/libC.a(shrcore_64.o) /usr/lib/libC.a(ansicore_64.o) root@aixbuildhost: /usr/local/src/perl-5.26.1 # file perl perl: 64-bit XCOFF executable or object module
Download (untitled) / with headers
text/plain 18.6k

Message body is not shown because it is too large.



This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org