From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030314 Description of problem: XFree86 is built using gcc without using the -fexceptions flag . If Xlibs are now used from C++ programs and functions which throws exceptions are registered as callback-functions, those exceptions aren't cought. There is a test case for this in https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=92831&action=view The remedy is to add the -fexceptions flag to the defines of BootstrapCFlags DefaultGcc2i386Opt DefaultGcc2AxpOpt DefaultGcc2PpcOpt DefaultGcc2x86_64Opt on line 1108 - 1113 of XFree86.spec I'm not sure though how much overhead this adds. It would probably be sufficient to add this flag while building the X libs, and in this specific case, it would be enough to just use it while building xc/libs/Xt Do note that the same problem exists in Redhat 9 as well. Version-Release number of selected component (if applicable): XFree86-4.2.1-21 How reproducible: Always Steps to Reproduce: 1.g++ ex11.cc -L/usr/X11R6/lib -lXm 2.a.out 3.press the button in the widget Actual Results: Exceptption was not cought and prgram aborted Expected Results: The exception should have been cought. Additional info:
If this really is a bug and needs to be fixed, I'm kindof surprised that it has never been reported by anyone before in all the years that XFree86 has been shipped. Moreso, if it is a problem, it is not just a Red Hat problem, it would be an XFree86 problem. Since the implications of making such a change are not known or clear, I'm unwilling to make such a change to Red Hat XFree86 packages unless upstream XFree86 modifies the default compiler flags as well to make this the default. Please report this upstream to XFree86.org directly at http://bugs.xfree86.org and provide the upstream bug URL here and I will monitor XFree86.org's response to the issue.
Created attachment 92958 [details] test case Here is a much simpler test case that doesn't involve anything but the X client libraries. compile it with g++ -Wall -L/usr/X11R6/lib -lXt ./test.cc and then when running it, it will exit with abort. If it is linked against a libXt compiled with the -fexceptions flag, it will catch the exception.
reported as http://bugs.xfree86.org/show_bug.cgi?id=503
Ok, thanks. I'll follow the upstream bugzilla, and wait for their resolution, then investigate. Thanks again, TTYL
Upstream has determined that this is not a safe change to make, and closed the upstream report WONTFIX. Closing bug as WONTFIX.
*** Bug 98839 has been marked as a duplicate of this bug. ***