[freetds] freetds-0.64 install/configure on Solaris10 all 64-bit env using Sun Compiler - ELF64 error

Alek Fiakhretdinov alek.fiakhretdinov at db.com
Fri Jan 18 18:26:11 EST 2008


Dear freetds community,

I am trying to install and configure the latest freetds-0.64  kit together 
with DBD::Sybase driver on Solaris-10 all 64-bit environment.
Perl itself has been rebuilt with 'use64bitint=define, use64bitall=define' 
options and successfully works with a few database modules (Sybperl, 
DBD::Oracle) - all installed using the same CFLAGS as were used during 
Perl installation.

I am using SUN compiler and associated build tools (not gcc).

The problem is that I can't have a loader to use a correct set of 64-bit 
libraries during the 'make' step of the FreeTDS installation even though 
per my understanding I am providing all necessary info.

Will Greatly (!!!) appreciate any help as I was struggling with this for a 
few days with no luck.

Here are the details:

1.      Perl

$ perl -V
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
  Platform:
    osname=solaris, osvers=2.10, archname=sun4-solaris-64
    uname='sunos nygmwsp011.us.db.com 5.10 generic_118833-33 sun4u sparc 
sunw,sun-blade-100 '
    config_args='-Dprefix=/usr/perl5/5.10.0 -Duse64bitall -Duse64bitint 
-de'
    hint=recommended, useposix=true, d_sigaction=define
    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='cc', ccflags ='-xarch=generic64 -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV',
    optimize='-O',
    cppflags='-xarch=generic64'
    ccversion='Sun WorkShop 6 update 1 C 5.2 2000/09/11', 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='cc', ldflags =' -xarch=generic64 
-L/db/pub/infra/SUNWspro/6.1p9/SUNWspro/WS6U1/lib/v9 -L/usr/lib/sparcv9 
-L/usr/ccs/lib/sparcv9 '
    libpth=/db/pub/infra/SUNWspro/6.1p9/SUNWspro/WS6U1/lib/v9 
/usr/lib/sparcv9 /usr/ccs/lib/sparcv9 /usr/lib /usr/ccs/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=generic64 
-L/db/pub/infra/SUNWspro/6.1p9/SUNWspro/WS6U1/lib/v9 -L/usr/lib/sparcv9 
-L/usr/ccs/lib/sparcv9'


Characteristics of this binary (from libperl):
  Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
                        PERL_USE_SAFE_PUTENV USE_64_BIT_ALL USE_64_BIT_INT
                        USE_LARGE_FILES USE_PERLIO
  Built under solaris
  Compiled at Jan 11 2008 15:59:18
  @INC:
    /usr/perl5/5.10.0/lib/5.10.0/sun4-solaris-64
    /usr/perl5/5.10.0/lib/5.10.0
    /usr/perl5/5.10.0/lib/site_perl/5.10.0/sun4-solaris-64
    /usr/perl5/5.10.0/lib/site_perl/5.10.0


2.      Solaris env in my session:

PATH=/usr/xpg4/bin:/usr/ccs/bin:/db/pub/infra/SUNWspro/6.1p9/SUNWspro/bin:/usr/bin:.
CFLAGS=-xarch=generic64 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 
-DPERL_USE_SAFE_PUTENV
LDFLAGS= -xarch=generic64 
-L/db/pub/infra/SUNWspro/6.1p9/SUNWspro/WS6U1/lib/v9 -L/usr/lib/sparcv9 
-L/usr/ccs/lib/sparcv9
LD_LIBRARY_PATH=/usr/ccs/lib/sparcv9:/usr/lib/sparcv9:/db/pub/infra/SUNWspro/6.1p9/SUNWspro/WS6U1/lib/v9

3.      configure 

./configure --disable-odbc --disable-libiconv --enable-sybase-compat 
--prefix=/usr/local/freetds --with-tdsver=7.0

Configure comes up with a libtool which for some reason generates a C++ - 
like commands so I have to edit the libtool to change the following line:

wl="-Wl,"

to

wl=""

In this case 'make' comes up with the follwoing log:

Which has the following warnings:

"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"query.c", line 1464: warning: assignment type mismatch:
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
ld: warning: file ./.libs/libtds_objects.a(mem.o): wrong ELF class: 
ELFCLASS64
ld: warning: file ../replacements/.libs/libreplacements.a(iconv.o): wrong 
ELF class: ELFCLASS64
ld: warning: Symbol referencing errors
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"ct.c", line 767: warning: statement not reached
"ct.c", line 3925: warning: statement not reached
"ct.c", line 4186: warning: argument #1 is incompatible with prototype:
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"blk.c", line 520: warning: statement not reached
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"dblib.c", line 3499: warning: statement not reached
"dblib.c", line 4124: warning: initializer does not fit or is out of 
range: 32768
"dblib.c", line 4770: warning: statement not reached
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"bcp.c", line 1493: warning: statement not reached
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"../../include/tds.h", line 1244: warning: dubious tag declaration: struct 
in_addr
"unittest.c", line 84: warning: assignment type mismatch:

5.      Question: what's wrong in my ENV and how can I have the configure 
tool to generate the right libtool, etc. ?


Regards,
=Alek


---

This e-mail may contain confidential and/or privileged information. If you 
are not the intended recipient (or have received this e-mail in error) 
please notify the sender immediately and destroy this e-mail. Any 
unauthorized copying, disclosure or distribution of the material in this 
e-mail is strictly forbidden.


More information about the FreeTDS mailing list