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ł