Req for help: ELF File OS ABI Invalid
The Mask
themask at postmark.net
Wed Aug 4 22:53:11 PDT 2004
Hi,
I am searching really hard for a solution regarding the "ELF file OS
ABI Invalid" error.
I am running Simple Jni example (to test jni I am getting same error
in my project)on FreeBSD but I am getting the following error while
executing my java program:
%java Sample1
Exception in thread "main" java.lang.UnsatisfiedLinkError:
/usr/home/smgusr/mangesh/libSample1.so.1.0.1:
/usr/home/smgusr/mangesh/libSample1.so.1.0.1:
ELF file OS ABI invalid
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1560)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1456)
at java.lang.Runtime.load0(Runtime.java:737)
at java.lang.System.load(System.java:811)
at Sample1.main(Sample1.java:10)
if I use the ldd command it refer like this
%ldd /usr/home/smgusr/mangesh/libSample1.so.1.0.1
/usr/home/smgusr/mangesh/libSample1.so.1.0.1:
libc.so.4 => /usr/lib/libc.so.4 (0x2806a000)
I have made libSample1.so.1.0.1 in the following way:
gcc -o2 -fPIC -g -I/usr/local/linux-sun-jdk1.4.2/include
-I/usr/local/linux-sun-jdk1.4.2/include/linux -c Sample1.c -o
Sample1.o
for linking and making shared library
gcc -o2 -shared -fPIC -pthread -Wl
-I/usr/local/linux-sun-jdk1.4.2/include
-I/usr/local/linux-sun-jdk1.4.2/include/linux
-soname,libSample1.so.1
-o libSample1.so.1.0.1 Sample1.o -L/usr/compat/linux/lib -L/usr/lib
-L/usr/home/smgusr/mangesh -lc
Even though I try to load standard shared library from /usr/lib the
error persists.
What is going wrong? Is it the Linux emulator problemor my shared
lirary problem??
We have installed linux_base to set linux environment
set linux_base="yes" (/etc/rc.conf)
set kern.fallback_brand=3 (/etc/sysctl.conf)
Running kldstat is giving the following result
%kldstat
Id Refs Address Size Name
1 4 0xc0100000 44fbf8 kernel
2 1 0xc33e3000 7000 linprocfs.ko
3 1 0xc3455000 15000 linux.ko
4 1 0xc3646000 3000 snp.ko
Running following command to check linux binary compatibility layer
is loaded:
%kldstat -v | grep linuxelf
219 linuxelf
I am getting the above output which means the linux emulator is
loaded.
Running following command to check if the layer is compiled into the
kernel or loaded as a module:
% kldstat | grep linux.ko
3 1 0xc3455000 15000 linux.ko
I am getting the above output
(Ref
link:http://www.merlinobbs.net/modules.php?name=News&file=article&sid=
483
Does it means it needs some more settings like setting options
compat_linux in kernel config?
Is there any issue related to configuring ld.so files on FreeBSD??
linprocfs is mounted and showing entry in the (/etc/fstab) and
kldstat command.
Configuration is :
FreeBSD 4.10-BETA (GENERIC)
I am using the following packages
linux-sun-jdk-1.4.2.04 Sun Java Development Kit 1.4 for Linux
linux_base-8-8.0_4 Base set of packages needed in Linux mode (only
for i386)
linux_devtools-8.0_1 Packages needed for doing development in Linux
mode
libtool-1.3.5_1 Generic shared library support script
gmake-3.80_1 GNU version of 'make' utility
automake-1.4.5_9 GNU Standards-compliant Makefile generator
(legacy version
GCC 2.95.4
gdb 4.18
ld 2.12.1 supported emulation elf_i386
I am awaiting your valuable suggestions. Thanks in advance.
Regards,
Mangesh
More information about the freebsd-emulation
mailing list