Code Comments

Programming Forum and web based access to our favorite programming groups.
For Programmers: Free Programming Magazines | New: Database administration forum
Registration is free! Edit your profileCalendarFind other membersFrequently Asked QuestionsSearch -> 
Post New Thread











Thread
Author

PERL 64bit Question
I've compiled PERL 5.8.2 on AIX 5.1 64bit, I think.  Can someone tell
me for sure from this output.  The questions I have are, how is it
possible, if this is in fact compiled as 64bit, that I can execute it
on a 32bit AIX 5.1 system?  Other programs I've used would fail with
an error.  How does one tell exactly that is compiled for 64bit from
this output.

./perl -Ilib -V

Summary of my perl5 (revision 5.0 version 8 subversion 2)
configuration:
Platform:
osname=aix, osvers=5.1.0.0, archname=aix-64int-ld
uname='aix s11f30n01 1 5 0029449a4c00 '
config_args='-Duse64bitint -Duselongdouble
-Aprepend:libswanted=C128 '
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=undef uselongdouble=define
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc -qnolm', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE
-D_POSIX_SOURCE -qmaxmem=16384 -qnoansialias -qlongdouble
-DUSE_NATIVE_DLOPEN -q32 -D_LARGE_FILES -qlonglong',
optimize='-O',
cppflags=''
ccversion='6.0.0.0', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=87654321
d_longlong=define, longlongsize=8, d_longdbl=define,
longdblsize=16
ivtype='long long', ivsize=8, nvtype='long double', nvsize=16,
Off_t='off_t', lssize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='ld', ldflags =' -brtl -L/usr/local/lib -b32'
libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib
libs=-lC128 -lc128 -lbind -lnsl -ldbm -ldl -lld -lm -lcrypt -lc
-lbsd
perllibs=-lC128 -lc128 -lbind -lnsl -ldl -lld -lm -lcrypt -lc
-lbsd
libc=/lib/libc.a, so=a, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags='
-bE:/gpfs/database/dba/utilities/perl582/lib/5.8.2
/aix-64int-ld/CORE/perl.exp'
cccdlflags=' ', lddlflags=' -bhalt:4 -bM:SRE
-bI:$(PERL_INC)/perl.exp
-bE:$(BASEEXT).exp -bnoentry -lc128 -lc  -L/usr/local/lib'

Characteristics of this binary (from libperl):
Compile-time options: USE_64_BIT_INT USE_LONG_DOUBLE USE_LARGE_FILES
Built under aix
Compiled at Oct 28 2004 15:32:11
@INC:
lib
/gpfs/database/dba/utilities/perl582/lib/5.8.2/aix-64int-ld
/gpfs/database/dba/utilities/perl582/lib/5.8.2

/gpfs/database/dba/utilities/perl582/lib/site_perl/5.8.2/aix-64int-ld
/gpfs/database/dba/utilities/perl582/lib/site_perl/5.8.2
/gpfs/database/dba/utilities/perl582/lib/site_perl

Report this thread to moderator Post Follow-up to this message
Old Post
Sparky
10-29-04 08:57 AM


Re: PERL 64bit Question
Also sprach Sparky:

> I've compiled PERL 5.8.2 on AIX 5.1 64bit, I think.  Can someone tell
> me for sure from this output.  The questions I have are, how is it
> possible, if this is in fact compiled as 64bit, that I can execute it
> on a 32bit AIX 5.1 system?  Other programs I've used would fail with
> an error.  How does one tell exactly that is compiled for 64bit from
> this output.

You have to look at two configure variables: use64bitint and
use64bitall. From the INSTALL file:

=head3 64 bit support.

If your platform does not have run natively at 64 bits, but can
simulate them with compiler flags and/or C<long long> or C<int64_t>,
you can build a perl that uses 64 bits.

There are actually two modes of 64-bitness: the first one is achieved
using Configure -Duse64bitint and the second one using Configure
-Duse64bitall.  The difference is that the first one is minimal and
the second one maximal.  The first works in more places than the second.

The C<use64bitint> option does only as much as is required to get
64-bit integers into Perl (this may mean, for example, using "long
longs") while your memory may still be limited to 2 gigabytes (because
your pointers could still be 32-bit).  Note that the name C<64bitint>
does not imply that your C compiler will be using 64-bit C<int>s (it
might, but it doesn't have to).  The C<use64bitint> simply means that
you will be able to have 64 bit-wide scalar values.

The C<use64bitall> option goes all the way by attempting to switch
integers (if it can), longs (and pointers) to being 64-bit.  This may
create an even more binary incompatible Perl than -Duse64bitint: the
resulting executable may not run at all in a 32-bit box, or you may
have to reboot/reconfigure/rebuild your operating system to be 64-bit
aware.

> ./perl -Ilib -V
>
> Summary of my perl5 (revision 5.0 version 8 subversion 2)
> configuration:
>   Platform:
>     osname=aix, osvers=5.1.0.0, archname=aix-64int-ld
>     uname='aix s11f30n01 1 5 0029449a4c00 '
>     config_args='-Duse64bitint -Duselongdouble
> -Aprepend:libswanted=C128 '
>     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=undef uselongdouble=define

And here it becomes evident that you are using the 'minimal' 64bit
version.

>     usemymalloc=n, bincompat5005=undef
>   Compiler:
>     cc='cc -qnolm', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE
> -D_POSIX_SOURCE -qmaxmem=16384 -qnoansialias -qlongdouble
> -DUSE_NATIVE_DLOPEN -q32 -D_LARGE_FILES -qlonglong',
>     optimize='-O',
>     cppflags=''
>     ccversion='6.0.0.0', gccversion='', gccosandvers=''
>     intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=87654321

This line tells that you are on a 32bit machine. 'use64bitint' will work
fine here, whereas 'use64bitall' most likely wont.

Tassilo
--
$_=q#",}])!JAPH!qq(tsuJ[{@"tnirp}3..0}_$;//::niam/s~=)]3[))_$-3(rellac(=_$({
 pam{rekcahbus})(rekcah{lrePbus})(lreP{re
htonabus})!JAPH!qq(rehtona{tsuJbus#;
$_=reverse,s+(?<=sub).+q#q!'"qq.\t$&."'!#+sexisexiixesixeseg;y~\n~~dddd;eval

Report this thread to moderator Post Follow-up to this message
Old Post
Tassilo v. Parseval
10-29-04 08:57 AM


Sponsored Links




Last Thread Next Thread Next
Search this forum -> 
Post New Thread

PERL Miscellaneous archive

Show a Printable Version Send to friend Email This Page to Someone! subscribe to this thread Receive updates to this thread
Computer Consultants
Programming Jobs
Visual Basic Controls
SQL Server Programming
Webservices
Java Security
Visual Studio
C# Programming
Visual J++
Software engineering
Open source Software
Perl Programming
PHP Programming
ASP Programming
ASP .NET Programming
Visual Basic Programming
Windows Scripting Host
Java Programming
Java Help
Java Beans
VBScript
Cobol
MAC Applications
Unix Programming
Forum Jump:
All times are GMT. The time now is 05:11 AM.

 
Free MCSE Braindumps | Real Estate Topics

Programming forum archive

Copyrights CodeComments.com 2004 - 2006

Powered by vBulletin Copyright 2000-2006 Jelsoft Enterprises Limited.