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