Hello,
Last week I filed bug #15615281. I wanted to ask on this list if anyone has any idea.
I am trying to do basic signal handling directly in assembly. The problem seems to be a 32/64 bit issue that crashes the kernel. I am cutting and pasting the contents of that bug here, for reference.
I am also attaching an assembly program that shows the bug.
-----------------------------------
Summary:
My compiler generates programs that handle signals directly from the kernel without going through any of libc. Thus these programs use the kernel system calls to set up signal handlers.
There appears to be a bug on 10.8 and later (64 bit kernels), where such programs hang when trying to handle any signals. This only appears to be the case when the program handling the signal is 32bit and is forked from a 64bit shell. See steps below for test case reproduction.
Steps to Reproduce:
1. Download the attached executable.
2. Run the executable from a 32-bit shell:
% arch -arch i386 sh -c './rtex_divzero06 1'
This should produce the expected output:
!DivideByZeroException
3. Run the executable from a 64-bit shell:
% arch -arch x86_64 sh -c './rtex_divzero06 1'
This unfortunately hangs on 10.8 and 10.9.
Worse, on 10.9, it causes a kernel panic when trying to kill the program when it is launched directly from the shell:
% ./rtex_divzero06 1
<hangs>
<CTRL+C> causes a kernel panic
Expected Results:
See above. Program should print !DivideByZeroException.
Actual Results:
Program hangs on 10.8 and 10.9. When CTRL+C'ing the program, causes a kernel panic on 10.9.
Version:
10.8
10.9
%uname -a
Darwin <machine> 13.0.0 Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu-2422.1.72~6/RELEASE_X86_64 x86_64
Notes:
The program is a compiled test case from the Virgil programming language:
https://code.google.com/p/virgil/
Configuration:
This always occurs on 10.8 and 10.9. It never occurs on 10.6. Have not tested on 10.7.
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden