Skip Menu |

This queue is for tickets about the Solaris-Procfs CPAN distribution.

Report information
The Basics
Id: 22035
Status: open
Priority: 0/
Queue: Solaris-Procfs

People
Owner: Nobody in particular
Requestors: toddr [...] cpanel.net
Cc:
AdminCc:

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



Cannot compile on 64 bit perl. Any ideas? --- $>uname -a SunOS cmtmcc110 5.8 Generic_117350-13 sun4u sparc SUNW,Sun-Fire-15000 ---- (/apps/perl588_compile/Solaris-Procfs-0.26) $>make /opt/SUNWspro/bin/cc -c -Iinclude -I/usr/local/include -xarch=v9 - xarch=v9 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O - DVERSION=\"0.26\" -DXS_VERSION=\"0.26\" -KPIC "- I/apps/perl588/lib/5.8.8/sun4-solaris-64/CORE" -D_FILE_OFFSET_BITS=32 Procfs.c command line: warning: macro redefined: _FILE_OFFSET_BITS "/usr/include/sys/feature_tests.h", line 92: #error: "invalid _FILE_OFFSET_BITS value specified" cc: acomp failed for Procfs.c *** Error code 2 make: Fatal error: Command failed for target `Procfs.o' Current working directory /apps/perl588_compile/Solaris-Procfs- 0.26/Procfs *** Error code 1 make: Fatal error: Command failed for target `subdirs' ----- (/apps/perl588_compile/Solaris-Procfs-0.26) $>perl -V Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=solaris, osvers=2.8, archname=sun4-solaris-64 uname='sunos cmtmcc110 5.8 generic_117350-13 sun4u sparc sunw,sun- fire-15000 ' config_args='' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='/opt/SUNWspro/bin/cc', ccflags ='-I/usr/local/include - xarch=v9 -xarch=v9 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O', cppflags='-I/usr/local/include -xarch=v9' ccversion='Sun C 5.8 2005/10/13', gccversion='', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='/opt/SUNWspro/bin/cc', ldflags =' -L/usr/lib -L/usr/ccs/lib - L/opt/SUNWspro/prod/lib/v8plus -L/opt/SUNWspro/prod/lib -L/lib - L/usr/local/lib -xarch=v9 ' libpth=/usr/lib /usr/ccs/lib /opt/SUNWspro/prod/lib/v8plus /opt/SUNWspr o/prod/lib /lib /usr/local/lib libs=-lsocket -lnsl -ldl -lm -lc perllibs=-lsocket -lnsl -ldl -lm -lc libc=/usr/lib/sparcv9/libc.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' ' cccdlflags='-KPIC', lddlflags=' -G -xarch=v9 -L/usr/lib - L/usr/ccs/lib -L/opt/SUNWspro/prod/lib/v8plus - L/opt/SUNWspro/prod/lib -L/lib -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: PERL_MALLOC_WRAP USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES USE_PERLIO Built under solaris Compiled at Jul 31 2006 12:22:16 %ENV: PERLDB_OPTS="RemotePort=lhouatlcb9pm81.texas.chase.com:9000" @INC: /apps/perl588/lib/5.8.8/sun4-solaris-64 /apps/perl588/lib/5.8.8 /apps/perl588/site/lib/sun4-solaris-64 /apps/perl588/site/lib /apps/perl588/site/lib .
Subject: is this because I'm running 64 bit perl?
From: todd.e.rinaldo [...] jpmorgan.com
A closer review indicates you had to hard code _FILE_OFFSET_BITS to 32. Considering I'm 64 bit perl, I'm set to 64. I'm assuming this is the source of the problem? Altering your Makefile.pm to 64 from 32 Produces this output: ------ $>make /opt/SUNWspro/bin/cc -c -Iinclude -I/usr/local/include -xarch=v9 - xarch=v9 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O - DVERSION=\"0.26\" -DXS_VERSION=\"0.26\" -KPIC "- I/apps/perl588/lib/5.8.8/sun4-solaris-64/CORE" -D_FILE_OFFSET_BITS=64 Procfs.c "Procfs.xs", line 292: undefined struct/union member: sa_resv "Procfs.xs", line 292: cannot dereference non-pointer type "Procfs.xs", line 1199: warning: implicit function declaration: readdir_r cc: acomp failed for Procfs.c *** Error code 2 make: Fatal error: Command failed for target `Procfs.o' Current working directory /apps/perl588_compile/Solaris-Procfs- 0.26/Procfs *** Error code 1 make: Fatal error: Command failed for target `subdirs'
From: todd.e.rinaldo [...] jpmorgan.com
Re-compiling the same binary for 32 bit works, but this of course won't execute in perl so this is not a direction I can go.
Subject: Re: [rt.cpan.org #22035] is this because I'm running 64 bit perl?
Date: Wed, 11 Oct 2006 15:50:30 -0700
To: "Todd E. Rinaldo via RT" <bug-Solaris-Procfs [...] rt.cpan.org>
From: John Nolan <jpnolan [...] sonic.net>
Hi Rinaldo, If I remember correctly, the /proc filesystem itself is not compatible with large file offsets. Check the manpage for proc on solaris. This is why I hardcoded _FILE_OFFSET_BITS. Solaris may have changed since the last time I worked on this. The actual error you are running into does not look specific to the 64-bit platform, it looks like some other problem. Maybe the header files have changed on some recent flavor of solaris. I'm just guessing. Can you give me details about your Solaris version and the hardware platform you are using? Thanks! On Wed, Oct 11, 2006 at 01:21:58PM -0400, Todd E. Rinaldo via RT wrote: Show quoted text
> > Queue: Solaris-Procfs > Ticket <URL: http://rt.cpan.org/Ticket/Display.html?id=22035 > > > A closer review indicates you had to hard code _FILE_OFFSET_BITS to > 32. Considering I'm 64 bit perl, I'm set to 64. I'm assuming this is > the source of the problem? Altering your Makefile.pm to 64 from 32 > Produces this output: > > ------ > > $>make > /opt/SUNWspro/bin/cc -c -Iinclude -I/usr/local/include -xarch=v9 - > xarch=v9 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O - > DVERSION=\"0.26\" -DXS_VERSION=\"0.26\" -KPIC "- > I/apps/perl588/lib/5.8.8/sun4-solaris-64/CORE" -D_FILE_OFFSET_BITS=64 > Procfs.c > "Procfs.xs", line 292: undefined struct/union member: sa_resv > "Procfs.xs", line 292: cannot dereference non-pointer type > "Procfs.xs", line 1199: warning: implicit function declaration: > readdir_r > cc: acomp failed for Procfs.c > *** Error code 2 > make: Fatal error: Command failed for target `Procfs.o' > Current working directory /apps/perl588_compile/Solaris-Procfs- > 0.26/Procfs > *** Error code 1 > make: Fatal error: Command failed for target `subdirs' > > >
-- #------------------------- # John Nolan # jpnolan sonic net #-------------------------
Subject: Re: [rt.cpan.org #22035] is this because I'm running 64 bit perl?
From: todd.e.rinaldo [...] jpmorgan.com
The more I get into it, the more I regret going 64 bit perl for Solairs 8. It's just not supported, especially at my company. Everything I can tell is this: 1. I compiled a 64 bit version of perl with sun compilers. 2. All modules have to also be 64 bit. 3. The code seems to be incapable of being compiled with the Sun 64 bit compilers because they have #defs that intentionally disallow the procfs code from being compiled 64 bit. 4. FILE_OFFSET_BITS no matter how it's set doesn't fix the problem. I am happy to contribute in any way you like. What commands would you like me to run to get you the info you need?