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