On Jun 26, 2012, at 1:55 AM, Steven Bosscher wrote:
> On Mon, Jun 25, 2012 at 10:46 AM, Eric Botcazou
> <ebotca...@libertysurf.fr> wrote:
>> It looks like DONT_USE_BUILTIN_SETJMP was invented for the IA-64, probably
>> because of the Register Stack Engine.  But SPARC also has register windows,
>> albeit less sophisticated, and can do without it.  Morever, the Ada compiler
>> uses __builtin_setjmp/__builtin_longjmp internally on the host (EH is used 
>> for
>> error recovery) and is known to work fine on IA-64/Linux, HP-UX and VMS.
>> 
>> In the end, it would appear that DONT_USE_BUILTIN_SETJMP was a quick trick to
>> solve specific issues that could very likely have been solved otherwise.  We
>> should probably keep it for the sake of IA-64 and get rid of it for all other
>> architectures, documenting that it isn't to be used in normal circumstances.
> 
> ia64 is now the only remaining architecture that defines
> DONT_USE_BUILTIN_SETJMP and JMP_BUF_SIZE.
> 
> If __builtin_setjmp actually does work for ia64, why should we keep
> DONT_USE_BUILTIN_SETJMP? Could it break user code somehow?

History is not kind:

http://gcc.gnu.org/ml/gcc-patches/2002-04/msg00124.html

:-)  It seems everyone else has seen the error of their ways and fixed it.  :-) 
 It got moved to ia64.h, only because a few people mistakingly used it once.  
Though, history isn't kinda to me either:

svn log -c13969

:-(  I'd say, remove it, and deprecate the bit and after 2 releases, remove the 
whole lot.  15 years late...  Sorry for the mess.

Reply via email to