[Mono-dev] Error building mono on x86

Rafael Mueller - Inventti rafael at inventti.com.br
Wed Feb 18 13:09:28 UTC 2015


Currently the .so is in the same directory as the application, and the main application is marked as x86.


running: MONO_LOG_LEVEL=debug ../MONO312/bin/mono SimuladorPDV.exe

I got:

Mono: DllImport error loading library '/home/mueller/simulador/libnfcepack_agente.so': '/home/mueller/simulador/libnfcepack_agente.so: wrong ELF class: ELFCLASS32'.


I'm also able to run others x86 applications on this mono installation, but those app's doesn't [DllImport] and p/invoke other's .so


Can you confirm that mono is should work with this setup?


mueller at UbuntuServer:~/simulador$ uname -a
Linux UbuntuServer 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

mueller at UbuntuServer:~/simulador$ ../MONO312/bin/mono -V
Mono JIT compiler version 3.12.0 (tarball Wed Feb 18 09:23:22 BRST 2015)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
        TLS:           __thread
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  amd64
        Disabled:      none
        Misc:          softdebug
        LLVM:          supported, not enabled.
        GC:            sgen


mueller at UbuntuServer:~/simulador$ file libnfcepack_agente.so
libnfcepack_agente.so: ELF 32-bit LSB  shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=3c38c599de292a04755697ee18756cd79fb769aa, not stripped


mueller at UbuntuServer:~/simulador$ file SimuladorPDV.exe
SimuladorPDV.exe: PE32 executable (console) Intel 80386 Mono/.Net assembly, for MS Windows


mueller at UbuntuServer:~/simulador$ MONO_LOG_LEVEL=debug  ../MONO312/bin/mono SimuladorPDV.exe

<skip>

Mono: DllImport error loading library '/home/mueller/simulador/libnfcepack_agente.so': '/home/mueller/simulador/libnfcepack_agente.so: wrong ELF class: ELFCLASS32'.



________________________________
From: Rafael Teixeira <monoman at gmail.com>
Sent: Wednesday, February 18, 2015 8:18 AM
To: Rafael Mueller - Inventti; Miguel de Icaza
Cc: mono-devel-list at lists.ximian.com
Subject: Re: [Mono-dev] Error building mono on x86


AFAIR your x64 mono will jit to 32 bits your x86 marked DLL if the main application is also marked as x86 , and then it will p/invoke properly your 32 bit .so, although in Linux where to place .so files is a bit more complex.

On Wed, Feb 18, 2015, 07:16 Rafael Mueller - Inventti <rafael at inventti.com.br<mailto:rafael at inventti.com.br>> wrote:

Hi,


I forgot to say, but I'm trying to build it as x86 on a x64 machine - the compilation as x64 worked (without the --host)


Compilation on a x86 box also worked.


This problem happens when I compile as x86 on a x64 box.


Thanks,

Rafael


________________________________
From: Miguel de Icaza <miguel at xamarin.com<mailto:miguel at xamarin.com>>
Sent: Wednesday, February 18, 2015 12:21 AM
To: Rafael Mueller - Inventti
Cc: mono-devel-list at lists.ximian.com<mailto:mono-devel-list at lists.ximian.com>
Subject: Re: [Mono-dev] Error building mono on x86

Hello,

I am not sure why you are passing a --host command line option.   Configure should be able to figure this out on its own.

Miguel

On Tue, Feb 17, 2015 at 6:29 PM, Rafael Mueller - Inventti <rafael at inventti.com.br<mailto:rafael at inventti.com.br>> wrote:
Hi there,

My (c#) application (compiled on windows, as x86) needs to load a 32 bits library (.so), so I must compile mono as x86, right?

I've downloaded the 3.12 source and configured it with
./configure --host=i386-pc-linux-gnu

But it always fails to compile:
In file included from mono-context.c:8:0:
mono-context.c: In function ‘mono_sigctx_to_monoctx’:
../../mono/utils/mono-sigcontext.h:144:74: error: ‘REG_EAX’ undeclared (first use in this function)
  #define UCONTEXT_REG_EAX(ctx) (((ucontext_t*)(ctx))->uc_mcontext.gregs [REG_EAX])

I've tried to add AC_GNU_SOURCE on configure.ac<http://configure.ac> and also compiling with CFLAGS="$CFLAGS -D_GNU_SOURCE" but I still can't compile it.

I'm doing anything wrong? Any other advice to compile it on x86?

I've also tried with mono 3.2.3 and 3.6, without success.

Kind regards,
Rafael

_______________________________________________
Mono-devel-list mailing list
Mono-devel-list at lists.ximian.com<mailto:Mono-devel-list at lists.ximian.com>
http://lists.ximian.com/mailman/listinfo/mono-devel-list


_______________________________________________
Mono-devel-list mailing list
Mono-devel-list at lists.ximian.com<mailto:Mono-devel-list at lists.ximian.com>
http://lists.ximian.com/mailman/listinfo/mono-devel-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20150218/2103533d/attachment.html>


More information about the Mono-devel-list mailing list