On arm64, the bash gettext configure test causes binutils to segv:
configure:8453: gcc -o conftest -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror= format-security -Wall -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -static conftest.c >&5 conftest.c: In function 'main': conftest.c:116:8: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_domain_bindings ^ conftest.c:116:29: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_domain_bindings ^ collect2: error: ld terminated with signal 11 [Segmentation fault], core dumped configure:8453: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "bash" | #define PACKAGE_TARNAME "bash" | #define PACKAGE_VERSION "4.3-release" | #define PACKAGE_STRING "bash 4.3-release" | #define PACKAGE_BUGREPORT "<email address hidden>" | #define PACKAGE_URL "" | #define ALIAS 1 | #define PUSHD_AND_POPD 1 | #define RESTRICTED_SHELL 1 | #define PROCESS_SUBSTITUTION 1 | #define PROMPT_STRING_DECODE 1 | #define SELECT_COMMAND 1 | #define HELP_BUILTIN 1 | #define ARRAY_VARS 1 | #define DPAREN_ARITHMETIC 1 | #define BRACE_EXPANSION 1 | #define COMMAND_TIMING 1 | #define EXTENDED_GLOB 1 | #define EXTGLOB_DEFAULT 0 | #define COND_COMMAND 1 | #define COND_REGEXP 1 | #define COPROCESS_SUPPORT 1 | #define ARITH_FOR_COMMAND 1 | #define NETWORK_REDIRECTIONS 1 | #define PROGRAMMABLE_COMPLETION 1 | #define DEBUGGER 1 | #define CASEMOD_ATTRS 1 | #define CASEMOD_EXPANSIONS 1 | #define GLOBASCII_DEFAULT 0 | #define MEMSCRAMBLE 1 | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define __EXTENSIONS__ 1 | #define _ALL_SOURCE 1 | #define _GNU_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define _TANDEM_SOURCE 1 | #define READLINE 1 | #define HISTORY 1 | #define BANG_HISTORY 1 | #define _GNU_SOURCE 1 | #define HAVE_STRINGIZE 1 | #define HAVE_LONG_DOUBLE_WIDER 1 | #define HAVE_LONG_DOUBLE 1 | #define PROTOTYPES 1 | #define __PROTOTYPES 1 | #define restrict __restrict | #define HAVE_ALLOCA_H 1 | #define HAVE_ALLOCA 1 | #define HAVE_STDLIB_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_GETPAGESIZE 1 | #define HAVE_MMAP 1 | #define INTDIV0_RAISES_SIGFPE 0 | #define HAVE_INTTYPES_H_WITH_UINTMAX 1 | #define HAVE_STDINT_H_WITH_UINTMAX 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_ARGZ_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LOCALE_H 1 | #define HAVE_NL_TYPES_H 1 | #define HAVE_MALLOC_H 1 | #define HAVE_STDDEF_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_FEOF_UNLOCKED 1 | #define HAVE_FGETS_UNLOCKED 1 | #define HAVE_GETC_UNLOCKED 1 | #define HAVE_GETCWD 1 | #define HAVE_GETEGID 1 | #define HAVE_GETEUID 1 | #define HAVE_GETGID 1 | #define HAVE_GETUID 1 | #define HAVE_MEMPCPY 1 | #define HAVE_MUNMAP 1 | #define HAVE_PUTENV 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_LOCALECONV 1 | #define HAVE_STPCPY 1 | #define HAVE_STRCASECMP 1 | #define HAVE_STRDUP 1 | #define HAVE_STRTOUL 1 | #define HAVE_TSEARCH 1 | #define HAVE___ARGZ_COUNT 1 | #define HAVE___ARGZ_STRINGIFY 1 | #define HAVE___ARGZ_NEXT 1 | #define HAVE___FSETLOCKING 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_LANGINFO_CODESET 1 | #define HAVE_LC_MESSAGES 1 | /* end confdefs.h. */ | #include <libintl.h> | extern int _nl_msg_cat_cntr; | extern int *_nl_domain_bindings; | int | main () | { | bindtextdomain ("", ""); | return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_domain_bindings | ; | return 0; | } configure:8461: result: no
On arm64, the bash gettext configure test causes binutils to segv:
configure:8453: gcc -o conftest -g -O2 -fstack-protector --param= ssp-buffer- size=4 -Wformat -Werror= functions -Wl,-z,relro -static conftest.c to-int- cast] bindings to-int- cast] bindings
^ SUBSTITUTION 1 STRING_ DECODE 1 REDIRECTIONS 1 COMPLETION 1 PTHREAD_ SEMANTICS 1 DOUBLE_ WIDER 1 RAISES_ SIGFPE 0 H_WITH_ UINTMAX 1 H_WITH_ UINTMAX 1 LONG_LONG 1 ARGZ_STRINGIFY 1 CODESET 1 bindings; bindings
format-security -Wall -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-
>&5
conftest.c: In function 'main':
conftest.c:116:8: warning: cast from pointer to integer of different size [-Wpointer-
return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_domain_
^
conftest.c:116:29: warning: cast from pointer to integer of different size [-Wpointer-
return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_domain_
collect2: error: ld terminated with signal 11 [Segmentation fault], core dumped
configure:8453: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "bash"
| #define PACKAGE_TARNAME "bash"
| #define PACKAGE_VERSION "4.3-release"
| #define PACKAGE_STRING "bash 4.3-release"
| #define PACKAGE_BUGREPORT "<email address hidden>"
| #define PACKAGE_URL ""
| #define ALIAS 1
| #define PUSHD_AND_POPD 1
| #define RESTRICTED_SHELL 1
| #define PROCESS_
| #define PROMPT_
| #define SELECT_COMMAND 1
| #define HELP_BUILTIN 1
| #define ARRAY_VARS 1
| #define DPAREN_ARITHMETIC 1
| #define BRACE_EXPANSION 1
| #define COMMAND_TIMING 1
| #define EXTENDED_GLOB 1
| #define EXTGLOB_DEFAULT 0
| #define COND_COMMAND 1
| #define COND_REGEXP 1
| #define COPROCESS_SUPPORT 1
| #define ARITH_FOR_COMMAND 1
| #define NETWORK_
| #define PROGRAMMABLE_
| #define DEBUGGER 1
| #define CASEMOD_ATTRS 1
| #define CASEMOD_EXPANSIONS 1
| #define GLOBASCII_DEFAULT 0
| #define MEMSCRAMBLE 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_
| #define _TANDEM_SOURCE 1
| #define READLINE 1
| #define HISTORY 1
| #define BANG_HISTORY 1
| #define _GNU_SOURCE 1
| #define HAVE_STRINGIZE 1
| #define HAVE_LONG_
| #define HAVE_LONG_DOUBLE 1
| #define PROTOTYPES 1
| #define __PROTOTYPES 1
| #define restrict __restrict
| #define HAVE_ALLOCA_H 1
| #define HAVE_ALLOCA 1
| #define HAVE_STDLIB_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_GETPAGESIZE 1
| #define HAVE_MMAP 1
| #define INTDIV0_
| #define HAVE_INTTYPES_
| #define HAVE_STDINT_
| #define HAVE_UNSIGNED_
| #define HAVE_UINTMAX_T 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_ARGZ_H 1
| #define HAVE_LIMITS_H 1
| #define HAVE_LOCALE_H 1
| #define HAVE_NL_TYPES_H 1
| #define HAVE_MALLOC_H 1
| #define HAVE_STDDEF_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_FEOF_UNLOCKED 1
| #define HAVE_FGETS_UNLOCKED 1
| #define HAVE_GETC_UNLOCKED 1
| #define HAVE_GETCWD 1
| #define HAVE_GETEGID 1
| #define HAVE_GETEUID 1
| #define HAVE_GETGID 1
| #define HAVE_GETUID 1
| #define HAVE_MEMPCPY 1
| #define HAVE_MUNMAP 1
| #define HAVE_PUTENV 1
| #define HAVE_SETENV 1
| #define HAVE_SETLOCALE 1
| #define HAVE_LOCALECONV 1
| #define HAVE_STPCPY 1
| #define HAVE_STRCASECMP 1
| #define HAVE_STRDUP 1
| #define HAVE_STRTOUL 1
| #define HAVE_TSEARCH 1
| #define HAVE___ARGZ_COUNT 1
| #define HAVE___
| #define HAVE___ARGZ_NEXT 1
| #define HAVE___FSETLOCKING 1
| #define HAVE_ICONV 1
| #define ICONV_CONST
| #define HAVE_LANGINFO_
| #define HAVE_LC_MESSAGES 1
| /* end confdefs.h. */
| #include <libintl.h>
| extern int _nl_msg_cat_cntr;
| extern int *_nl_domain_
| int
| main ()
| {
| bindtextdomain ("", "");
| return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_domain_
| ;
| return 0;
| }
configure:8461: result: no