LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   *BSD (http://www.linuxquestions.org/questions/%2Absd-17/)
-   -   Linux Emulation problem "ELF file OS ABI invalid Error" (http://www.linuxquestions.org/questions/%2Absd-17/linux-emulation-problem-elf-file-os-abi-invalid-error-213161/)

man26 08-03-2004 11:57 PM

Linux Emulation problem "ELF file OS ABI invalid Error"
 
Hello Sir,

I am really searching hard for solution on " 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 4.10 but I am getting following error

while executing my java Program

Quote:


%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 ldd command it refer like this

Quote:

%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 following way:

Quote:

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

Quote:

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 persist


what is going wrong is it Linux emulator problem??????????? or 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 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 above output (that means layer is loaded )

Running following command to check 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: 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

How can I check the linprocfs is working properly??



I used the brandelf -t Linux libSample1.so.1.0.1 but same error

Is it referring to java executables cause they are (SYSV) type??
any other file to chnage the binaries??



I am awaiting yours valuable suggestions.

configuration is :
Quote:


FreeBSD 4.10-BETA (GENERIC)

I am using following packages
java.vm.version: "1.4.2_04-b05"
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


Regards
man26


All times are GMT -5. The time now is 03:08 AM.