I think there is some confusion about the term "floating-point exception". If I understand the C99 specification correctly, it is implementation-defined behavior whether a floating-point exception causes a trap (e.g. a SIGFPE signal) or not:
"H.3.1 Notification alternatives
1 LIA−1 requires at least the following two alternatives for handling of notifications: setting indicators or trap-and-terminate. LIA−1 allows a third alternative: trap-and-resume.
2 An implementation need only support a given notification alternative for the entire program. An implementation may support the ability to switch between notification alternatives during execution, but is not required to do so. An implementation can provide separate selection for each kind of notification, but this is not required.
3 C allows an implementation to provide notification. C’s SIGFPE (for traps) and FE_INVALID, FE_DIVBYZERO, FE_OVERFLOW, FE_UNDERFLOW (for indicators) can provide LIA−1 notification."
"LIA-1" is "ISO/IEC 10967, Language independent arithmetic (LIA)".
I had chosen in my initial experiment to turn on trap notification via the GNU C library's "feenableexcept(FE_UNDERFLOW)" function, with the result that a floating-point exception causes a SIGFPE signal. In a second experiment I only used the C99 "fetestexcept()" function to test whether the "FE_UNDERFLOW" floating-point exception had occurred in the critical functions, and this was also the case.
So the floating-point exceptions apparently do occur in OpenJPEG during decompression of specific input data, but normally they are not noticed on the common platforms because the default behavior of most C implementations is to only indicate the floating-point exception through the FE_... flags, which must be explicitly queried to have an effect.
So nothing needs to be done on the common platforms, and the bad luck is that the C implementation of IBM iSeries behaves differently. There it would require platform-specific code to disable the floating-point exceptions.
Are you interested in JPEG2000 files that trigger the floating-point exceptions?
Stephan