Problems using Oracle libraries from HP shared library

From: Benjamin Lurie <bluri_at_ctp.com>
Date: 13 Dec 1994 14:05:20 GMT
Message-ID: <3ck9n0$ah5_at_toon.ctp.com>


I am having a problem trying to build a shared library for my application to use. I am trying to build a shared library 'libdcs.sl' which is a C++ interface to Oracle functions. One of the Oracle functions that 'libdcs' references is 'orlon'. Here is how I link the application:

CC -v -ptv -DEXPORT= -I. -I/usr/att/devel/rogue -I/usr/att/devel/uilib1.1/include -I/usr/att/devel/dcs1.1/include -I/usr/uimx2.5/include -I/usr/include/Motif1.2 -I/usr/include/X11R5 -I/usr/local/ar/api/include -I/usr/local/ctplog1.1/include -I/usr/local/oracle/rdbms/demo -I/usr/att/ebt/sit.2_2/include -I/usr/att/devel/xpm/include -I. -I/usr/include/reentrant -I/usr/include/CC +Z -Wl,-Bimmediate -Wl,-Bnonfatal +DA1.0 +DS1.0 -Dsigned= -L/usr/att/devel/uilib1.1/lib -L/usr/att/devel/dcs1.1/lib -L/usr/att

/devel/rogue/lib -L/usr/local/oracle/lib -L/usr/uimx2.5/lib -L/usr/lib/Motif1.2 -L/usr/att/devel/xpm/lib -L/usr/lib/X11R5 -L/usr/att/devel/ACT -L/usr/local/ar/api/lib -L../dynatext -L/usr/att/ebt/sit.2_2/lib -L/usr/local/ctplog1.1/lib -L/usr/att/devel/ctpdcelib/lib -L. -L../bcscustomer -L../bcsuser -L../bcsendpoint -L../bcsswac -L../bcsisdn -L../bcstransloc -L../bcsworklist -L../bcscontracts -L../bcssaleschannel -L../bcshdshared -L../tcsshared -L/usr/att/att01/../integ-lib -o test_v2net \ test_v2net.o dcsloginit.o libdcs.sl -lrwtool -locic /usr/local/oracle/lib/osntab.o -lsqlnet -lora -lsqlnet -lnlsrtl -lcv6 -lcore -lnlsrtl -lcv6 -lcore -lcl -lm -lctplog

When I run the application, I get:

	Before Login () November 30, 1994 9:49:06 am
	/lib/dld.sl: Unresolved symbol: orlon (code)  from /usr/devel/att01/work/closed/magic/dcs/libdcs.sl

Some observations:

  • If I build libdcs as an archive library, the application works.
  • The Oracle libraries come after libdcs on the link line so the Oralce functions should be resolved properly.
  • If I use the linker option '-y orlon', I get the following when I link:
			libdcs.sl: orlon is CODE UNSAT
			/usr/local/oracle/lib/libocic.a(orlon.o): orlon is CODE UNIVERSAL

		which indicates to me that the linker does know that 'orlon' needs
		to be resolved and does see the 'orlon' function from the oracle
		libraries.

* 'nm /usr/local/oracle/lib/libocic.a' shows:
orlon | 0|extern|code |$RESERVED$ Notice that the 'subspace' is '$RESERVED$' which is an unusual thing for a function. All of the other ones that I see are of subspace $CODE$. Prehaps this is part of the problem?
* 'nm++ test_v2net' shows:
orlon | 450640|extern|code |$RESERVED$ which indicates to me that the 'orlon' function is in the executable, but for some reason, dld cannot find it at runtime.

My questions:

  • Why does dld have a problem with this function?
  • What does $RESERVED$ mean in an object file?
  • Where can I get information about object file formats on HPUX?
Received on Tue Dec 13 1994 - 15:05:20 CET

Original text of this message