[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