Skip Menu |

This queue is for tickets about the BerkeleyDB CPAN distribution.

Report information
The Basics
Id: 27736
Status: open
Priority: 0/
Queue: BerkeleyDB

People
Owner: Nobody in particular
Requestors: gplee [...] yahoo-inc.com
Cc:
AdminCc:

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



Subject: BerkeleyDB-0.31 fails on x86-64 bit
Date: Mon, 25 Jun 2007 11:18:06 -0700
To: bug-BerkeleyDB [...] rt.cpan.org
From: Gloria Lee <gplee [...] yahoo-inc.com>
Trying to make BerkeleyDB-0.31 module on a Redhat 4 x86-64 bit machine and complained CPU does not support x86-64. [root@ ~]# uname -a Linux 2.6.9-34.ELsmp #1 SMP Fri Feb 24 16:56:28 EST 2006 x86_64 x86_64 x86_64 GNU/Linux [root@]# perl -v This is perl, v5.8.6 built for i686-linux-thread-multi [root@BerkeleyDB-0.30]# perl Makefile.PL Parsing config.in... Looks Good. Checking if your kit is complete... Looks good Note (probably harmless): No library found for -ldb Writing Makefile for BerkeleyDB [root@]# make cp BerkeleyDB.pm blib/lib/BerkeleyDB.pm AutoSplitting blib/lib/BerkeleyDB.pm (blib/lib/auto/BerkeleyDB) cp BerkeleyDB/Hash.pm blib/lib/BerkeleyDB/Hash.pm cp BerkeleyDB.pod blib/lib/BerkeleyDB.pod cp BerkeleyDB/Btree.pm blib/lib/BerkeleyDB/Btree.pm /usr/local/bin/perl /usr/local/lib/perl5/5.8.6/ExtUtils/xsubpp - noprototypes -typemap /usr/local/lib/perl5/5.8.6/ExtUtils/typemap - typemap typemap BerkeleyDB.xs > BerkeleyDB.xsc && mv BerkeleyDB.xsc BerkeleyDB.c gcc -c -I/usr/local/BerkeleyDB/include -D_REENTRANT -D_GNU_SOURCE - DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -I/usr/local/include - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -march=pentium3 - fprefetch-loop-arrays -funroll-loops -pipe -DVERSION=\"0.30\" - DXS_VERSION=\"0.30\" -fpic "-I/usr/local/lib/perl5/5.8.6/i686-linux- thread-multi/CORE" BerkeleyDB.c BerkeleyDB.c:1: error: CPU you selected does not support x86-64 instruction set BerkeleyDB.c:1: error: CPU you selected does not support x86-64 instruction set make: *** [BerkeleyDB.o] Error 1
Hi Gloria, When you build a module like mine, that uses a C compiler, perl will create a makefile that uses the same command line flags that were used to build perl itself. In this case it looks like the Perl binary you are using isn't completely compatible with the system you are actually running on. I'm guessing the perl binary was built on a 32-bit system. What is the output from running this? perl -V Paul
Subject: Re: [rt.cpan.org #27736] BerkeleyDB-0.31 fails on x86-64 bit
Date: Thu, 5 Jul 2007 09:54:04 -0700
To: bug-BerkeleyDB [...] rt.cpan.org
From: Gloria Lee <gplee [...] yahoo-inc.com>
gplee@localhost 1501> perl -V Summary of my perl5 (revision 5 version 8 subversion 6) configuration: Platform: osname=linux, osvers=2.6.9-5.elsmp, archname=i686-linux-thread- multi uname='linux deadrat4.inktomisearch.com 2.6.9-5.elsmp #1 smp wed jan 5 19:30:39 est 2005 i686 i686 i386 gnulinux ' config_args='-Duselargefiles -de -Dperladmin=prod-eng@yahoo- inc.com -Dusethreads=yes -A define:optimize=-O2 -march=pentium3 - fprefetch-loop-arrays -funroll-loops -pipe -A define:cc=gcc -A define:ld=gcc' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE - DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -I/usr/local/include - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2 -march=pentium3 -fprefetch-loop-arrays -funroll- loops -pipe', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno- strict-aliasing -pipe -I/usr/local/include' ccversion='', gccversion='3.4.3 20041212 (Red Hat 3.4.3-9.EL4)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='gcc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc libc=/lib/libc-2.3.4.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='2.3.4' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT Built under linux Compiled at Jul 29 2005 12:06:40 @INC: /usr/local/lib/perl5/5.8.6/i686-linux-thread-multi /usr/local/lib/perl5/5.8.6 /usr/local/lib/perl5/site_perl/5.8.6/i686-linux-thread-multi /usr/local/lib/perl5/site_perl/5.8.6 /usr/local/lib/perl5/site_perl On Jul 5, 2007, at 1:19 AM, Paul Marquess via RT wrote: Show quoted text
> > <URL: http://rt.cpan.org/Ticket/Display.html?id=27736 > > > Hi Gloria, > > When you build a module like mine, that uses a C compiler, perl will > create a makefile that uses the same command line flags that were used > to build perl itself. In this case it looks like the Perl binary you > are using isn't completely compatible with the system you are actually > running on. I'm guessing the perl binary was built on a 32-bit system. > > What is the output from running this? > > perl -V > > Paul >
From: PMQS [...] cpan.org
OK, so now we know that you perl binary wasn't built on your box. This the the uname info you provided ~]# uname -a Linux 2.6.9-34.ELsmp #1 SMP Fri Feb 24 16:56:28 EST 2006 x86_64 x86_64 x86_64 GNU/Linux and this is what the perl binary says uname='linux deadrat4.inktomisearch.com 2.6.9-5.elsmp #1 smp wed jan 5 19:30:39 est 2005 i686 i686 i386 gnulinux ' So you have a few options for resolving this issue 1. Get a perl binary that was built specifically for your 64-bit setup. Does your Redhat distribution not have a perl binary that was built for it? 2. Build a perl binary yourself. If you build perl it will automatically detect you 64-bit setup, so then when you build my BerkeleyDB module, it will use the correct command line options for gcc. Paul