Skip Menu |

This queue is for tickets about the Proc-ProcessTable CPAN distribution.

Report information
The Basics
Id: 116810
Status: resolved
Priority: 0/
Queue: Proc-ProcessTable

People
Owner: cpan [...] bargsten.org
Requestors: narasimhiah [...] hpe.com
Cc: SVW [...] cpan.org
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Proc::ProcessTable perl module not compiling on AIX platform
Date: Tue, 9 Aug 2016 11:00:28 +0000
To: "bug-Proc-ProcessTable [...] rt.cpan.org" <bug-Proc-ProcessTable [...] rt.cpan.org>
From: "Narasimhiah, Prashanth (Wipro)" <narasimhiah [...] hpe.com>
Hello Team, Proc::ProcessTable 0.53 is not compiling on AIX 5.3 64 bit platform. I am getting following error: cp ProcessTable.pm ../../lib/Proc/ProcessTable.pm cp Killall.pm ../../lib/Proc/Killall.pm cp example.pl ../../lib/Proc/example.pl cp Killfam.pm ../../lib/Proc/Killfam.pm gmake[3]: Entering directory `/home/bldadm/BLR.OvPerlA.05.16.r/aix61/hpsw-opcsi/external/Perl/5.16.0/AIX5.3_64/perl-5.16.0/cpan/Proc-ProcessTable/Process' cp Process.pm ../../../lib/Proc/ProcessTable/Process.pm AutoSplitting ../../../lib/Proc/ProcessTable/Process.pm (../../../lib/auto/Proc/ProcessTable/Process) Manifying ../blib/man3/Proc::ProcessTable::Process.3 ../../perl "-I../../lib" "-I../../lib" -e 'use ExtUtils::Mksymlists; \ Mksymlists("NAME" => "Proc::ProcessTable", "DL_FUNCS" => { }, "FUNCLIST" => [], "DL_VARS" => []);' ../../perl "-I../../lib" "-I../../lib" ../../lib/ExtUtils/xsubpp -typemap ../../lib/ExtUtils/typemap ProcessTable.xs > ProcessTable.xsc && mv ProcessTable.xsc ProcessTable.c cc_r -q64 -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES -O -DVERSION=\"0.53\" -DXS_VERSION=\"0.53\" "-I../.." ProcessTable.c cc_r -q64 -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES -O -DVERSION=\"0.53\" -DXS_VERSION=\"0.53\" "-I../.." OS.c "OS.c", line 60.24: 1506-194 (S) Incomplete type is not allowed. "OS.c", line 61.10: 1506-007 (S) "struct userinfo" is undefined. "OS.c", line 72.41: 1506-043 (S) The operand of the sizeof operator is not valid. "OS.c", line 113.34: 1506-043 (S) The operand of the sizeof operator is not valid. "OS.c", line 114.34: 1506-043 (S) The operand of the sizeof operator is not valid. "OS.c", line 162.32: 1506-043 (S) The operand of the sizeof operator is not valid. gmake[2]: *** [OS.o] Error 1 Please let me know how to fix this. Regards, Prashanth
I saw the thread on perlmonks: http://www.perlmonks.org/?node_id=1152063 Is the issue already solved or is more investigation needed? Am Di 09. Aug 2016, 16:46:59, narasimhiah@hpe.com schrieb: Show quoted text
> Hello Team, > > Proc::ProcessTable 0.53 is not compiling on AIX 5.3 64 bit platform. I > am getting following error: > > > cp ProcessTable.pm ../../lib/Proc/ProcessTable.pm > > cp Killall.pm ../../lib/Proc/Killall.pm > > cp example.pl ../../lib/Proc/example.pl > > cp Killfam.pm ../../lib/Proc/Killfam.pm > > gmake[3]: Entering directory > `/home/bldadm/BLR.OvPerlA.05.16.r/aix61/hpsw- > opcsi/external/Perl/5.16.0/AIX5.3_64/perl-5.16.0/cpan/Proc- > ProcessTable/Process' > > cp Process.pm ../../../lib/Proc/ProcessTable/Process.pm > > AutoSplitting ../../../lib/Proc/ProcessTable/Process.pm > (../../../lib/auto/Proc/ProcessTable/Process) > > Manifying ../blib/man3/Proc::ProcessTable::Process.3 > > ../../perl "-I../../lib" "-I../../lib" -e 'use ExtUtils::Mksymlists; \ > Mksymlists("NAME" => "Proc::ProcessTable", "DL_FUNCS" => { }, > "FUNCLIST" => [], "DL_VARS" => []);' > ../../perl "-I../../lib" "-I../../lib" ../../lib/ExtUtils/xsubpp > -typemap ../../lib/ExtUtils/typemap ProcessTable.xs > > ProcessTable.xsc && mv ProcessTable.xsc ProcessTable.c > cc_r -q64 -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE > -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 > -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 > -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES > -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 > -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 > -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 > -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES > -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 > -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 > -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 > -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES -O > -DVERSION=\"0.53\" -DXS_VERSION=\"0.53\" "-I../.." ProcessTable.c > cc_r -q64 -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE > -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 > -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 > -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES > -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 > -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 > -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 > -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES > -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 > -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 > -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 > -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES -O > -DVERSION=\"0.53\" -DXS_VERSION=\"0.53\" "-I../.." OS.c > "OS.c", line 60.24: 1506-194 (S) Incomplete type is not allowed. > "OS.c", line 61.10: 1506-007 (S) "struct userinfo" is undefined. > "OS.c", line 72.41: 1506-043 (S) The operand of the sizeof operator is > not valid. > "OS.c", line 113.34: 1506-043 (S) The operand of the sizeof operator > is not valid. > "OS.c", line 114.34: 1506-043 (S) The operand of the sizeof operator > is not valid. > "OS.c", line 162.32: 1506-043 (S) The operand of the sizeof operator > is not valid. > gmake[2]: *** [OS.o] Error 1 > > > > Please let me know how to fix this. > > Regards, > Prashanth
It seems that the struct userinfo and the function getuser are not available in the 64-bit version: Excerpt from https://communities.vmware.com/thread/348117?start=0&tstart=0 Show quoted text
> I tried to find a header in /usr/include/ which declares getuser(), but > there is no header for it. > > > bash-2.05a$ nm -X64 /usr/lib/libc.a | grep '\.getuser' > .getuserattr T 1060216 > .getuserpw T 1133080 > .getusershell T 1581804 > bash-2.05a$ nm -X32 /usr/lib/libc.a | grep '\.getuser' > .getuser T 1549176 > .getuserattr T 977136 > .getuserpw T 1044796 > .getusershell T 1444764 > > Unbelievable. getuser() only exists as 32bit symbol. > > According to: > http://search.cpan.org/src/DURIST/Proc-ProcessTable-0.41/README.aix > > o Documentation under AIX is rather cryptic and incomplete. I managed to > read the process table using undocumented calls : getproc, getuser, > getargs. > > Looks like they are undocumented for a reason :) >
Indeed. I just made the change below which removes the getuser() reference in 64-bit mode. We'll have to see if there's another way to get the fd count for a process.
Subject: RE: [rt.cpan.org #116810] Proc::ProcessTable perl module not compiling on AIX platform
Date: Sun, 2 Oct 2016 03:19:06 +0000
To: "bug-Proc-ProcessTable [...] rt.cpan.org" <bug-Proc-ProcessTable [...] rt.cpan.org>
From: "Narasimhiah, Prashanth (Wipro)" <narasimhiah [...] hpe.com>
Hi, This issue is not resolved. I have tried all the steps mentioned. Regards, Prashanth. Show quoted text
-----Original Message----- From: jwbargsten via RT [mailto:bug-Proc-ProcessTable@rt.cpan.org] Sent: Sunday, October 2, 2016 5:00 AM To: Narasimhiah, Prashanth (Wipro) <narasimhiah@hpe.com> Subject: [rt.cpan.org #116810] Proc::ProcessTable perl module not compiling on AIX platform <URL: https://rt.cpan.org/Ticket/Display.html?id=116810 > I saw the thread on perlmonks: http://www.perlmonks.org/?node_id=1152063 Is the issue already solved or is more investigation needed? Am Di 09. Aug 2016, 16:46:59, narasimhiah@hpe.com schrieb:
> Hello Team, > > Proc::ProcessTable 0.53 is not compiling on AIX 5.3 64 bit platform. I > am getting following error: > > > cp ProcessTable.pm ../../lib/Proc/ProcessTable.pm > > cp Killall.pm ../../lib/Proc/Killall.pm > > cp example.pl ../../lib/Proc/example.pl > > cp Killfam.pm ../../lib/Proc/Killfam.pm > > gmake[3]: Entering directory > `/home/bldadm/BLR.OvPerlA.05.16.r/aix61/hpsw- > opcsi/external/Perl/5.16.0/AIX5.3_64/perl-5.16.0/cpan/Proc- > ProcessTable/Process' > > cp Process.pm ../../../lib/Proc/ProcessTable/Process.pm > > AutoSplitting ../../../lib/Proc/ProcessTable/Process.pm > (../../../lib/auto/Proc/ProcessTable/Process) > > Manifying ../blib/man3/Proc::ProcessTable::Process.3 > > ../../perl "-I../../lib" "-I../../lib" -e 'use ExtUtils::Mksymlists; \ > Mksymlists("NAME" => "Proc::ProcessTable", "DL_FUNCS" => { }, > "FUNCLIST" => [], "DL_VARS" => []);' > ../../perl "-I../../lib" "-I../../lib" ../../lib/ExtUtils/xsubpp > -typemap ../../lib/ExtUtils/typemap ProcessTable.xs > > ProcessTable.xsc && mv ProcessTable.xsc ProcessTable.c > cc_r -q64 -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE > -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 > -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 > -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES > -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 > -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 > -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 > -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES > -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 > -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 > -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 > -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES -O > -DVERSION=\"0.53\" -DXS_VERSION=\"0.53\" "-I../.." ProcessTable.c > cc_r -q64 -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE > -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 > -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 > -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES > -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 > -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 > -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 > -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES > -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 > -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q64 > -DUSE_64_BIT_ALL -q64 -D_AIX5_3_64_ -D_AIX5_3_ -DAIX64 -DAIX=5 > -UUSE_CLEARCASE -DBUILDBITS=64 -UCBR_OVII_REGISTERFPFILES -O > -DVERSION=\"0.53\" -DXS_VERSION=\"0.53\" "-I../.." OS.c > "OS.c", line 60.24: 1506-194 (S) Incomplete type is not allowed. > "OS.c", line 61.10: 1506-007 (S) "struct userinfo" is undefined. > "OS.c", line 72.41: 1506-043 (S) The operand of the sizeof operator is > not valid. > "OS.c", line 113.34: 1506-043 (S) The operand of the sizeof operator > is not valid. > "OS.c", line 114.34: 1506-043 (S) The operand of the sizeof operator > is not valid. > "OS.c", line 162.32: 1506-043 (S) The operand of the sizeof operator > is not valid. > gmake[2]: *** [OS.o] Error 1 > > > > Please let me know how to fix this. > > Regards, > Prashanth
Just today we have tried to upgrade Proc::ProcessTable from 0.46 to 0.56 on an AIX 7.1 system. Our perl 5.14.2 was build at the time we were working with AIX 6.1 (osvers='6.1.0.0'). We have similar 64bit compilation issues because "struct userinfo" is not available as a 64bit flavour. We have tried some hours to fix this without success. Then we have detected that the hints file that EUMM has taken into consideration was seemingly wrong. We have downloaded hints/aix_6.pl (#114455) from github and we were able to compile and test Proc::ProcessTable successfully. I am unable to value the result. At the moment I have only one question: Why (according to #114455) are the aix_6.pl and aix_7.pl hints files still not part of the Proc::ProcessTable distribution. Thanks.
Am Mi 12. Jun 2019, 12:56:10, SVW schrieb: Show quoted text
> Just today we have tried to upgrade Proc::ProcessTable from 0.46 to > 0.56 on an AIX 7.1 system. > Our perl 5.14.2 was build at the time we were working with AIX 6.1 > (osvers='6.1.0.0'). We have similar 64bit compilation issues because > "struct userinfo" is not available as a 64bit flavour. We have tried > some hours to fix this without success. Then we have detected that the > hints file that EUMM has taken into consideration was seemingly wrong. > We have downloaded hints/aix_6.pl (#114455) from github and we were > able to compile and test Proc::ProcessTable successfully. > > I am unable to value the result. At the moment I have only one > question: Why (according to #114455) are the aix_6.pl and aix_7.pl > hints files still not part of the Proc::ProcessTable distribution. > > Thanks.
Good one. Probably I missed #114455 when checking the bug reports. aix_6 & 7 were not in the MANIFEST and as consequence not part of the dist. Annoyed by this fact and by the archaic way of building the dist, I rewrote the Makefile.PL and moved some files to the right places. For now I did a DEV release to see if it works. Once I see that it's stable, I'll bump the version to 0.57 with aix 6 & 7 included.