powerpc64: Remove old strncmp optimization
[glibc.git] / aclocal.m4
blob531b11cb6988bbc9351d5cbd73a10725add57cd7
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 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
46 ])dnl
47 dnl
48 dnl Check for a symbol
49 dnl
50 AC_DEFUN([AC_CHECK_SYMBOL], [dnl
51 AC_MSG_CHECKING(for $1)
52 AC_CACHE_VAL(ac_cv_check_symbol_$1, [dnl
53 AC_TRY_LINK(,
54 changequote(,)dnl
55 extern char *$1[]; puts(*$1);,
56 changequote([,])dnl
57             ac_cv_check_symbol_$1=yes, ac_cv_check_symbol_$1=no)])
58 if test "$ac_cv_check_symbol_$1" = yes; then
59 changequote(,)dnl
60   ac_tr_symbol=`echo $1 | tr '[a-z]' '[A-Z]'`
61 changequote([,])dnl
62   AC_DEFINE_UNQUOTED(HAVE_${ac_tr_symbol})
64 AC_MSG_RESULT($ac_cv_check_symbol_$1)])dnl
65 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
73   ac_verc_fail=yes
74 else
75   # Found it, now check the version.
76   AC_MSG_CHECKING([version of [$]$1])
77 changequote(<<,>>)dnl
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;;
82     <<$5>>)
83 changequote([,])dnl
84        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
85     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
87   esac
88   AC_MSG_RESULT([$ac_prog_version])
90 ifelse([$6],,,
91 [if test $ac_verc_fail = yes; then
92   $6
93 fi])
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
104   $2
105 else
106   $3
108 rm -fr contest*])
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"
117 case "$CC" in
118     *fuse-ld=lld*) LDNAME=ld.lld;;
119     *)             LDNAME=ld;;
120 esac
121 AS=`$CC -print-prog-name=as`
122 LD=`$CC -print-prog-name=$LDNAME`
123 AR=`$CC -print-prog-name=ar`
124 AC_SUBST(AR)
125 OBJCOPY=`$CC -print-prog-name=objcopy`
126 AC_SUBST(OBJCOPY)
127 GPROF=`$CC -print-prog-name=gprof`
128 AC_SUBST(GPROF)
130 # Determine whether we are using GNU binutils.
131 AC_CACHE_CHECK(whether $AS is GNU as, libc_cv_prog_as_gnu,
132 [LIBC_PROG_FOO_GNU($AS, libc_cv_prog_as_gnu=yes, libc_cv_prog_as_gnu=no)])
133 rm -f a.out
134 gnu_as=$libc_cv_prog_as_gnu
136 AC_CACHE_CHECK(whether $LD is GNU ld, libc_cv_prog_ld_gnu,
137 [LIBC_PROG_FOO_GNU($LD, libc_cv_prog_ld_gnu=yes, libc_cv_prog_ld_gnu=no)])
138 gnu_ld=$libc_cv_prog_ld_gnu
141 dnl Run a static link test with -nostdlib -nostartfiles.
142 dnl LIBC_TRY_LINK_STATIC([code], [action-if-true], [action-if-false])
143 AC_DEFUN([LIBC_TRY_LINK_STATIC],
144 [cat > conftest.c <<EOF
145 int _start (void) { return 0; }
146 int __start (void) { return 0; }
149 AS_IF([AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -o conftest
150                        conftest.c -static -nostartfiles -nostdlib
151                        1>&AS_MESSAGE_LOG_FD])],
152       [$2], [$3])
153 rm -f conftest*])
155 dnl Test a compiler option or options with an empty input file.
156 dnl LIBC_TRY_CC_OPTION([options], [action-if-true], [action-if-false])
157 AC_DEFUN([LIBC_TRY_CC_OPTION],
158 [AS_IF([AC_TRY_COMMAND([${CC-cc} $1 -xc /dev/null -S -o /dev/null])],
159         [$2], [$3])])
161 dnl Find and source sysdeps/*/preconfigure.
162 dnl LIBC_PRECONFIGURE([$srcdir], [for])
163 AC_DEFUN([LIBC_PRECONFIGURE], [dnl
164 if frags=`ls -d $1/sysdeps/*/preconfigure 2> /dev/null`
165 then
166   AC_MSG_CHECKING($2 preconfigure fragments)
167   for frag in $frags; do
168     name=`echo "$frag" | sed 's@/[[^/]]*[$]@@;s@^.*/@@'`
169     echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
170     . "$frag"
171   done
172   AC_MSG_RESULT()
173 fi])
175 # These two macros are taken from GCC's config/acx.m4.
176 dnl Support the --with-pkgversion configure option.
177 dnl ACX_PKGVERSION(default-pkgversion)
178 AC_DEFUN([ACX_PKGVERSION],[
179   AC_ARG_WITH(pkgversion,
180     AS_HELP_STRING([--with-pkgversion=PKG],
181                    [Use PKG in the version string in place of "$1"]),
182     [case "$withval" in
183       yes) AC_MSG_ERROR([package version not specified]) ;;
184       no)  PKGVERSION= ;;
185       *)   PKGVERSION="($withval) " ;;
186      esac],
187     PKGVERSION="($1) "
188   )
189   PKGVERSION_TEXI=`echo "$PKGVERSION" | sed 's/@/@@/g'`
190   AC_SUBST(PKGVERSION)
191   AC_SUBST(PKGVERSION_TEXI)
194 dnl Support the --with-bugurl configure option.
195 dnl ACX_BUGURL(default-bugurl)
196 AC_DEFUN([ACX_BUGURL],[
197   AC_ARG_WITH(bugurl,
198     AS_HELP_STRING([--with-bugurl=URL],
199                    [Direct users to URL to report a bug]),
200     [case "$withval" in
201       yes) AC_MSG_ERROR([bug URL not specified]) ;;
202       no)  BUGURL=
203            ;;
204       *)   BUGURL="$withval"
205            ;;
206      esac],
207      BUGURL="$1"
208   )
209   case ${BUGURL} in
210   "")
211     REPORT_BUGS_TO=
212     REPORT_BUGS_TEXI=
213     ;;
214   *)
215     REPORT_BUGS_TO="<$BUGURL>"
216     REPORT_BUGS_TEXI=@uref{`echo "$BUGURL" | sed 's/@/@@/g'`}
217     ;;
218   esac;
219   AC_SUBST(REPORT_BUGS_TO)
220   AC_SUBST(REPORT_BUGS_TEXI)
223 dnl Check linker option support.
224 dnl LIBC_LINKER_FEATURE([ld_option], [cc_option], [action-if-true], [action-if-false])
225 AC_DEFUN([LIBC_LINKER_FEATURE],
226 [AC_MSG_CHECKING([for linker that supports $1])
227 libc_linker_feature=no
228 if test x"$gnu_ld" = x"yes"; then
229   cat > conftest.c <<EOF
230 int _start (void) { return 42; }
232   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
233                     $2 -nostdlib -nostartfiles
234                     -fPIC -shared -o conftest.so conftest.c
235                     1>&AS_MESSAGE_LOG_FD])
236   then
237     if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp $2 -nostdlib \
238         -nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
239         | grep "warning: $1 ignored" > /dev/null 2>&1; then
240       true
241     else
242       libc_linker_feature=yes
243     fi
244   fi
245   rm -f conftest*
247 if test $libc_linker_feature = yes; then
248   $3
249 else
250   $4
252 AC_MSG_RESULT($libc_linker_feature)])
254 dnl Add a makefile variable, with value set from a shell string
255 dnl (expanded by the shell inside double quotes), to config.make.
256 dnl LIBC_CONFIG_VAR(make-variable, shell-value)
257 AC_DEFUN([LIBC_CONFIG_VAR],
258 [config_vars="$config_vars
259 $1 = $2"])
261 dnl Check that function FUNC was inlined as a builtin.  The code fragment
262 dnl CODE is compiled with additional options CC_OPTION.  If FUNC is
263 dnl not found in the assembly then it is assumed the compiler has support
264 dnl for this builtin and has inlined the call.  If the compiler has the
265 dnl feature then ACTION-IF-TRUE is called, otherwise ACTION-IF-FALSE.
266 dnl It is up to the caller to provide a CC_OPTION that ensures the
267 dnl builtin is inlined if present.
268 dnl Warning: This may not work for some machines. For example on ARM the
269 dnl ABI dictates that some functions should not be inlined and instead
270 dnl should be provided by a compiler helper library e.g. __aeabi_memcpy.
271 dnl This is done to reduce code size.
272 dnl LIBC_COMPILER_BUILTIN([func], [code], [cc_option], [action-if-true], [action-if-false])
273 AC_DEFUN([LIBC_COMPILER_BUILTIN_INLINED],
274 [AC_MSG_CHECKING([for compiler support of inlined builtin function $1])
275 libc_compiler_builtin_inlined=no
276 cat > conftest.c <<EOF
277 int _start (void) { $2 return 0; }
279 if ! AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
280                      $3 -nostdlib -nostartfiles
281                      -S conftest.c -o - | grep -F "$1"
282                      1>&AS_MESSAGE_LOG_FD])
283 then
284   libc_compiler_builtin_inlined=yes
286 rm -f conftest*
287 if test $libc_compiler_builtin_inlined = yes; then
288   $4
289 else
290   $5
292 AC_MSG_RESULT($libc_compiler_builtin_inlined)])
294 dnl Default to slibdir named SLIBDIR instead of "lib", and rtlddir
295 dnl named RTLDDIR instead of "lib".  This is used to put 64-bit
296 dnl libraries in /lib64.
297 dnl LIBC_SLIBDIR_RTLDDIR([slibdir], [rtlddir])
298 AC_DEFUN([LIBC_SLIBDIR_RTLDDIR],
299 [test -n "$libc_cv_slibdir" ||
300 case "$prefix" in
301 /usr | /usr/)
302   libc_cv_slibdir='/$1'
303   libc_cv_rtlddir='/$2'
304   if test "$libdir" = '${exec_prefix}/lib'; then
305     libdir='${exec_prefix}/$1';
306     # Locale data can be shared between 32-bit and 64-bit libraries.
307     libc_cv_complocaledir='${exec_prefix}/lib/locale'
308   fi
309   ;;
310 esac])