Operating System - HP-UX
1829115 Members
15708 Online
109986 Solutions
New Discussion

Unsatisfied code symbol '__umodsi3' in load module '/usr/bin/awk'

 
GnanaShekar
Regular Advisor

Unsatisfied code symbol '__umodsi3' in load module '/usr/bin/awk'

Hi,

I have installed the gawk-3.1.5-ia64-11.23.depot on an IA64 (Itanium) server.

What does the output from "file /usr/local/bin/gawk" indicate?

# file /usr/local/bin/gawk
/usr/local/bin/gawk: ELF-32 executable object file - IA64

Is it a 32-bit application for IA64?
can 32-bit applications run on IA64?; I was of the opinion that we need an 32-bit emulator to run 32-bit binaries on the IA64 platform.

One of our developers is getting the below issue, while running a test suite.

/usr/lib/hpux32/dld.so: Unsatisfied code symbol '__umodsi3' in load module '/usr/bin/awk'.

/usr/lib/hpux32/dld.so: Unsatisfied code symbol '__umodsi3' in load module '/usr/local/bin/awk'

Please suggest,
Thanks & Regards,
6 REPLIES 6
GnanaShekar
Regular Advisor

Re: Unsatisfied code symbol '__umodsi3' in load module '/usr/bin/awk'

Hi,

Further to this, find the output of "ldd -r /usr/local/bin/gawk"


# ldd -r /usr/local/bin/gawk
/usr/local/lib/hpux32/libintl.so => /usr/local/lib/hpux32/libintl.so
/usr/local/lib/hpux32/libiconv.so => /usr/local/lib/hpux32/libiconv.so
libc.so.1 => /usr/lib/hpux32/libc.so.1
libdl.so.1 => /usr/lib/hpux32/libdl.so.1
libm.so.1 => /usr/lib/hpux32/libm.so.1
libiconv.so => /usr/local/lib/hpux32/libiconv.so
libc.so.1 => /usr/lib/hpux32/libc.so.1
symbol not found: __umodsi3 (/usr/local/bin/gawk)

Please suggest,
Thanks & Regards,
GnanaShekar
Regular Advisor

Re: Unsatisfied code symbol '__umodsi3' in load module '/usr/bin/awk'

Hi,

I installed gawk on another IA64 server here in our lab.

However, this problem does not exist in this server.

# file /usr/local/bin/gawk
/usr/local/bin/gawk: ELF-32 executable object file - IA64
# ldd /usr/local/bin/gawk
libdl.so.1 => /usr/lib/hpux32/libdl.so.1
libm.so.1 => /usr/lib/hpux32/libm.so.1
libc.so.1 => /usr/lib/hpux32/libc.so.1
# ldd -r /usr/local/bin/gawk
libdl.so.1 => /usr/lib/hpux32/libdl.so.1
libm.so.1 => /usr/lib/hpux32/libm.so.1
libc.so.1 => /usr/lib/hpux32/libc.so.1
#

Please suggest,
Thanks & Regards,
GnanaShekar
Regular Advisor

Re: Unsatisfied code symbol '__umodsi3' in load module '/usr/bin/awk'

Hi,

The root cause of the issue seems to be the environment variable (export LD_LIBRARY_PATH=/opt/java1.5/jre/lib/IA64N/server/) set in the .profile file of the root.

When LD_LIBRARY_PATH is set as mentioned above, and if we install the gawk this is what ldd will report:



# ldd -r /usr/local/bin/gawk

/usr/local/lib/hpux32/libintl.so => /usr/local/lib/hpux32/libintl.so

/usr/local/lib/hpux32/libiconv.so => /usr/local/lib/hpux32/libiconv.so

libc.so.1 => /usr/lib/hpux32/libc.so.1

libdl.so.1 => /usr/lib/hpux32/libdl.so.1

libm.so.1 => /usr/lib/hpux32/libm.so.1

libiconv.so => /usr/local/lib/hpux32/libiconv.so

libc.so.1 => /usr/lib/hpux32/libc.so.1

symbol not found: __umodsi3 (/usr/local/bin/gawk)



I commented this in the .profile of the root and installed gawk on a new session. Now this is what ldd has got to say:



# ldd /usr/local/bin/gawk

libdl.so.1 => /usr/lib/hpux32/libdl.so.1

libm.so.1 => /usr/lib/hpux32/libm.so.1

libc.so.1 => /usr/lib/hpux32/libc.so.1

# ldd -r /usr/local/bin/gawk

libdl.so.1 => /usr/lib/hpux32/libdl.so.1

libm.so.1 => /usr/lib/hpux32/libm.so.1

libc.so.1 => /usr/lib/hpux32/libc.so.1

I am myself surprised by the way I found the root cause.

Regards,

Dennis Handly
Acclaimed Contributor

Re: Unsatisfied code symbol '__umodsi3' in load module '/usr/bin/awk'

>can 32-bit applications run on IA64? I was of the opinion that we need an 32-bit emulator to run 32-bit binaries on the IA64 platform.

You can run 32 bit IPF application on HP-UX IPF. That is the default data model. You can't run 32 bit x86 applications on HP-UX.

>I am myself surprised by the way I found the root cause.

This is totally uncomprehensible. Why should setting LD_LIBRARY_PATH to /opt/.../server/ cause extra shlibs to be loaded?? Are there any files named libdl.so.1 libm.so.1 or libc.so.1 there??

I can duplicate the issue when using a gnu grep. But that also fails without the LD_LIBRARY_PATH, provided I execute the path in grep that calls that function.

In my grep when I use chatr -B immediate, I get another unsat, __udivdi3.

So my grep and your awk were linked incorrectly.
Chuck Lackey
Advisor

Re: Unsatisfied code symbol '__umodsi3' in load module '/usr/bin/awk'

Uninstall GNU gawk and install version 3.1.6 available here...

http://hpux.cs.utah.edu/hppd/hpux/Gnu/gawk-3.1.6/

That fixed the same issue for me.
Dennis Handly
Acclaimed Contributor

Re: Unsatisfied code symbol '__umodsi3' in load module '/usr/bin/awk'

>install version 3.1.6 available here. That fixed the same issue for me.

Yes, new versions with a fixed makefile should do it. See my replies in these threads:
http://forums.itrc.hp.com/service/forums/questionanswer.do?threadId=1249936
http://forums.itrc.hp.com/service/forums/questionanswer.do?threadId=1026966
http://forums.itrc.hp.com/service/forums/questionanswer.do?threadId=1140627