On 13 Jul, Pedro Giffuni wrote: > > > On 07/13/15 02:06, Don Lewis wrote: > ... >> >> According to the bootstrap log, it's not a download problem. >> >> I'm able to reproduce the problem here. It looks like clang doesn't >> like some of the code in CoinMP: >> >> In file included from ClpSolve.cpp:347: >> /tmp/openoffice/aoo-4.2.0/ext_libraries/coinmp/unxfbsdx.pro/misc/build/CoinMP-1.7.6/CoinUtils/src/CoinSignal.hpp:47:12: >> error: >> extension used [-Werror,-Wlanguage-extension-token] >> typedef typeof(SIG_DFL) CoinSighandler_t; >> ^ >> >> The code fragment in question: >> >> #if defined(__FreeBSD__) && defined(__GNUC__) >> typedef typeof(SIG_DFL) CoinSighandler_t; >> # define CoinSighandler_t_defined >> #endif >> >> This has been changed in CoinMP-1.8.2 to: >> >> #if defined(__FreeBSD__) && defined(__GNUC__) >> typedef __decltype(SIG_DFL) CoinSighandler_t; >> # define CoinSighandler_t_defined >> #endif >> > > OpenOffice has a clang patch that was not catching this. > I hacked it for FreeBSD now: > http://svn.apache.org/viewvc?view=revision&revision=1690740 > > But there is certainly something wrong as clang is not being detected.
I think clang defines __GNUC__, so with the existing clang patch we were still using the original typedef. If the compiler didn't croak there, then we would have redefined the typedef again in the __clang__ section. <http://stackoverflow.com/questions/28166565/detect-gcc-as-opposed-to-msvc-clang-with-macro> #if defined(__FreeBSD__) && defined(__GNUC__) typedef typeof(SIG_DFL) CoinSighandler_t; # define CoinSighandler_t_defined #endif //----------------------------------------------------------------------------- #if defined(__NetBSD__) && defined(__GNUC__) typedef typeof(SIG_DFL) CoinSighandler_t; # define CoinSighandler_t_defined #endif //----------------------------------------------------------------------------- #if defined(_AIX) # if defined(__GNUC__) typedef typeof(SIG_DFL) CoinSighandler_t; # define CoinSighandler_t_defined # endif #endif //----------------------------------------------------------------------------- #if defined (__hpux) # define CoinSighandler_t_defined # if defined(__GNUC__) typedef typeof(SIG_DFL) CoinSighandler_t; # else extern "C" { typedef void (*CoinSighandler_t) (int); } # endif #endif //----------------------------------------------------------------------------- #if defined(__sun) # if defined(__SUNPRO_CC) # include <signal.h> extern "C" { typedef void (*CoinSighandler_t) (int); } # define CoinSighandler_t_defined # endif # if defined(__GNUC__) typedef typeof(SIG_DFL) CoinSighandler_t; # define CoinSighandler_t_defined # endif #endif //----------------------------------------------------------------------------- #if defined(__clang__) typedef void(*CoinSighandler_t)(int); # define CoinSighandler_t_defined #elif defined(__MACH__) && defined(__GNUC__) typedef typeof(SIG_DFL) CoinSighandler_t; # define CoinSighandler_t_defined #endif --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org For additional commands, e-mail: dev-h...@openoffice.apache.org