ID: 48872 Updated by: ka...@php.net Reported By: nospam at hjcms dot de Status: Analyzed Bug Type: Compile Failure Operating System: Linux PHP Version: 5.3.0 New Comment:
I guess something in the way of this should do: Index: string.c =================================================================== --- string.c (revision 284196) +++ string.c (working copy) @@ -587,14 +587,12 @@ #endif #ifdef DECIMAL_POINT case DECIMAL_POINT: -#endif -#ifdef RADIXCHAR +#elif defined(RADIXCHAR) case RADIXCHAR: #endif #ifdef THOUSANDS_SEP case THOUSANDS_SEP: -#endif -#ifdef THOUSEP +#elif defined(THOUSEP) case THOUSEP: #endif #ifdef GROUPING Previous Comments: ------------------------------------------------------------------------ [2009-07-10 18:45:42] j...@php.net >From http://www.gnu.org/s/libc/manual/html_node/The-Elegant-and-Fast- Way.html: " DECIMAL_POINT RADIXCHAR The same as the value returned by localeconv in the decimal_point element of the struct lconv. The name RADIXCHAR is a deprecated alias still used in Unix98. THOUSANDS_SEP THOUSEP The same as the value returned by localeconv in the thousands_sep element of the struct lconv. The name THOUSEP is a deprecated alias still used in Unix98. " For some reason these aren't handled with #ifdef's in the code.. ------------------------------------------------------------------------ [2009-07-09 15:32:20] nospam at hjcms dot de Description: ------------ -c /usr/src/packages/BUILD/php-5.3.0/ext/standard/string.c -o ext/standard/string.lo /usr/src/packages/BUILD/php-5.3.0/ext/standard/string.c: In function 'zif_nl_langinfo': /usr/src/packages/BUILD/php-5.3.0/ext/standard/string.c:592: error: duplicate case value /usr/src/packages/BUILD/php-5.3.0/ext/standard/string.c:589: error: previously used here /usr/src/packages/BUILD/php-5.3.0/ext/standard/string.c:598: error: duplicate case value /usr/src/packages/BUILD/php-5.3.0/ext/standard/string.c:595: error: previously used here gmake: *** [ext/standard/string.lo] Fehler 1 Reproduce code: --------------- #ifdef DECIMAL_POINT case DECIMAL_POINT: #endif #ifdef RADIXCHAR case RADIXCHAR: #endif #ifdef THOUSANDS_SEP case THOUSANDS_SEP: #endif #ifdef THOUSEP case THOUSEP: #endif Expected result: ---------------- case mismatch with glibc 2.10.1 rpm -qf /usr/include/langinfo.h glibc-devel-2.10.1-2009154 Actual result: -------------- grep --color=auto -e DECIMAL_POINT -e RADIXCHAR -e THOUSANDS_SEP -e THOUSEP /usr/include/langinfo.h __MON_DECIMAL_POINT, # define MON_DECIMAL_POINT __MON_DECIMAL_POINT __MON_THOUSANDS_SEP, # define MON_THOUSANDS_SEP __MON_THOUSANDS_SEP _NL_MONETARY_DECIMAL_POINT_WC, _NL_MONETARY_THOUSANDS_SEP_WC, __DECIMAL_POINT = _NL_ITEM (__LC_NUMERIC, 0), # define DECIMAL_POINT __DECIMAL_POINT RADIXCHAR = __DECIMAL_POINT, #define RADIXCHAR RADIXCHAR __THOUSANDS_SEP, # define THOUSANDS_SEP __THOUSANDS_SEP THOUSEP = __THOUSANDS_SEP, #define THOUSEP THOUSEP _NL_NUMERIC_DECIMAL_POINT_WC, _NL_NUMERIC_THOUSANDS_SEP_WC, ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=48872&edit=1