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

Reply via email to