mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-24 06:56:40 +00:00
Restrict *-uclibc,* canadians to gettext 0.20
Newer gettext is incompatible with uClibc-NG in cross-compilation, see the comment in the code. Signed-off-by: Alexey Neyman <stilor@att.net>
This commit is contained in:
parent
a59503c872
commit
c6ff1eca5b
@ -1 +1,11 @@
|
|||||||
# gettext options
|
# gettext options
|
||||||
|
|
||||||
|
config GETTEXT_INCOMPATIBLE_WITH_UCLIBC_NG
|
||||||
|
def_bool y
|
||||||
|
depends on GETTEXT_0_21_or_later
|
||||||
|
|
||||||
|
if GETTEXT_INCOMPATIBLE_WITH_UCLIBC_NG
|
||||||
|
comment "This version of gettext is not compatible with uClibc-NG. Select"
|
||||||
|
comment "a different version if uClibc-NG is used on the target or (in a"
|
||||||
|
comment "Canadian cross build) on the host."
|
||||||
|
endif
|
||||||
|
@ -5,3 +5,4 @@ bootstrap='./autogen.sh'
|
|||||||
mirrors='$(CT_Mirrors GNU gettext)'
|
mirrors='$(CT_Mirrors GNU gettext)'
|
||||||
archive_formats='.tar.xz .tar.gz'
|
archive_formats='.tar.xz .tar.gz'
|
||||||
signature_format='packed/.sig'
|
signature_format='packed/.sig'
|
||||||
|
milestones='0.21'
|
||||||
|
@ -4,3 +4,4 @@ CT_CANADIAN=y
|
|||||||
CT_HOST="powerpc-unknown-linux-uclibc"
|
CT_HOST="powerpc-unknown-linux-uclibc"
|
||||||
CT_KERNEL_LINUX=y
|
CT_KERNEL_LINUX=y
|
||||||
CT_THREADS_LT=y
|
CT_THREADS_LT=y
|
||||||
|
CT_GETTEXT_V_0_20_1=y
|
||||||
|
@ -6,6 +6,7 @@ CT_HOST="x86_64-multilib-linux-uclibc"
|
|||||||
CT_BINUTILS_PLUGINS=y
|
CT_BINUTILS_PLUGINS=y
|
||||||
CT_CC_LANG_CXX=y
|
CT_CC_LANG_CXX=y
|
||||||
CT_DEBUG_GDB=y
|
CT_DEBUG_GDB=y
|
||||||
|
CT_GETTEXT_V_0_20_1=y
|
||||||
CT_COMP_TOOLS_FOR_HOST=y
|
CT_COMP_TOOLS_FOR_HOST=y
|
||||||
CT_COMP_TOOLS_M4=y
|
CT_COMP_TOOLS_M4=y
|
||||||
CT_COMP_TOOLS_MAKE=y
|
CT_COMP_TOOLS_MAKE=y
|
||||||
|
@ -80,6 +80,28 @@ do_gettext_backend() {
|
|||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
# Starting with 0.21, gettext cannot build against uClibc-NG: gettext
|
||||||
|
# checks if it needs to use fopen wrapper (using gnulib) and newer versions
|
||||||
|
# of gnulib also check if fopen provided by the system supports 'e' and 'x'
|
||||||
|
# modes. In cross-compile environment, gnulib falls back to assuming fopen
|
||||||
|
# does not support these modes unless the target tuple is glibc or musl
|
||||||
|
# (rightly so, since these fopen modes are optional in uClibc-NG).
|
||||||
|
# Unfortunately, the fopen() wrapper does not compile against uClibc-NG's
|
||||||
|
# stdio.h then because it includes <stdio.h> after defining __need_FILE macro.
|
||||||
|
# It looks like two bugs, one in each of uClibc-ng and gnulib:
|
||||||
|
# - uClibc-ng does not include its internal headers with the definitions for the
|
||||||
|
# __BEGIN_NAMESPACE_STD/__END_NAMESPACE_STD macros, which therefore escape
|
||||||
|
# unsubstituted into the including code.
|
||||||
|
# - gnulib shouldn't expect the fopen() prototype if it only asked for FILE
|
||||||
|
# structure definition by defining the __need_FILE macro.
|
||||||
|
# Until the maintainers sort this out, disallow newer gettext versions if
|
||||||
|
# linking against uClibc-NG.
|
||||||
|
*-uclibc*)
|
||||||
|
if [ "${CT_GETTEXT_INCOMPATIBLE_WITH_UCLIBC_NG}" = "y" ]; then
|
||||||
|
CT_Abort "This version of gettext is incompatible with uClibc-NG"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
# A bit ugly. D__USE_MINGW_ANSI_STDIO=1 has its own {v}asprintf functions
|
# A bit ugly. D__USE_MINGW_ANSI_STDIO=1 has its own {v}asprintf functions
|
||||||
# but gettext configure doesn't see this flag when it checks for that. An
|
# but gettext configure doesn't see this flag when it checks for that. An
|
||||||
# alternative may be to use CC="${host}-gcc ${cflags}" but that didn't
|
# alternative may be to use CC="${host}-gcc ${cflags}" but that didn't
|
||||||
|
Loading…
Reference in New Issue
Block a user