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, [],
8 Exactly version GLIBC_AUTOCONF_VERSION of Autoconf is required but you have
9 m4_defn([AC_AUTOCONF_VERSION])
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.
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 AC_PROVIDE([AS_SHELL_FN_ac_fn_c_try_cpp])dnl
38 define([AS_MESSAGE_LOG_FD],5)dnl
39 define([AS_MESSAGE_FD],6)dnl
40 dnl Ripped out of AS_INIT, which does more cruft we do not want.
41 m4_wrap([m4_divert_pop([BODY])[]])
42 m4_divert_push([BODY])[]dnl
43 dnl End of ripped out of AS_INIT.
44 # This file is generated from configure.ac by Autoconf. DO NOT EDIT!
45 define([_AC_LANG], [C])dnl
48 dnl Check for a symbol
50 AC_DEFUN([AC_CHECK_SYMBOL], [dnl
51 AC_MSG_CHECKING(for $1)
52 AC_CACHE_VAL(ac_cv_check_symbol_$1, [dnl
55 extern char *$1[]; puts(*$1);,
57 ac_cv_check_symbol_$1=yes, ac_cv_check_symbol_$1=no)])
58 if test "$ac_cv_check_symbol_$1" = yes; then
60 ac_tr_symbol=`echo $1 | tr '[a-z]' '[A-Z]'`
62 AC_DEFINE_UNQUOTED(HAVE_${ac_tr_symbol})
64 AC_MSG_RESULT($ac_cv_check_symbol_$1)])dnl
67 dnl Locate a program and check that its version is acceptable.
68 dnl AC_PROG_CHECK_VER(var, namelist, version-switch,
69 dnl [version-extract-regexp], version-glob [, do-if-fail])
70 AC_DEFUN([AC_CHECK_PROG_VER],
71 [AC_CHECK_PROGS([$1], [$2])
72 if test -z "[$]$1"; then
75 # Found it, now check the version.
76 AC_MSG_CHECKING([version of [$]$1])
78 ac_prog_version=`<<$>>$1 $3 2>&1 ifelse(<<$4>>,,,
79 <<| sed -n 's/^.*patsubst(<<$4>>,/,\/).*$/\1/p'>>)`
80 case $ac_prog_version in
81 '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
84 ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
85 *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
88 AC_MSG_RESULT([$ac_prog_version])
91 [if test $ac_verc_fail = yes; then
96 dnl These modifications are to allow for an empty cross compiler tree.
97 define([_AC_COMPILER_EXEEXT], [EXEEXT=
100 AC_DEFUN([LIBC_PROG_FOO_GNU],
101 [# Most GNU programs take a -v and spit out some text including
102 # the word 'GNU'. Some try to read stdin, so give them /dev/null.
103 if $1 -o conftest -v </dev/null 2>&1 | grep GNU > /dev/null 2>&1; then
110 AC_DEFUN([LIBC_PROG_BINUTILS],
111 [# Was a --with-binutils option given?
112 if test -n "$path_binutils"; then
113 # Make absolute; ensure a single trailing slash.
114 path_binutils=`(cd $path_binutils; pwd) | sed 's%/*$%/%'`
115 CC="$CC -B$path_binutils"
118 *fuse-ld=lld*) LDNAME=ld.lld;;
121 LD=`$CC -print-prog-name=$LDNAME`
122 AR=`$CC -print-prog-name=ar`
124 OBJCOPY=`$CC -print-prog-name=objcopy`
126 GPROF=`$CC -print-prog-name=gprof`
130 dnl Run a static link test with -nostdlib -nostartfiles.
131 dnl LIBC_TRY_LINK_STATIC([code], [action-if-true], [action-if-false])
132 AC_DEFUN([LIBC_TRY_LINK_STATIC],
133 [cat > conftest.c <<EOF
134 int _start (void) { return 0; }
135 int __start (void) { return 0; }
138 AS_IF([AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -o conftest
139 conftest.c -static -nostartfiles -nostdlib
140 1>&AS_MESSAGE_LOG_FD])],
144 dnl Test a compiler option or options with an empty input file.
145 dnl LIBC_TRY_CC_OPTION([options], [action-if-true], [action-if-false])
146 AC_DEFUN([LIBC_TRY_CC_OPTION],
147 [AS_IF([AC_TRY_COMMAND([${CC-cc} $1 -xc /dev/null -S -o /dev/null])],
150 dnl Find and source sysdeps/*/preconfigure.
151 dnl LIBC_PRECONFIGURE([$srcdir], [for])
152 AC_DEFUN([LIBC_PRECONFIGURE], [dnl
153 if frags=`ls -d $1/sysdeps/*/preconfigure 2> /dev/null`
155 AC_MSG_CHECKING($2 preconfigure fragments)
156 for frag in $frags; do
157 name=`echo "$frag" | sed 's@/[[^/]]*[$]@@;s@^.*/@@'`
158 echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
164 # These two macros are taken from GCC's config/acx.m4.
165 dnl Support the --with-pkgversion configure option.
166 dnl ACX_PKGVERSION(default-pkgversion)
167 AC_DEFUN([ACX_PKGVERSION],[
168 AC_ARG_WITH(pkgversion,
169 AS_HELP_STRING([--with-pkgversion=PKG],
170 [Use PKG in the version string in place of "$1"]),
172 yes) AC_MSG_ERROR([package version not specified]) ;;
174 *) PKGVERSION="($withval) " ;;
178 PKGVERSION_TEXI=`echo "$PKGVERSION" | sed 's/@/@@/g'`
180 AC_SUBST(PKGVERSION_TEXI)
183 dnl Support the --with-bugurl configure option.
184 dnl ACX_BUGURL(default-bugurl)
185 AC_DEFUN([ACX_BUGURL],[
187 AS_HELP_STRING([--with-bugurl=URL],
188 [Direct users to URL to report a bug]),
190 yes) AC_MSG_ERROR([bug URL not specified]) ;;
204 REPORT_BUGS_TO="<$BUGURL>"
205 REPORT_BUGS_TEXI=@uref{`echo "$BUGURL" | sed 's/@/@@/g'`}
208 AC_SUBST(REPORT_BUGS_TO)
209 AC_SUBST(REPORT_BUGS_TEXI)
212 dnl Check linker option support.
213 dnl LIBC_LINKER_FEATURE([ld_option], [cc_option], [action-if-true], [action-if-false])
214 AC_DEFUN([LIBC_LINKER_FEATURE],
215 [AC_MSG_CHECKING([for linker that supports $1])
216 libc_linker_feature=no
217 cat > conftest.c <<EOF
218 int _start (void) { return 42; }
220 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
221 $2 -nostdlib -nostartfiles
222 -fPIC -shared -o conftest.so conftest.c
223 1>&AS_MESSAGE_LOG_FD])
225 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp $2 -nostdlib \
226 -nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
227 | grep "warning: $1 ignored" > /dev/null 2>&1; then
230 libc_linker_feature=yes
234 if test $libc_linker_feature = yes; then
239 AC_MSG_RESULT($libc_linker_feature)])
241 dnl Add a makefile variable, with value set from a shell string
242 dnl (expanded by the shell inside double quotes), to config.make.
243 dnl LIBC_CONFIG_VAR(make-variable, shell-value)
244 AC_DEFUN([LIBC_CONFIG_VAR],
245 [config_vars="$config_vars
248 dnl Check that function FUNC was inlined as a builtin. The code fragment
249 dnl CODE is compiled with additional options CC_OPTION. If FUNC is
250 dnl not found in the assembly then it is assumed the compiler has support
251 dnl for this builtin and has inlined the call. If the compiler has the
252 dnl feature then ACTION-IF-TRUE is called, otherwise ACTION-IF-FALSE.
253 dnl It is up to the caller to provide a CC_OPTION that ensures the
254 dnl builtin is inlined if present.
255 dnl Warning: This may not work for some machines. For example on ARM the
256 dnl ABI dictates that some functions should not be inlined and instead
257 dnl should be provided by a compiler helper library e.g. __aeabi_memcpy.
258 dnl This is done to reduce code size.
259 dnl LIBC_COMPILER_BUILTIN([func], [code], [cc_option], [action-if-true], [action-if-false])
260 AC_DEFUN([LIBC_COMPILER_BUILTIN_INLINED],
261 [AC_MSG_CHECKING([for compiler support of inlined builtin function $1])
262 libc_compiler_builtin_inlined=no
263 cat > conftest.c <<EOF
264 int _start (void) { $2 return 0; }
266 if ! AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
267 $3 -nostdlib -nostartfiles
268 -S conftest.c -o - | grep -F "$1"
269 1>&AS_MESSAGE_LOG_FD])
271 libc_compiler_builtin_inlined=yes
274 if test $libc_compiler_builtin_inlined = yes; then
279 AC_MSG_RESULT($libc_compiler_builtin_inlined)])
281 dnl Default to slibdir named SLIBDIR instead of "lib", and rtlddir
282 dnl named RTLDDIR instead of "lib". This is used to put 64-bit
283 dnl libraries in /lib64.
284 dnl LIBC_SLIBDIR_RTLDDIR([slibdir], [rtlddir])
285 AC_DEFUN([LIBC_SLIBDIR_RTLDDIR],
286 [test -n "$libc_cv_slibdir" ||
289 libc_cv_slibdir='/$1'
290 libc_cv_rtlddir='/$2'
291 if test "$libdir" = '${exec_prefix}/lib'; then
292 libdir='${exec_prefix}/$1';
293 # Locale data can be shared between 32-bit and 64-bit libraries.
294 libc_cv_complocaledir='${exec_prefix}/lib/locale'