Languages and Scripting
Showing results for 
Search instead for 
Do you mean 

make fails with cannot find library "DtHelp"

SOLVED
Go to Solution
Advisor

make fails with cannot find library "DtHelp"

Have been running the same make file for years and it just stopped working with the error:
/usr/ccs/bin/ld: Can't find library: "DtHelp"
*** Error exit code 1

make file has the /usr/dt/lib file specified as follows:
MOTIF_LIBPATH = -DCOSE -DCDE10 -L/usr/dt/lib
LIBPATH = $(X_LIBPATH) $(MOTIF_LIBPATH) -L$(UX_LIBPATH) $(GPS_LIBPATH) \
-L$(LIBHOME32)
LIBS = -lux $(X_LIBS) -lPW -ldld -lgps -ltermcap \
-lm /usr/lib/libm.1 -lDtHelp -lDtSvc -lDtWidget -lXext -ll \
-lc -lXp $(STATICPROLDLIBS)

Library environment variables are setup as follows:
SHLIB_PATH=/src/oracle/product/9.2.0/lib32
LD_LIBRARY_PATH=/usr/lib:/src/oracle/product/9.2.0/lib:/opt/uimx3.0/lib
LIBRARY_PATH=/usr/lib:/src/oracle/product/9.2.0/lib:/opt/uimx3.0/lib

I loaded patches back in february and the last time that this was compiled was in december. I backed out of the linker patch as that was the only thing I could think of that would affect this but that didn't make any difference so I know it wasn't that patch that caused this issue. Any ideas?
1 ACCEPTED SOLUTIONS
Honored Contributor Honored Contributor

Re: make fails with cannot find library "DtHelp"

> [...] You are missing a symlink [...]

I lack 11.23, but on an 11.11 (PA-RISC)
system:

dy # find /usr/dt -name 'libDtHelp*'
/usr/dt/lib/libDtHelp.1
/usr/dt/lib/libDtHelp.2
/usr/dt/lib/libDtHelp.3
/usr/dt/lib/libDtHelp.a
/usr/dt/lib/libDtHelp.sl

dy # ls -l /usr/dt/lib/libDtHelp*
-r-xr-xr-x 1 bin bin 876544 Aug 10 2006 /usr/dt/lib/libDtHelp.1
-r-xr-xr-x 1 bin bin 806912 Nov 14 2000 /usr/dt/lib/libDtHelp.2
-r-xr-xr-x 1 bin bin 1146880 Aug 10 2006 /usr/dt/lib/libDtHelp.3
-r-xr-xr-x 1 bin bin 1173580 Nov 10 2003 /usr/dt/lib/libDtHelp.a
lrwxr-xr-x 1 root sys 23 Aug 6 2007 /usr/dt/lib/libDtHelp.sl -> /usr/dt/lib/libDtHelp.3
9 REPLIES
Honored Contributor Honored Contributor

Re: make fails with cannot find library "DtHelp"

> /usr/ccs/bin/ld: Can't find library: "DtHelp"

> [...] -lDtHelp [...]

So, where is (was?) "libDtHelp.*"?


Often interesting:

uname -a
Advisor

Re: make fails with cannot find library "DtHelp"

It is in /usr/dt/lib
ll |grep Help
-r-xr-xr-x 1 bin bin 876544 Nov 7 2003 libDtHelp.1
-r-xr-xr-x 1 bin bin 806912 Sep 3 2003 libDtHelp.2
-r-xr-xr-x 1 bin bin 1056768 May 27 2004 libDtHelp.3
Advisor

Re: make fails with cannot find library "DtHelp"

uname -a
HP-UX splash B.11.23 U 9000/800 2859362629 unlimited-user license
Honored Contributor Honored Contributor

Re: make fails with cannot find library "DtHelp"

> Often interesting:
>
> uname -a

Still true. Around here, for example,
"man ld" (always interesting) mentions
"LPATH", but not "LIBPATH", so I don't know
what you're doing with that thing.

> [...] make file has [...]

With my weak psychic powers, I can't see your
actual link command any better than I can
divine your OS and hardware architecture.

Also:

dyi # find /usr/dt -name 'libDtHelp*'
/usr/dt/lib/libDtHelp.1
/usr/dt/lib/libDtHelp.2
/usr/dt/lib/libDtHelp.3
/usr/dt/lib/pa20_64/libDtHelp.3
/usr/dt/lib/hpux32/libDtHelp.so.1
/usr/dt/lib/hpux32/libDtHelp.so
/usr/dt/lib/hpux64/libDtHelp.so.1
/usr/dt/lib/hpux64/libDtHelp.so
Advisor

Re: make fails with cannot find library "DtHelp"

It is a pa system RP3410 running HP UX 11.23
If you prefer the find command, it is as follows:
splash:/src/oracle/product/9.2.0 # find /usr/dt -name 'libDtHelp*'
/usr/dt/lib/libDtHelp.1
/usr/dt/lib/libDtHelp.2
/usr/dt/lib/libDtHelp.3
/usr/dt/lib/hpux32/libDtHelp.so.1
I have attached the entire make file if that helps.
Acclaimed Contributor Acclaimed Contributor

Re: make fails with cannot find library "DtHelp"

(Note: make isn't failing, ld is.)

>Library environment variables are setup as follows: SHLIB_PATH= LD_LIBRARY_PATH= LIBRARY_PATH=

These are useless for linking.

>libDtHelp.1 libDtHelp.2 libDtHelp.3

And these are useless as well. You are missing a symlink from libDtHelp.sl to libDtHelp.3.
# ln -s libDtHelp.3 /usr/dt/lib/libDtHelp.sl
Honored Contributor Honored Contributor

Re: make fails with cannot find library "DtHelp"

> [...] You are missing a symlink [...]

I lack 11.23, but on an 11.11 (PA-RISC)
system:

dy # find /usr/dt -name 'libDtHelp*'
/usr/dt/lib/libDtHelp.1
/usr/dt/lib/libDtHelp.2
/usr/dt/lib/libDtHelp.3
/usr/dt/lib/libDtHelp.a
/usr/dt/lib/libDtHelp.sl

dy # ls -l /usr/dt/lib/libDtHelp*
-r-xr-xr-x 1 bin bin 876544 Aug 10 2006 /usr/dt/lib/libDtHelp.1
-r-xr-xr-x 1 bin bin 806912 Nov 14 2000 /usr/dt/lib/libDtHelp.2
-r-xr-xr-x 1 bin bin 1146880 Aug 10 2006 /usr/dt/lib/libDtHelp.3
-r-xr-xr-x 1 bin bin 1173580 Nov 10 2003 /usr/dt/lib/libDtHelp.a
lrwxr-xr-x 1 root sys 23 Aug 6 2007 /usr/dt/lib/libDtHelp.sl -> /usr/dt/lib/libDtHelp.3
Advisor

Re: make fails with cannot find library "DtHelp"

Thanks, sym link fixed the issue
Highlighted
Advisor

Re: make fails with cannot find library "DtHelp"

.