RHEL Linux x86_64
Had 64 bit perl installed
Installed the 32 bit libraries since ARS couldnt see the 64 bit shared
object i built.
Recompiled and linked using 32 bit libraries.
So i now have a 32 bit shared object.
ARS env variables
LD_LIBRARY_PATH=:/u01/app/arsystem/bin:
/usr/lib/oracle/10.2.0.3/client/lib:
/usr/java/jdk1.5.0_13/jre/lib/i386/native_threads:
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE
[EMAIL PROTECTED] bin]$ file arfperl.so
arfperl.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV),
not stripped
ldd arfperl.so
linux-gate.so.1 => (0xe000)
libperl.so =>
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/libperl.so
(0xf7ec4000)
libnsl.so.1 => /lib/libnsl.so.1 (0xf7e88000)
libpthread.so.0 => /lib/tls/i686/libpthread.so.0 (0xf7e77000)
libc.so.6 => /lib/tls/i686/libc.so.6 (0xf7d63000)
libresolv.so.2 => /lib/libresolv.so.2 (0xf7d51000)
libdl.so.2 => /lib/libdl.so.2 (0xf7d4c000)
libm.so.6 => /lib/tls/i686/libm.so.6 (0xf7d29000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0xf7cfc000)
libutil.so.1 => /lib/libutil.so.1 (0xf7cf8000)
/lib/ld-linux.so.2 (0x56555000)
I thought the above looked good since it all points to the 32 bit
libraries.
Makefile looks like:-
-START MAKE
PLUGIN = arfperl.so
OBJECTS = arfperl.o
PERL_ARCH = linux-i386
PERL_DIR = /usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/
ARS_DIR = /u01/app/arsystem/api/include
RM = rm -f
#CFLAGS=-m32 CPPFLAGS=-m32 CCASFLAGS=-m32 LDFLAGS="-L/usr/lib -L/lib" \
# Compiler flags.
CC = gcc
CFLAGS = -m32 -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g
-fPIC -fno-strict-aliasing -mno-align-double -shared
#CFLAGS = -g -fPIC -mno-align-double -shared -D_REENTRANT
-D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe
LDFLAGS = --verbose -t -shared
#
#CPPFLAGS = -I../../../include -I$(PERL_DIR) -I$(ARS_DIR)
CPPFLAGS = -m32 -I/usr/local/include -I/usr/include/gdbm
-I../../../include -I$(PERL_DIR) -I
$(ARS_DIR) -R$(PERL_DIR)
#LDLIBS = -lperl -lnsl -lw -lpthread
LDLIBS = -lperl -lnsl -lpthread
# Standard targets.
all: $(PLUGIN)
$(PLUGIN): $(OBJECTS)
$(CC) $(CPPFLAGS) -o $(PLUGIN) $(OBJECTS) $(LDFLAGS) $(LDLIBS)
clean:
$(RM) $(PLUGIN) $(OBJECTS) core
-END MAKE
-START PERL -V -
Summary of my perl5 (revision 5 version 8 subversion 5) configuration:
Platform:
osname=linux, osvers=2.6.9-22.18.bz155725.elsmp,
archname=x86_64-linux-thread-multi
uname='linux hs20-bc1-3.build.redhat.com 2.6.9-22.18.bz155725.elsmp
#1 smp thu nov 17 15:34:08 est 2005 x86_64 x86_64 x86_64 gnulinux '
config_args='-des -Doptimize=-O2 -g -pipe -m64 -Dversion=5.8.5
-Dmyhostname=localhost [EMAIL PROTECTED] -Dcc=gcc -Dcf_by=Red
Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Dlibpth=/usr/local/lib64
/lib64 /usr/lib64 -Dprivlib=/usr/lib/perl5/5.8.5
-Dsitelib=/usr/lib/perl5/site_perl/5.8.5
-Dvendorlib=/usr/lib/perl5/vendor_perl/5.8.5
-Darchlib=/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi
-Dsitearch=/usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi
-Dvendorarch=/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-mult
i -Darchname=x86_64-linux -Dvendorprefix=/usr -Dsiteprefix=/usr
-Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid
-Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog
-Dman3ext=3pm -Duseperlio -Dinstallusrbinperl -Ubincompat5005
-Uversiononly -Dpager=/usr/bin/less -isr -Dinc_version_list=5.8.4 5.8.3
5.8.2 5.8.1 5.8.0'
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=define use64bitall=define uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING
-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
optimize='-O2 -g -pipe -m64',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING
-fno-strict-aliasing -pipe -I/usr/local/include -I/usr/include/gdbm'
ccversion='', gccversion='3.4.6 20060404 (Red Hat 3.4.6-2)',
gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
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='gcc', ldflags =''
libpth=/usr/local/lib64 /lib64 /usr/lib64
libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread
-lc
perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
libc=/lib/libc-2.3.3.so, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version='2.3.4'
Dynamic Linking:
dlsr