xf.li | bdd93d5 | 2023-05-12 07:10:14 -0700 | [diff] [blame] | 1 | dnl We require that everyone use exactly the same Autoconf version so that |
| 2 | dnl the internal functions defined and used by the main configure script |
| 3 | dnl match those expected by the fragments. When changing this version, |
| 4 | dnl install.texi also needs to be updated. |
| 5 | m4_define([GLIBC_AUTOCONF_VERSION], [2.69]) |
| 6 | m4_if(m4_defn([AC_AUTOCONF_VERSION]), GLIBC_AUTOCONF_VERSION, [], |
| 7 | [m4_fatal(m4_flatten( |
| 8 | Exactly version GLIBC_AUTOCONF_VERSION of Autoconf is required but you have |
| 9 | m4_defn([AC_AUTOCONF_VERSION]) |
| 10 | ), [63])])dnl |
| 11 | dnl |
| 12 | dnl We define the macro GLIBC_PROVIDES to do an AC_PROVIDE for each macro |
| 13 | dnl which appears in configure.ac before the sysdep configure scripts are run. |
| 14 | dnl Each sysdep configure.ac does GLIBC_PROVIDES first, to avoid any |
| 15 | dnl AC_REQUIREs or AC_BEFOREs duplicating their code. |
| 16 | dnl |
| 17 | define([GLIBC_PROVIDES], [dnl |
| 18 | AC_PROVIDE([AC_CONFIG_AUX_DIR_DEFAULT])dnl |
| 19 | AC_PROVIDE([AC_CONFIG_SUBDIRS])dnl |
| 20 | AC_PROVIDE([_AS_ECHO_N_PREPARE])dnl |
| 21 | AC_PROVIDE([_AS_ECHO_PREPARE])dnl |
| 22 | AC_PROVIDE([_AS_CR_PREPARE])dnl |
| 23 | AC_PROVIDE([_AS_TR_SH_PREPARE])dnl |
| 24 | AC_PROVIDE([_AS_VAR_ARITH_PREPARE])dnl |
| 25 | AC_PROVIDE([AC_PROG_INSTALL])dnl |
| 26 | AC_PROVIDE([AC_PROG_CC])dnl |
| 27 | AC_PROVIDE([AC_PROG_CPP])dnl |
| 28 | AC_PROVIDE([_AS_PATH_SEPARATOR_PREPARE])dnl |
| 29 | AC_PROVIDE([_AS_TEST_PREPARE])dnl |
| 30 | AC_PROVIDE([_AS_BASENAME_PREPARE])dnl |
| 31 | AC_PROVIDE([_AS_ME_PREPARE])dnl |
| 32 | AC_PROVIDE([_AS_LINENO_PREPARE])dnl |
| 33 | AC_PROVIDE([AS_SHELL_FN_as_fn_set_status])dnl |
| 34 | AC_PROVIDE([AS_SHELL_FN_as_fn_exit])dnl |
| 35 | AC_PROVIDE([AS_SHELL_FN_as_fn_arith])dnl |
| 36 | AC_PROVIDE([AS_SHELL_FN_ac_fn_c_try_compile])dnl |
| 37 | define([AS_MESSAGE_LOG_FD],5)dnl |
| 38 | define([AS_MESSAGE_FD],6)dnl |
| 39 | dnl Ripped out of AS_INIT, which does more cruft we do not want. |
| 40 | m4_wrap([m4_divert_pop([BODY])[]]) |
| 41 | m4_divert_push([BODY])[]dnl |
| 42 | dnl End of ripped out of AS_INIT. |
| 43 | # This file is generated from configure.ac by Autoconf. DO NOT EDIT! |
| 44 | define([_AC_LANG], [C])dnl |
| 45 | ])dnl |
| 46 | dnl |
| 47 | dnl Check for a symbol |
| 48 | dnl |
| 49 | AC_DEFUN([AC_CHECK_SYMBOL], [dnl |
| 50 | AC_MSG_CHECKING(for $1) |
| 51 | AC_CACHE_VAL(ac_cv_check_symbol_$1, [dnl |
| 52 | AC_TRY_LINK(, |
| 53 | changequote(,)dnl |
| 54 | extern char *$1[]; puts(*$1);, |
| 55 | changequote([,])dnl |
| 56 | ac_cv_check_symbol_$1=yes, ac_cv_check_symbol_$1=no)]) |
| 57 | if test "$ac_cv_check_symbol_$1" = yes; then |
| 58 | changequote(,)dnl |
| 59 | ac_tr_symbol=`echo $1 | tr '[a-z]' '[A-Z]'` |
| 60 | changequote([,])dnl |
| 61 | AC_DEFINE_UNQUOTED(HAVE_${ac_tr_symbol}) |
| 62 | fi |
| 63 | AC_MSG_RESULT($ac_cv_check_symbol_$1)])dnl |
| 64 | dnl |
| 65 | |
| 66 | dnl Locate a program and check that its version is acceptable. |
| 67 | dnl AC_PROG_CHECK_VER(var, namelist, version-switch, |
| 68 | dnl [version-extract-regexp], version-glob [, do-if-fail]) |
| 69 | AC_DEFUN([AC_CHECK_PROG_VER], |
| 70 | [AC_CHECK_PROGS([$1], [$2]) |
| 71 | if test -z "[$]$1"; then |
| 72 | ac_verc_fail=yes |
| 73 | else |
| 74 | # Found it, now check the version. |
| 75 | AC_MSG_CHECKING([version of [$]$1]) |
| 76 | changequote(<<,>>)dnl |
| 77 | ac_prog_version=`<<$>>$1 $3 2>&1 ifelse(<<$4>>,,, |
| 78 | <<| sed -n 's/^.*patsubst(<<$4>>,/,\/).*$/\1/p'>>)` |
| 79 | case $ac_prog_version in |
| 80 | '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; |
| 81 | <<$5>>) |
| 82 | changequote([,])dnl |
| 83 | ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; |
| 84 | *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; |
| 85 | |
| 86 | esac |
| 87 | AC_MSG_RESULT([$ac_prog_version]) |
| 88 | fi |
| 89 | ifelse([$6],,, |
| 90 | [if test $ac_verc_fail = yes; then |
| 91 | $6 |
| 92 | fi]) |
| 93 | ]) |
| 94 | |
| 95 | dnl These modifications are to allow for an empty cross compiler tree. |
| 96 | define([_AC_COMPILER_EXEEXT], [EXEEXT= |
| 97 | ]) |
| 98 | |
| 99 | AC_DEFUN([LIBC_PROG_FOO_GNU], |
| 100 | [# Most GNU programs take a -v and spit out some text including |
| 101 | # the word 'GNU'. Some try to read stdin, so give them /dev/null. |
| 102 | if $1 -o conftest -v </dev/null 2>&1 | grep GNU > /dev/null 2>&1; then |
| 103 | $2 |
| 104 | else |
| 105 | $3 |
| 106 | fi |
| 107 | rm -fr contest*]) |
| 108 | |
| 109 | AC_DEFUN([LIBC_PROG_BINUTILS], |
| 110 | [# Was a --with-binutils option given? |
| 111 | if test -n "$path_binutils"; then |
| 112 | # Make absolute; ensure a single trailing slash. |
| 113 | path_binutils=`(cd $path_binutils; pwd) | sed 's%/*$%/%'` |
| 114 | CC="$CC -B$path_binutils" |
| 115 | fi |
| 116 | AS=`$CC -print-prog-name=as` |
| 117 | LD=`$CC -print-prog-name=ld` |
| 118 | AR=`$CC -print-prog-name=ar` |
| 119 | AC_SUBST(AR) |
| 120 | OBJDUMP=`$CC -print-prog-name=objdump` |
| 121 | AC_SUBST(OBJDUMP) |
| 122 | OBJCOPY=`$CC -print-prog-name=objcopy` |
| 123 | AC_SUBST(OBJCOPY) |
| 124 | |
| 125 | # Determine whether we are using GNU binutils. |
| 126 | AC_CACHE_CHECK(whether $AS is GNU as, libc_cv_prog_as_gnu, |
| 127 | [LIBC_PROG_FOO_GNU($AS, libc_cv_prog_as_gnu=yes, libc_cv_prog_as_gnu=no)]) |
| 128 | rm -f a.out |
| 129 | gnu_as=$libc_cv_prog_as_gnu |
| 130 | |
| 131 | AC_CACHE_CHECK(whether $LD is GNU ld, libc_cv_prog_ld_gnu, |
| 132 | [LIBC_PROG_FOO_GNU($LD, libc_cv_prog_ld_gnu=yes, libc_cv_prog_ld_gnu=no)]) |
| 133 | gnu_ld=$libc_cv_prog_ld_gnu |
| 134 | ]) |
| 135 | |
| 136 | dnl Run a static link test with -nostdlib -nostartfiles. |
| 137 | dnl LIBC_TRY_LINK_STATIC([code], [action-if-true], [action-if-false]) |
| 138 | AC_DEFUN([LIBC_TRY_LINK_STATIC], |
| 139 | [cat > conftest.c <<EOF |
| 140 | int _start (void) { return 0; } |
| 141 | int __start (void) { return 0; } |
| 142 | $1 |
| 143 | EOF |
| 144 | AS_IF([AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest |
| 145 | conftest.c -static -nostartfiles -nostdlib |
| 146 | 1>&AS_MESSAGE_LOG_FD])], |
| 147 | [$2], [$3]) |
| 148 | rm -f conftest*]) |
| 149 | |
| 150 | dnl Test a compiler option or options with an empty input file. |
| 151 | dnl LIBC_TRY_CC_OPTION([options], [action-if-true], [action-if-false]) |
| 152 | AC_DEFUN([LIBC_TRY_CC_OPTION], |
| 153 | [AS_IF([AC_TRY_COMMAND([${CC-cc} $1 -xc /dev/null -S -o /dev/null])], |
| 154 | [$2], [$3])]) |
| 155 | |
| 156 | dnl Find and source sysdeps/*/preconfigure. |
| 157 | dnl LIBC_PRECONFIGURE([$srcdir], [for]) |
| 158 | AC_DEFUN([LIBC_PRECONFIGURE], [dnl |
| 159 | if frags=`ls -d $1/sysdeps/*/preconfigure 2> /dev/null` |
| 160 | then |
| 161 | AC_MSG_CHECKING($2 preconfigure fragments) |
| 162 | for frag in $frags; do |
| 163 | name=`echo "$frag" | sed 's@/[[^/]]*[$]@@;s@^.*/@@'` |
| 164 | echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD |
| 165 | . "$frag" |
| 166 | done |
| 167 | AC_MSG_RESULT() |
| 168 | fi]) |
| 169 | |
| 170 | # These two macros are taken from GCC's config/acx.m4. |
| 171 | dnl Support the --with-pkgversion configure option. |
| 172 | dnl ACX_PKGVERSION(default-pkgversion) |
| 173 | AC_DEFUN([ACX_PKGVERSION],[ |
| 174 | AC_ARG_WITH(pkgversion, |
| 175 | AS_HELP_STRING([--with-pkgversion=PKG], |
| 176 | [Use PKG in the version string in place of "$1"]), |
| 177 | [case "$withval" in |
| 178 | yes) AC_MSG_ERROR([package version not specified]) ;; |
| 179 | no) PKGVERSION= ;; |
| 180 | *) PKGVERSION="($withval) " ;; |
| 181 | esac], |
| 182 | PKGVERSION="($1) " |
| 183 | ) |
| 184 | PKGVERSION_TEXI=`echo "$PKGVERSION" | sed 's/@/@@/g'` |
| 185 | AC_SUBST(PKGVERSION) |
| 186 | AC_SUBST(PKGVERSION_TEXI) |
| 187 | ]) |
| 188 | |
| 189 | dnl Support the --with-bugurl configure option. |
| 190 | dnl ACX_BUGURL(default-bugurl) |
| 191 | AC_DEFUN([ACX_BUGURL],[ |
| 192 | AC_ARG_WITH(bugurl, |
| 193 | AS_HELP_STRING([--with-bugurl=URL], |
| 194 | [Direct users to URL to report a bug]), |
| 195 | [case "$withval" in |
| 196 | yes) AC_MSG_ERROR([bug URL not specified]) ;; |
| 197 | no) BUGURL= |
| 198 | ;; |
| 199 | *) BUGURL="$withval" |
| 200 | ;; |
| 201 | esac], |
| 202 | BUGURL="$1" |
| 203 | ) |
| 204 | case ${BUGURL} in |
| 205 | "") |
| 206 | REPORT_BUGS_TO= |
| 207 | REPORT_BUGS_TEXI= |
| 208 | ;; |
| 209 | *) |
| 210 | REPORT_BUGS_TO="<$BUGURL>" |
| 211 | REPORT_BUGS_TEXI=@uref{`echo "$BUGURL" | sed 's/@/@@/g'`} |
| 212 | ;; |
| 213 | esac; |
| 214 | AC_SUBST(REPORT_BUGS_TO) |
| 215 | AC_SUBST(REPORT_BUGS_TEXI) |
| 216 | ]) |
| 217 | |
| 218 | dnl Check linker option support. |
| 219 | dnl LIBC_LINKER_FEATURE([ld_option], [cc_option], [action-if-true], [action-if-false]) |
| 220 | AC_DEFUN([LIBC_LINKER_FEATURE], |
| 221 | [AC_MSG_CHECKING([for linker that supports $1]) |
| 222 | libc_linker_feature=no |
| 223 | if test x"$gnu_ld" = x"yes"; then |
| 224 | libc_linker_check=`$LD -v --help 2>/dev/null | grep "\$1"` |
| 225 | if test -n "$libc_linker_check"; then |
| 226 | cat > conftest.c <<EOF |
| 227 | int _start (void) { return 42; } |
| 228 | EOF |
| 229 | if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS |
| 230 | $2 -nostdlib -nostartfiles |
| 231 | -fPIC -shared -o conftest.so conftest.c |
| 232 | 1>&AS_MESSAGE_LOG_FD]) |
| 233 | then |
| 234 | libc_linker_feature=yes |
| 235 | fi |
| 236 | rm -f conftest* |
| 237 | fi |
| 238 | fi |
| 239 | if test $libc_linker_feature = yes; then |
| 240 | $3 |
| 241 | else |
| 242 | $4 |
| 243 | fi |
| 244 | AC_MSG_RESULT($libc_linker_feature)]) |
| 245 | |
| 246 | dnl Add a makefile variable, with value set from a shell string |
| 247 | dnl (expanded by the shell inside double quotes), to config.make. |
| 248 | dnl LIBC_CONFIG_VAR(make-variable, shell-value) |
| 249 | AC_DEFUN([LIBC_CONFIG_VAR], |
| 250 | [config_vars="$config_vars |
| 251 | $1 = $2"]) |
| 252 | |
| 253 | dnl Check that function FUNC was inlined as a builtin. The code fragment |
| 254 | dnl CODE is compiled with additional options CC_OPTION. If FUNC is |
| 255 | dnl not found in the assembly then it is assumed the compiler has support |
| 256 | dnl for this builtin and has inlined the call. If the compiler has the |
| 257 | dnl feature then ACTION-IF-TRUE is called, otherwise ACTION-IF-FALSE. |
| 258 | dnl It is up to the caller to provide a CC_OPTION that ensures the |
| 259 | dnl builtin is inlined if present. |
| 260 | dnl Warning: This may not work for some machines. For example on ARM the |
| 261 | dnl ABI dictates that some functions should not be inlined and instead |
| 262 | dnl should be provided by a compiler helper library e.g. __aeabi_memcpy. |
| 263 | dnl This is done to reduce code size. |
| 264 | dnl LIBC_COMPILER_BUILTIN([func], [code], [cc_option], [action-if-true], [action-if-false]) |
| 265 | AC_DEFUN([LIBC_COMPILER_BUILTIN_INLINED], |
| 266 | [AC_MSG_CHECKING([for compiler support of inlined builtin function $1]) |
| 267 | libc_compiler_builtin_inlined=no |
| 268 | cat > conftest.c <<EOF |
| 269 | int _start (void) { $2 return 0; } |
| 270 | EOF |
| 271 | if ! AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS |
| 272 | $3 -nostdlib -nostartfiles |
| 273 | -S conftest.c -o - | fgrep "$1" |
| 274 | 1>&AS_MESSAGE_LOG_FD]) |
| 275 | then |
| 276 | libc_compiler_builtin_inlined=yes |
| 277 | fi |
| 278 | rm -f conftest* |
| 279 | if test $libc_compiler_builtin_inlined = yes; then |
| 280 | $4 |
| 281 | else |
| 282 | $5 |
| 283 | fi |
| 284 | AC_MSG_RESULT($libc_compiler_builtin_inlined)]) |
| 285 | |
| 286 | dnl Default to slibdir named SLIBDIR instead of "lib", and rtlddir |
| 287 | dnl named RTLDDIR instead of "lib". This is used to put 64-bit |
| 288 | dnl libraries in /lib64. |
| 289 | dnl LIBC_SLIBDIR_RTLDDIR([slibdir], [rtlddir]) |
| 290 | AC_DEFUN([LIBC_SLIBDIR_RTLDDIR], |
| 291 | [test -n "$libc_cv_slibdir" || |
| 292 | case "$prefix" in |
| 293 | /usr | /usr/) |
| 294 | libc_cv_slibdir=/$1 |
| 295 | libc_cv_rtlddir=/$2 |
| 296 | if test "$libdir" = '${exec_prefix}/lib'; then |
| 297 | libdir='${exec_prefix}/$1'; |
| 298 | # Locale data can be shared between 32-bit and 64-bit libraries. |
| 299 | libc_cv_complocaledir='${exec_prefix}/lib/locale' |
| 300 | fi |
| 301 | ;; |
| 302 | esac]) |