dbTalk Databases Forums  

symbol refencing conflicts between libingres.a(dlos.o) and libdl.so.1

comp.databases.ingres comp.databases.ingres


Discuss symbol refencing conflicts between libingres.a(dlos.o) and libdl.so.1 in the comp.databases.ingres forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Damien Mulcahy
 
Posts: n/a

Default symbol refencing conflicts between libingres.a(dlos.o) and libdl.so.1 - 01-20-2004 , 09:08 AM






Hi,

I am porting an application from Ingres II 2.5 on a Sun Sparc Solaris
2.6 machine to Ingres II 2.6 on a Sun Sparc Solaris 9 machine. When I
try to build the application the follwing compile fails with the
following symbol refencing conflicts between libingres.a(dlos.o) and
libdl.so.1

COMPILE COMMAND:
cc -w -o /users/itpdevel/revsuper/dev/deliv/loadcode/_exe/loadcode
BS-5b95.c \
-I${TUXDIR}/include -L${TUXDIR}/lib loadcode.o tpwrap.o writerrs.o
fmldef.o \
getopt.o objattr.o prefix.o codesvc.o str.o dataconv.o fmlfunc.o
oroad.o sqldafn.o \
-L/software/tuxedo/tuxedo8.1/lib
/software/itpdevingres/ingres/lib/libingres.a \
-lm -lc -lelf -ltux -lbuft -lfml -lfml32 -lengine -R/usr/lib/lwp
-lpthread -lposix4 -lsocket -lnsl

ERROR:
Undefined first referenced
symbol in file
dlerror
/software/itpdevingres/ingres/lib/libingres.a(dlos.o) (symbol belongs
to implicit dependency /usr/lib/libdl.so.1)
dlclose
/software/itpdevingres/ingres/lib/libingres.a(dlos.o) (symbol belongs
to implicit dependency /usr/lib/libdl.so.1)
dlopen
/software/itpdevingres/ingres/lib/libingres.a(dlos.o) (symbol belongs
to implicit dependency /usr/lib/libdl.so.1)
dlsym
/software/itpdevingres/ingres/lib/libingres.a(dlos.o) (symbol belongs
to implicit dependency /usr/lib/libdl.so.1)
ld: fatal: Symbol referencing errors. No output written to
/users/itpdevel/revsuper/dev/deliv/loadcode/_exe/loadcode


QUESTIONS:
Can anyone tell me how to avoid this conflict seeing as libdl.so.1 is
an implicit dependency of the Sun Solaris linker and so beyond my
control?

If I exclude libigres.a and instead extract and link the various
libraries can I do without dlos.o and if so what object files do I
require for a program with simple database access such as connect,
basic SQL, prepare and execute statements and cursors?

Thanks,
Damien.

Reply With Quote
  #2  
Old   
Karl & Betty Schendel
 
Posts: n/a

Default Re: symbol refencing conflicts between libingres.a(dlos.o) andlibdl.so.1 - 01-20-2004 , 01:00 PM






At 7:08 AM -0800 1/20/04, Damien Mulcahy wrote:
Quote:
Hi,

I am porting an application from Ingres II 2.5 on a Sun Sparc Solaris
2.6 machine to Ingres II 2.6 on a Sun Sparc Solaris 9 machine. When I
try to build the application the follwing compile fails with the
following symbol refencing conflicts between libingres.a(dlos.o) and
libdl.so.1

[snip]

Simply adding -ldl to your link string should solve it.

Another thing you might try (in general, won't do anything to help this
particular problem) is to link with:
eval cc -o output {.o list} `cat $II_SYSTEM/ingres/files/abflnk.opt` {-l list}
where the .o list are your objects, and the -l list is your libraries
as well as system libraries. For any given platform you can usually figure
out the base set of -l's needed by looking at
$II_SYSTEM/ingres/files/utld.def

using the abflnk.opt as indicated will link libq and friends as shared
libraries, instead of dragging in all of libingres.a. You'll get smaller
binaries, which is a plus if there are lots of them.

Karl


Reply With Quote
  #3  
Old   
Michael A Leo
 
Posts: n/a

Default Re: symbol refencing conflicts between libingres.a(dlos.o) andlibdl.so.1 - 01-20-2004 , 01:22 PM



Damien,

Just add

-ldl -lrt

to the list of link libraries.

How did I figure this out?

I don't honestly know. Just a hunch based on my past readings
of really interesting groups like comp.programing.threads and
comp.sources.sun. If you have insomnia, these are great groups
to read.

Cheers,

Mikey

At 09:08 AM 1/20/2004, Damien Mulcahy wrote:
Quote:
Hi,

I am porting an application from Ingres II 2.5 on a Sun Sparc Solaris
2.6 machine to Ingres II 2.6 on a Sun Sparc Solaris 9 machine. When I
try to build the application the follwing compile fails with the
following symbol refencing conflicts between libingres.a(dlos.o) and
libdl.so.1

COMPILE COMMAND:
cc -w -o /users/itpdevel/revsuper/dev/deliv/loadcode/_exe/loadcode
BS-5b95.c \
-I${TUXDIR}/include -L${TUXDIR}/lib loadcode.o tpwrap.o writerrs.o
fmldef.o \
getopt.o objattr.o prefix.o codesvc.o str.o dataconv.o fmlfunc.o
oroad.o sqldafn.o \
-L/software/tuxedo/tuxedo8.1/lib
/software/itpdevingres/ingres/lib/libingres.a \
-lm -lc -lelf -ltux -lbuft -lfml -lfml32 -lengine -R/usr/lib/lwp
-lpthread -lposix4 -lsocket -lnsl

ERROR:
Undefined first referenced
symbol in file
dlerror
/software/itpdevingres/ingres/lib/libingres.a(dlos.o) (symbol belongs
to implicit dependency /usr/lib/libdl.so.1)
dlclose
/software/itpdevingres/ingres/lib/libingres.a(dlos.o) (symbol belongs
to implicit dependency /usr/lib/libdl.so.1)
dlopen
/software/itpdevingres/ingres/lib/libingres.a(dlos.o) (symbol belongs
to implicit dependency /usr/lib/libdl.so.1)
dlsym
/software/itpdevingres/ingres/lib/libingres.a(dlos.o) (symbol belongs
to implicit dependency /usr/lib/libdl.so.1)
ld: fatal: Symbol referencing errors. No output written to
/users/itpdevel/revsuper/dev/deliv/loadcode/_exe/loadcode


QUESTIONS:
Can anyone tell me how to avoid this conflict seeing as libdl.so.1 is
an implicit dependency of the Sun Solaris linker and so beyond my
control?

If I exclude libigres.a and instead extract and link the various
libraries can I do without dlos.o and if so what object files do I
require for a program with simple database access such as connect,
basic SQL, prepare and execute statements and cursors?

Thanks,
Damien.


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.