On 13 Jul, Pedro Giffuni wrote: > > > On 07/13/15 11:29, Don Lewis wrote: > ... >> 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. > Yes, clang reports itself as gcc 4.2, so it sets __GNUC__ and > __clang__. > > The patch I committed should be a no-op (except for gcc). >> <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 >> >> //----------------------------------------------------------------------------- >> >> ... > <some lines later> >> ... >> //----------------------------------------------------------------------------- >> >> #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 >> > Ugh.. the problem is I am only looking at diffs, not at the code so > I missed this mess. > > Second try: > > http://svn.apache.org/viewvc?view=revision&revision=1690755
This part doesn't look right: #if defined(__FreeBSD__) && defined(__GNUC__) - typedef __decltype(SIG_DFL) CoinSighandler_t; + typedef typeof(SIG_DFL) CoinSighandler_t; # define CoinSighandler_t_defined #endif patching file CoinMP-1.7.6/Osi/ltmain.sh patching file CoinMP-1.7.6/CoinUtils/src/CoinSignal.hpp /usr/local/bin/gpatch: **** malformed patch at line 1230: @@ -95,7 +95,10 @@ dmake: Error code 2, while making './unxfbsdx.pro/misc/build/so_patched_coinmp' 1 module(s): coinmp need(s) to be rebuilt Reason(s): I patched the patch with this patch and got a successful coinmp build: Index: ext_libraries/coinmp/coinmp-1.7.6-clang.patch =================================================================== --- ext_libraries/coinmp/coinmp-1.7.6-clang.patch (revision 1690824) +++ ext_libraries/coinmp/coinmp-1.7.6-clang.patch (working copy) @@ -1,22 +1,25 @@ ---- misc/CoinMP-1.7.6/CoinUtils/src/CoinSignal.hpp 2011-01-03 20:31:00.000000000 -0300 -+++ misc/build/CoinMP-1.7.6/CoinUtils/src/CoinSignal.hpp 2014-02-01 02:02:10.596696644 -0300 -@@ -44,7 +44,7 @@ +--- misc/CoinMP-1.7.6/CoinUtils/src/CoinSignal.hpp 2011-01-03 23:31:00.000000000 +0000 ++++ misc/build/CoinMP-1.7.6/CoinUtils/src/CoinSignal.hpp 2015-07-14 00:18:26.105360000 +0000 +@@ -43,7 +43,7 @@ + //----------------------------------------------------------------------------- - #if defined(__FreeBSD__) && defined(__GNUC__) -- typedef __decltype(SIG_DFL) CoinSighandler_t; -+ typedef typeof(SIG_DFL) CoinSighandler_t; +-#if defined(__FreeBSD__) && defined(__GNUC__) ++#if defined(__FreeBSD__) && defined(__GNUC__) && !defined(__clang__) + typedef typeof(SIG_DFL) CoinSighandler_t; # define CoinSighandler_t_defined #endif -@@ -95,7 +95,10 @@ +@@ -100,6 +100,13 @@ + # define CoinSighandler_t_defined + #endif - //----------------------------------------------------------------------------- ++//----------------------------------------------------------------------------- ++ ++#if defined(__clang__) ++ typedef __decltype(SIG_DFL) CoinSighandler_t; ++# define CoinSighandler_t_defined ++#endif ++ + //############################################################################# --#if defined(__MACH__) && defined(__GNUC__) -+#if !defined(__FreeBSD__) && 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 + #ifndef CoinSighandler_t_defined --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org For additional commands, e-mail: dev-h...@openoffice.apache.org