X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=aclocal.m4;h=08fa1ac6d05323fd0bac1f0d8820ba78ba6cf9a0;hb=acc2842ace72ba1722919cde0176827ac59c7b06;hp=bf1ad40e2aea56827f3fcb507f3efcde2c7a72b8;hpb=ebbad4cc83011dc736b53cce7d05b3056e2424b5;p=thirdparty%2Fglibc.git diff --git a/aclocal.m4 b/aclocal.m4 index bf1ad40e2ae..08fa1ac6d05 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,21 +1,52 @@ +dnl We require that everyone use exactly the same Autoconf version so that +dnl the internal functions defined and used by the main configure script +dnl match those expected by the fragments. When changing this version, +dnl install.texi also needs to be updated. +m4_define([GLIBC_AUTOCONF_VERSION], [2.69]) +m4_if(m4_defn([AC_AUTOCONF_VERSION]), GLIBC_AUTOCONF_VERSION, [], + [m4_fatal(m4_flatten( +Exactly version GLIBC_AUTOCONF_VERSION of Autoconf is required but you have +m4_defn([AC_AUTOCONF_VERSION]) +), [63])])dnl +dnl dnl We define the macro GLIBC_PROVIDES to do an AC_PROVIDE for each macro -dnl which appears in configure.in before the sysdep configure scripts are run. -dnl Each sysdep configure.in does GLIBC_PROVIDES first, to avoid any +dnl which appears in configure.ac before the sysdep configure scripts are run. +dnl Each sysdep configure.ac does GLIBC_PROVIDES first, to avoid any dnl AC_REQUIREs or AC_BEFOREs duplicating their code. dnl -define(AC_FD_MSG,6)dnl Autoconf lossage. -define(AC_FD_CC,5)dnl Autoconf lossage. -AC_DEFUN([GLIBC_PROVIDES], [dnl +define([GLIBC_PROVIDES], [dnl +AC_PROVIDE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_PROVIDE([AC_CONFIG_SUBDIRS])dnl +AC_PROVIDE([_AS_ECHO_N_PREPARE])dnl +AC_PROVIDE([_AS_ECHO_PREPARE])dnl +AC_PROVIDE([_AS_CR_PREPARE])dnl +AC_PROVIDE([_AS_TR_SH_PREPARE])dnl +AC_PROVIDE([_AS_VAR_ARITH_PREPARE])dnl AC_PROVIDE([AC_PROG_INSTALL])dnl -AC_PROVIDE([AC_PROG_RANLIB])dnl AC_PROVIDE([AC_PROG_CC])dnl AC_PROVIDE([AC_PROG_CPP])dnl -# This file is generated from configure.in by Autoconf. DO NOT EDIT! +AC_PROVIDE([_AS_PATH_SEPARATOR_PREPARE])dnl +AC_PROVIDE([_AS_TEST_PREPARE])dnl +AC_PROVIDE([_AS_BASENAME_PREPARE])dnl +AC_PROVIDE([_AS_ME_PREPARE])dnl +AC_PROVIDE([_AS_LINENO_PREPARE])dnl +AC_PROVIDE([AS_SHELL_FN_as_fn_set_status])dnl +AC_PROVIDE([AS_SHELL_FN_as_fn_exit])dnl +AC_PROVIDE([AS_SHELL_FN_as_fn_arith])dnl +AC_PROVIDE([AS_SHELL_FN_ac_fn_c_try_compile])dnl +define([AS_MESSAGE_LOG_FD],5)dnl +define([AS_MESSAGE_FD],6)dnl +dnl Ripped out of AS_INIT, which does more cruft we do not want. +m4_wrap([m4_divert_pop([BODY])[]]) +m4_divert_push([BODY])[]dnl +dnl End of ripped out of AS_INIT. +# This file is generated from configure.ac by Autoconf. DO NOT EDIT! +define([_AC_LANG], [C])dnl ])dnl dnl dnl Check for a symbol dnl -AC_DEFUN(AC_CHECK_SYMBOL, [dnl +AC_DEFUN([AC_CHECK_SYMBOL], [dnl AC_MSG_CHECKING(for $1) AC_CACHE_VAL(ac_cv_check_symbol_$1, [dnl AC_TRY_LINK(, @@ -32,61 +63,242 @@ fi AC_MSG_RESULT($ac_cv_check_symbol_$1)])dnl dnl +dnl Locate a program and check that its version is acceptable. +dnl AC_PROG_CHECK_VER(var, namelist, version-switch, +dnl [version-extract-regexp], version-glob [, do-if-fail]) +AC_DEFUN([AC_CHECK_PROG_VER], +[AC_CHECK_PROGS([$1], [$2]) +if test -z "[$]$1"; then + ac_verc_fail=yes +else + # Found it, now check the version. + AC_MSG_CHECKING([version of [$]$1]) +changequote(<<,>>)dnl + ac_prog_version=`<<$>>$1 $3 2>&1 ifelse(<<$4>>,,, + <<| sed -n 's/^.*patsubst(<<$4>>,/,\/).*$/\1/p'>>)` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; + <<$5>>) +changequote([,])dnl + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + + esac + AC_MSG_RESULT([$ac_prog_version]) +fi +ifelse([$6],,, +[if test $ac_verc_fail = yes; then + $6 +fi]) +]) + dnl These modifications are to allow for an empty cross compiler tree. -dnl In the situation that cross-linking is impossible, the variable -dnl `cross_linkable' will be substituted with "yes". -AC_DEFUN(AC_PROG_CC_LOCAL, -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_CHECK_PROG(CC, gcc, gcc) -if test -z "$CC"; then - AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) - test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +define([_AC_COMPILER_EXEEXT], [EXEEXT= +]) + +AC_DEFUN([LIBC_PROG_FOO_GNU], +[# Most GNU programs take a -v and spit out some text including +# the word 'GNU'. Some try to read stdin, so give them /dev/null. +if $1 -o conftest -v &1 | grep GNU > /dev/null 2>&1; then + $2 +else + $3 +fi +rm -fr contest*]) + +AC_DEFUN([LIBC_PROG_BINUTILS], +[# Was a --with-binutils option given? +if test -n "$path_binutils"; then + # Make absolute; ensure a single trailing slash. + path_binutils=`(cd $path_binutils; pwd) | sed 's%/*$%/%'` + CC="$CC -B$path_binutils" fi +AS=`$CC -print-prog-name=as` +LD=`$CC -print-prog-name=ld` +AR=`$CC -print-prog-name=ar` +AC_SUBST(AR) +OBJDUMP=`$CC -print-prog-name=objdump` +AC_SUBST(OBJDUMP) +OBJCOPY=`$CC -print-prog-name=objcopy` +AC_SUBST(OBJCOPY) +GPROF=`$CC -print-prog-name=gprof` +AC_SUBST(GPROF) -AC_PROG_CC_WORKS_LOCAL -AC_PROG_CC_GNU - -dnl The following differs from the AC_PROG_CC macro in autoconf. Since -dnl we require a recent version of gcc to be used we do not need to go -dnl into lengths and test for bugs in old versions. It must be gcc 2.7 -dnl or above. -if test $ac_cv_prog_gcc = yes; then - GCC=yes - -dnl Check the version - cat > conftest.c < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) - yes; -#endif +# Determine whether we are using GNU binutils. +AC_CACHE_CHECK(whether $AS is GNU as, libc_cv_prog_as_gnu, +[LIBC_PROG_FOO_GNU($AS, libc_cv_prog_as_gnu=yes, libc_cv_prog_as_gnu=no)]) +rm -f a.out +gnu_as=$libc_cv_prog_as_gnu + +AC_CACHE_CHECK(whether $LD is GNU ld, libc_cv_prog_ld_gnu, +[LIBC_PROG_FOO_GNU($LD, libc_cv_prog_ld_gnu=yes, libc_cv_prog_ld_gnu=no)]) +gnu_ld=$libc_cv_prog_ld_gnu +]) + +dnl Run a static link test with -nostdlib -nostartfiles. +dnl LIBC_TRY_LINK_STATIC([code], [action-if-true], [action-if-false]) +AC_DEFUN([LIBC_TRY_LINK_STATIC], +[cat > conftest.c </dev/null 2>&1; then - if test -z "$CFLAGS"; then - CFLAGS="-g -O2" +AS_IF([AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -o conftest + conftest.c -static -nostartfiles -nostdlib + 1>&AS_MESSAGE_LOG_FD])], + [$2], [$3]) +rm -f conftest*]) + +dnl Test a compiler option or options with an empty input file. +dnl LIBC_TRY_CC_OPTION([options], [action-if-true], [action-if-false]) +AC_DEFUN([LIBC_TRY_CC_OPTION], +[AS_IF([AC_TRY_COMMAND([${CC-cc} $1 -xc /dev/null -S -o /dev/null])], + [$2], [$3])]) + +dnl Find and source sysdeps/*/preconfigure. +dnl LIBC_PRECONFIGURE([$srcdir], [for]) +AC_DEFUN([LIBC_PRECONFIGURE], [dnl +if frags=`ls -d $1/sysdeps/*/preconfigure 2> /dev/null` +then + AC_MSG_CHECKING($2 preconfigure fragments) + for frag in $frags; do + name=`echo "$frag" | sed 's@/[[^/]]*[$]@@;s@^.*/@@'` + echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD + . "$frag" + done + AC_MSG_RESULT() +fi]) + +# These two macros are taken from GCC's config/acx.m4. +dnl Support the --with-pkgversion configure option. +dnl ACX_PKGVERSION(default-pkgversion) +AC_DEFUN([ACX_PKGVERSION],[ + AC_ARG_WITH(pkgversion, + AS_HELP_STRING([--with-pkgversion=PKG], + [Use PKG in the version string in place of "$1"]), + [case "$withval" in + yes) AC_MSG_ERROR([package version not specified]) ;; + no) PKGVERSION= ;; + *) PKGVERSION="($withval) " ;; + esac], + PKGVERSION="($1) " + ) + PKGVERSION_TEXI=`echo "$PKGVERSION" | sed 's/@/@@/g'` + AC_SUBST(PKGVERSION) + AC_SUBST(PKGVERSION_TEXI) +]) + +dnl Support the --with-bugurl configure option. +dnl ACX_BUGURL(default-bugurl) +AC_DEFUN([ACX_BUGURL],[ + AC_ARG_WITH(bugurl, + AS_HELP_STRING([--with-bugurl=URL], + [Direct users to URL to report a bug]), + [case "$withval" in + yes) AC_MSG_ERROR([bug URL not specified]) ;; + no) BUGURL= + ;; + *) BUGURL="$withval" + ;; + esac], + BUGURL="$1" + ) + case ${BUGURL} in + "") + REPORT_BUGS_TO= + REPORT_BUGS_TEXI= + ;; + *) + REPORT_BUGS_TO="<$BUGURL>" + REPORT_BUGS_TEXI=@uref{`echo "$BUGURL" | sed 's/@/@@/g'`} + ;; + esac; + AC_SUBST(REPORT_BUGS_TO) + AC_SUBST(REPORT_BUGS_TEXI) +]) + +dnl Check linker option support. +dnl LIBC_LINKER_FEATURE([ld_option], [cc_option], [action-if-true], [action-if-false]) +AC_DEFUN([LIBC_LINKER_FEATURE], +[AC_MSG_CHECKING([for linker that supports $1]) +libc_linker_feature=no +if test x"$gnu_ld" = x"yes"; then + libc_linker_check=`$LD -v --help 2>/dev/null | grep "\$1"` + if test -n "$libc_linker_check"; then + cat > conftest.c <&AS_MESSAGE_LOG_FD]) + then + libc_linker_feature=yes fi - else - AC_MSG_ERROR([We require GNU CC version 2.7 or newer]) + rm -f conftest* fi +fi +if test $libc_linker_feature = yes; then + $3 else - AC_MSG_ERROR([GNU libc must be compiled using GNU CC]) + $4 fi -]) +AC_MSG_RESULT($libc_linker_feature)]) + +dnl Add a makefile variable, with value set from a shell string +dnl (expanded by the shell inside double quotes), to config.make. +dnl LIBC_CONFIG_VAR(make-variable, shell-value) +AC_DEFUN([LIBC_CONFIG_VAR], +[config_vars="$config_vars +$1 = $2"]) -AC_DEFUN(AC_PROG_CC_WORKS_LOCAL, -[AC_MSG_CHECKING([whether the C compiler ($CC $CFLAGS $LDFLAGS) works]) -AC_LANG_SAVE -AC_LANG_C -AC_TRY_COMPILER([main(){return(0);}], ac_cv_prog_cc_works, ac_cv_prog_cc_cross) -AC_LANG_RESTORE -AC_MSG_RESULT($ac_cv_prog_cc_works) -if test $ac_cv_prog_cc_works = no; then - cross_linkable=no - ac_cv_prog_cc_cross=yes -dnl AC_MSG_ERROR([installation or configuration problem: C compiler cannot create executables.]) +dnl Check that function FUNC was inlined as a builtin. The code fragment +dnl CODE is compiled with additional options CC_OPTION. If FUNC is +dnl not found in the assembly then it is assumed the compiler has support +dnl for this builtin and has inlined the call. If the compiler has the +dnl feature then ACTION-IF-TRUE is called, otherwise ACTION-IF-FALSE. +dnl It is up to the caller to provide a CC_OPTION that ensures the +dnl builtin is inlined if present. +dnl Warning: This may not work for some machines. For example on ARM the +dnl ABI dictates that some functions should not be inlined and instead +dnl should be provided by a compiler helper library e.g. __aeabi_memcpy. +dnl This is done to reduce code size. +dnl LIBC_COMPILER_BUILTIN([func], [code], [cc_option], [action-if-true], [action-if-false]) +AC_DEFUN([LIBC_COMPILER_BUILTIN_INLINED], +[AC_MSG_CHECKING([for compiler support of inlined builtin function $1]) +libc_compiler_builtin_inlined=no +cat > conftest.c <&AS_MESSAGE_LOG_FD]) +then + libc_compiler_builtin_inlined=yes +fi +rm -f conftest* +if test $libc_compiler_builtin_inlined = yes; then + $4 else - cross_linkable=yes + $5 fi -AC_MSG_CHECKING([whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler]) -AC_MSG_RESULT($ac_cv_prog_cc_cross) -AC_SUBST(cross_linkable) -cross_compiling=$ac_cv_prog_cc_cross -]) +AC_MSG_RESULT($libc_compiler_builtin_inlined)]) + +dnl Default to slibdir named SLIBDIR instead of "lib", and rtlddir +dnl named RTLDDIR instead of "lib". This is used to put 64-bit +dnl libraries in /lib64. +dnl LIBC_SLIBDIR_RTLDDIR([slibdir], [rtlddir]) +AC_DEFUN([LIBC_SLIBDIR_RTLDDIR], +[test -n "$libc_cv_slibdir" || +case "$prefix" in +/usr | /usr/) + libc_cv_slibdir='/$1' + libc_cv_rtlddir='/$2' + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/$1'; + # Locale data can be shared between 32-bit and 64-bit libraries. + libc_cv_complocaledir='${exec_prefix}/lib/locale' + fi + ;; +esac])