bug-gettext
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug-gettext] [PATCH] intl: fix build targetting 10.6 with newer SDK


From: Daiki Ueno
Subject: Re: [bug-gettext] [PATCH] intl: fix build targetting 10.6 with newer SDK's
Date: Wed, 08 May 2013 15:38:55 +0900
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Andoni Morales <address@hidden> writes:

> Building libintl targeting the 10.6 SDK with a newer SDK (10.7 or
> 10.8) leads to the following abort in Snow Leopard:
> libSystem.B.dylib 0x00007fff872940b6 __kill + 10
> libSystem.B.dylib 0x00007fff873349f6 abort + 83
> libintl.8.dylib 0x000000010072148d _nl_load_domain + 3802
> libintl.8.dylib 0x000000010072050e _nl_find_domain + 460
> libintl.8.dylib 0x00000001007230ed libintl_dcigettext + 1132
>
> In 10.7 and 10.8 pthread.h defines unconditionally
> PTHREAD_RECURSIVE_MUTEX_INITIALIZER, which is undefined in 10.6. So
> building with -mmacosx-version-min=10.6 using a newer SDK causes the
> above error when used in Snow Leopard.

Thanks for the report and patch.  However,

>  # include <pthread.h>
>  
> +#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_6

I doubt this works as expected on platforms other than Mac OS X, since
#if directive treats non-macro identifiers as zero[1].  And perhaps we
might better use a numeric value instead of MAC_OS_X_VERSION_10_6 to
support older Mac OS X versions.

> +#ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER
> +#undef PTHREAD_RECURSIVE_MUTEX_INITIALIZER
> +#endif

Probably it can be safely #undef'ed without #ifdef.

Footnotes: 
[1]  http://gcc.gnu.org/onlinedocs/gcc-4.8.0/cpp/If.html#If

Regards,
-- 
Daiki Ueno



reply via email to

[Prev in Thread] Current Thread [Next in Thread]