fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] glib crash


From: address@hidden
Subject: Re: [fluid-dev] glib crash
Date: Thu, 5 Sep 2013 09:42:20 +0200

Hi list,
just to let you know that this did the trick : install glib on my development machine without the AVX instructions (-mno-avx), and build fluidsynth/fluidXtra against it.
Thank you for your help
Antoine


Le 23 août 2013 à 18:10, Element Green <address@hidden> a écrit :

Sounds like you're onto something there.  I was not aware of VEX-prefixed AVX instructions.  I thought it seemed a little fishy that the LDS instruction would be used in that disassembly dump and also that it appeared that the actual instruction was 8 bytes long from your successful single stepping of the code.  From reading the Wikipedia article on the subject, it definitely sounds like what you are experiencing.  If I understood what I read correctly, 32-bit versus 64-bit mode can have an effect on which instructions are valid, regardless of whether the processor supports 64 bit or not.  So if you're kernel is running in 32 bit mode, then certain AVX instructions will be interpreted differently than if the kernel is running 64 bit.


Best regards,

Element


On Fri, Aug 23, 2013 at 4:57 AM, address@hidden <address@hidden> wrote:
well,
I installed glib as --universal, meaning that it contains both 32 bits and 64 bits binaries. And actually, I removed the 64 bit binary (using the lipo function), because Director is a 32 bits application and all Xtras (plugins) are also. So we are really running in 32 bit here. Even on MacOSX10.8, which is a 64 bits kernel, but which can run 32 bits applications.

And, this instruction does _not_ crash on my MacOSX10.8 machine, and _does_ crash on another MacOSX10.8 machine.

I found another possibility : AVX. I found on the net (http://stackoverflow.com/questions/16389207/llvm-jit-tutorial-code-crashes-with-simple-parameterized-function-why) a similar SIGILL LDS, which was actually caused by an VEX-prefixed AVX instruction, which neither the processor nor the disassembler knew about, and interpreted as an LDS. And AVX is available on my machine, and not on the two crashing machines…

I'm investigating this now. Trying to compile glib without AVX.

Le 23 août 2013 à 00:59, Element Green <address@hidden> a écrit :

From what I can see, that instruction is indeed an LDS instruction, which from what I read is invalid when in 64 bit mode.  It sounds like Mac OSX can be run in either 32 bit or 64 bit mode, so perhaps that is the difference between working systems and non-working systems?  I didn't bother decoding the instruction further than seeing that it was an LDS instruction.  If that is indeed what is happening, then some sort of compiler setting resulted in that instruction.  Probably need to make sure the proper compiler switches are being used for the intended architectures.



_______________________________________________
fluid-dev mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/fluid-dev


_______________________________________________
fluid-dev mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/fluid-dev


reply via email to

[Prev in Thread] Current Thread [Next in Thread]