[haiku-development] Re: Switch to Clang or GCC 4.9?

  • From: Pawel Dziepak <pdziepak@xxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Fri, 25 Apr 2014 18:30:48 +0200

2014-04-25 17:47 GMT+02:00 Jonathan Schleifer
<js-haiku-development@xxxxxxxxxxx>:
> Am 24.04.2014 um 12:16 schrieb Pawel Dziepak <pdziepak@xxxxxxxxxxx>:
>
>> What are the current problems with clang that would prevent us from
>> switching now? Is it only completing the integration with our build
>> system?
>
> * We currently depend on the host Clang (which is not really a problem, any 
> Clang since 3.2 works)
> * Some servers segfault on exit, as there's something different with global 
> destructors. I'm not sure if GCC doesn't call them at exit or calls them in 
> another order or something. All I know is that GCC did global destructors 
> wrong for a long time and Clang does them right, so this might actually be a 
> bug in some servers

Could you elaborate on what was wrong with GCC handling destructors of
global objects? It is quite precisely defined by Itanium C++ ABI
(namely __cxa_atexit(), __cxa_finalize() and friends) so I wouldn't
expect big difference in lower level implementation. However, the
standard isn't very strict about the order in which global objects
have to be destroyed and that might be a reason of segfault if there
is some hidden dependency between global objects. That would be
something that should be fixed regardless of whether we are going to
switch to clang or not.

Paweł

Other related posts: