alternate signal handler semantics in QNX Neutrino 6.3.1?

I have an application which requires that the environment (OS and C library) never asynchronously executes any code on the current (%esp) stack. In Unix terms, it requires sigaltstack semantics for signal handlers. Linux/glibc and Solaris don’t guarantee this as-is, but can be coerced to do so with (system-dependent) use of RTLD_NEXT, SA_ONSTACK and SIGSTKSZ.

QNX 6.3.1 does not provide RTLD_NEXT, SA_ONSTACK and SIGSTKSZ (even though the latter two are, in fact, currently in Posix 1003.1). :frowning:

Is there any way to do coerce this type of behavior under 6.3.1?

I have an application which requires that the environment (OS and C library) never asynchronously executes any code on the current (%esp) stack. In Unix terms, it requires sigaltstack semantics for signal handlers. Linux/glibc and Solaris don’t guarantee this as-is, but can be coerced to do so with (system-dependent) use of RTLD_NEXT, SA_ONSTACK and SIGSTKSZ.

QNX 6.3.1 does not provide RTLD_NEXT, SA_ONSTACK and SIGSTKSZ (even though the latter two are, in fact, currently in Posix 1003.1). :frowning:

Is there any way to do coerce this type of behavior under 6.3.1?

If you disable all signals I guess your requirement will be met. I don’t know of any way to let signal handler use a different stack, unless may you direct all signal to a single thread that has the job of handling signal.

I suspect your best bet is to post the question in the qdn.* forums on inn.qnx.com and get an official response. And since the current release is only 6.3.0, it is possible it may work for you in 6.3.1 when it becomes available. ;-)

Rick…