From 75b6133098753a31b722f94b86e95b11323735f0 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 29 May 2012 15:58:15 +0000 Subject: [PATCH] Resync config/ from GCC. --- config/ChangeLog | 53 +++++++++++++++++++++++++ config/asmcfi.m4 | 15 +++++++ config/math.m4 | 50 +++++++++++++++++++++++ config/mh-darwin | 4 +- config/mh-interix | 2 - config/mh-ppc-aix | 2 +- config/mmap.m4 | 97 +++++++++++++++++++++++++++++++++++++++++++++ config/mt-alphaieee | 1 + config/mt-sde | 2 +- config/picflag.m4 | 5 +-- config/stdint.m4 | 2 +- config/tcl.m4 | 6 +-- config/weakref.m4 | 47 ++++++++++++++++++++++ 13 files changed, 273 insertions(+), 13 deletions(-) create mode 100644 config/asmcfi.m4 create mode 100644 config/math.m4 delete mode 100644 config/mh-interix create mode 100644 config/mmap.m4 create mode 100644 config/weakref.m4 diff --git a/config/ChangeLog b/config/ChangeLog index 1087ad8ca..42fcfce99 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,38 @@ +2012-05-29 Joseph Myers + + * mt-sde: Fix typos. + * stdint.m4: Fix typos. + * tcl.m4: Fix typos. + +2012-04-03 Tristan Gingold + + * mmap.m4: Use *vms* instead of vms*. + +2012-04-02 Tristan Gingold + + * math.m4 (GCC_CHECK_MATH_FUNC): Remove if-present + argument. Define the variable. + +2012-03-26 Tristan Gingold + + * math.m4: New file. + +2012-03-12 Rainer Orth + + * weakref.m4 (GCC_CHECK_ELF_STYLE_WEAKREF): Remove + alpha*-dec-osf*. + +2012-01-22 Douglas B Rupp + + * config/mh-interix: Remove as unneeded. + * config/picflag.m4 (i[[34567]]86-*-interix3*): + Change triplet to i[[34567]]86-*-interix[[3-9]]*. + +2012-01-04 Andreas Krebbel + + PR bootstrap/51734 + * picflag.m4: Remove s390 case statement. + 2011-12-20 Andreas Schwab * warnings.m4 (ACX_PROG_CC_WARNING_OPTS): Avoid leading dash in @@ -5,6 +40,7 @@ 2011-12-19 Andreas Schwab + PR bootstrap/51388 * warnings.m4 (ACX_PROG_CC_WARNING_OPTS) (ACX_PROG_CC_WARNING_ALMOST_PEDANTIC): Run the test without the no- prefix. @@ -13,6 +49,14 @@ * acx.m4 (Test for GNAT): Update comment and add quotes in final test. +2011-11-22 Iain Sandoe + + * weakref.m4: New file. + +2011-11-09 Richard Henderson + + * asmcfi.m4: New file. + 2011-11-02 Rainer Orth * mh-interix (LIBGCC2_DEBUG_CFLAGS): Remove. @@ -25,6 +69,15 @@ * elf.m4 (target_elf): Remove *-netware*. +2011-07-06 Uros Bizjak + + * mt-alphaieee (GOCFLAGS_FOR_TARGET): Add -mieee. + +2011-06-15 Mike Stump + + PR target/49461 + * mh-darwin: Turn off -pie on darwin11 and later. + 2011-04-20 Eric Botcazou * bootstrap-lto.mk: Remove obsolete requirement. diff --git a/config/asmcfi.m4 b/config/asmcfi.m4 new file mode 100644 index 000000000..a725aa11d --- /dev/null +++ b/config/asmcfi.m4 @@ -0,0 +1,15 @@ +;; Cribbed from libffi + +AC_DEFUN([GCC_AS_CFI_PSEUDO_OP], +[AC_CACHE_CHECK([assembler .cfi pseudo-op support], + gcc_cv_as_cfi_pseudo_op, [ + gcc_cv_as_cfi_pseudo_op=unknown + AC_TRY_COMPILE([asm (".cfi_startproc\n\t.cfi_endproc");],, + [gcc_cv_as_cfi_pseudo_op=yes], + [gcc_cv_as_cfi_pseudo_op=no]) + ]) + if test "x$gcc_cv_as_cfi_pseudo_op" = xyes; then + AC_DEFINE(HAVE_AS_CFI_PSEUDO_OP, 1, + [Define if your assembler supports .cfi_* directives.]) + fi +]) diff --git a/config/math.m4 b/config/math.m4 new file mode 100644 index 000000000..23835f230 --- /dev/null +++ b/config/math.m4 @@ -0,0 +1,50 @@ +dnl GCC_CHECK_LIBM +dnl +dnl Check whether -lm is available. This is a pre-requisite for +dnl GCC_CHECK_MATH_FUNC so that it will link with -lm. +AC_DEFUN([GCC_CHECK_LIBM], +[AC_CHECK_LIB([m],[sin])]) + +dnl GCC_CHECK_MATH_HEADERS +dnl +dnl Check for math.h and complex.h. This is a pre-requisite for +dnl GCC_CHECK_MATH_FUNC so that it includes the right headers. +dnl (Some systems, such as AIX or OpenVMS may define macro for math +dnl functions). +AC_DEFUN([GCC_CHECK_MATH_HEADERS], +[AC_CHECK_HEADERS_ONCE(math.h complex.h)]) + +dnl GCC_CHECK_MATH_FUNC([name]) +dnl +dnl Check whether math function NAME is available on the system (by compiling +dnl and linking a C program) and run define HAVE_name on success. +dnl +dnl Note that OpenVMS system insists on including complex.h before math.h +AC_DEFUN([GCC_CHECK_MATH_FUNC], +[ + AC_REQUIRE([GCC_CHECK_LIBM]) + AC_REQUIRE([GCC_CHECK_MATH_HEADERS]) + AC_CACHE_CHECK([for $1], [gcc_cv_math_func_$1], + [AC_LINK_IFELSE([ +#ifdef HAVE_COMPLEX_H +#include +#endif +#ifdef HAVE_MATH_H +#include +#endif + +int (*ptr)() = (int (*)())$1; + +int +main () +{ + return 0; +} +], +[gcc_cv_math_func_$1=yes], +[gcc_cv_math_func_$1=no])]) + if test $gcc_cv_math_func_$1 = yes; then + AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$1),[1], + [Define to 1 if you have the `$1' function.]) + fi +]) diff --git a/config/mh-darwin b/config/mh-darwin index 66f68b664..19bf26568 100644 --- a/config/mh-darwin +++ b/config/mh-darwin @@ -1,5 +1,7 @@ # The -mdynamic-no-pic ensures that the compiler executable is built without # position-independent-code -- the usual default on Darwin. This fix speeds # compiles by 3-5%. - BOOT_CFLAGS += -mdynamic-no-pic + +# Ensure we don't try and use -pie, as it is incompatible with pch. +BOOT_LDFLAGS += `case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;` diff --git a/config/mh-interix b/config/mh-interix deleted file mode 100644 index 3be195b51..000000000 --- a/config/mh-interix +++ /dev/null @@ -1,2 +0,0 @@ -# The shell may not be in /bin. -SHELL = sh diff --git a/config/mh-ppc-aix b/config/mh-ppc-aix index 4a97d8172..a866f7fef 100644 --- a/config/mh-ppc-aix +++ b/config/mh-ppc-aix @@ -5,4 +5,4 @@ # don't do it any more. BOOT_ADAFLAGS = -gnatapg BOOT_LDFLAGS = -Wl,-bbigtoc -LDFLAGS = `case $(CC) in *gcc*) echo -Wl,-bbigtoc ;; esac;` +LDFLAGS = `case '$(CC)' in *gcc*) echo -Wl,-bbigtoc ;; esac;` diff --git a/config/mmap.m4 b/config/mmap.m4 new file mode 100644 index 000000000..fba0d9d36 --- /dev/null +++ b/config/mmap.m4 @@ -0,0 +1,97 @@ +dnl ---------------------------------------------------------------------- +dnl This whole bit snagged from gcc + +dnl +dnl mmap(2) blacklisting. Some platforms provide the mmap library routine +dnl but don't support all of the features we need from it. +dnl +AC_DEFUN([GCC_AC_FUNC_MMAP_BLACKLIST], +[ +AC_CHECK_HEADER([sys/mman.h], + [gcc_header_sys_mman_h=yes], [gcc_header_sys_mman_h=no]) +AC_CHECK_FUNC([mmap], [gcc_func_mmap=yes], [gcc_func_mmap=no]) +if test "$gcc_header_sys_mman_h" != yes \ + || test "$gcc_func_mmap" != yes; then + gcc_cv_func_mmap_file=no + gcc_cv_func_mmap_dev_zero=no + gcc_cv_func_mmap_anon=no +else + AC_CACHE_CHECK([whether read-only mmap of a plain file works], + gcc_cv_func_mmap_file, + [# Add a system to this blacklist if + # mmap(0, stat_size, PROT_READ, MAP_PRIVATE, fd, 0) doesn't return a + # memory area containing the same data that you'd get if you applied + # read() to the same fd. The only system known to have a problem here + # is VMS, where text files have record structure. + case "$host_os" in + *vms* | ultrix*) + gcc_cv_func_mmap_file=no ;; + *) + gcc_cv_func_mmap_file=yes;; + esac]) + AC_CACHE_CHECK([whether mmap from /dev/zero works], + gcc_cv_func_mmap_dev_zero, + [# Add a system to this blacklist if it has mmap() but /dev/zero + # does not exist, or if mmapping /dev/zero does not give anonymous + # zeroed pages with both the following properties: + # 1. If you map N consecutive pages in with one call, and then + # unmap any subset of those pages, the pages that were not + # explicitly unmapped remain accessible. + # 2. If you map two adjacent blocks of memory and then unmap them + # both at once, they must both go away. + # Systems known to be in this category are Windows (all variants), + # VMS, and Darwin. + case "$host_os" in + *vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00) + gcc_cv_func_mmap_dev_zero=no ;; + *) + gcc_cv_func_mmap_dev_zero=yes;; + esac]) + + # Unlike /dev/zero, the MAP_ANON(YMOUS) defines can be probed for. + AC_CACHE_CHECK([for MAP_ANON(YMOUS)], gcc_cv_decl_map_anon, + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( +[#include +#include +#include + +#ifndef MAP_ANONYMOUS +#define MAP_ANONYMOUS MAP_ANON +#endif +], +[int n = MAP_ANONYMOUS;])], + gcc_cv_decl_map_anon=yes, + gcc_cv_decl_map_anon=no)]) + + if test $gcc_cv_decl_map_anon = no; then + gcc_cv_func_mmap_anon=no + else + AC_CACHE_CHECK([whether mmap with MAP_ANON(YMOUS) works], + gcc_cv_func_mmap_anon, + [# Add a system to this blacklist if it has mmap() and MAP_ANON or + # MAP_ANONYMOUS, but using mmap(..., MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) + # doesn't give anonymous zeroed pages with the same properties listed + # above for use of /dev/zero. + # Systems known to be in this category are Windows, VMS, and SCO Unix. + case "$host_os" in + *vms* | cygwin* | pe | mingw* | sco* | udk* ) + gcc_cv_func_mmap_anon=no ;; + *) + gcc_cv_func_mmap_anon=yes;; + esac]) + fi +fi + +if test $gcc_cv_func_mmap_file = yes; then + AC_DEFINE(HAVE_MMAP_FILE, 1, + [Define if read-only mmap of a plain file works.]) +fi +if test $gcc_cv_func_mmap_dev_zero = yes; then + AC_DEFINE(HAVE_MMAP_DEV_ZERO, 1, + [Define if mmap of /dev/zero works.]) +fi +if test $gcc_cv_func_mmap_anon = yes; then + AC_DEFINE(HAVE_MMAP_ANON, 1, + [Define if mmap with MAP_ANON(YMOUS) works.]) +fi +]) diff --git a/config/mt-alphaieee b/config/mt-alphaieee index 9c205314a..80c17cdc6 100644 --- a/config/mt-alphaieee +++ b/config/mt-alphaieee @@ -1,2 +1,3 @@ CFLAGS_FOR_TARGET += -mieee CXXFLAGS_FOR_TARGET += -mieee +GOCFLAGS_FOR_TARGET += -mieee diff --git a/config/mt-sde b/config/mt-sde index cb204203d..d6992e415 100644 --- a/config/mt-sde +++ b/config/mt-sde @@ -5,6 +5,6 @@ # as they have the D-to-I redirect for PC-relative loads. -mno-gpopt # has two purposes: it allows libraries to be used in situations where # $gp != our _gp, and it allows them to be built with -G8 while -# retaining link compability with -G0 and -G4. +# retaining link compatibility with -G0 and -G4. CFLAGS_FOR_TARGET += -Os -minterlink-mips16 -mcode-xonly -mno-gpopt CXXFLAGS_FOR_TARGET += -Os -minterlink-mips16 -mcode-xonly -mno-gpopt diff --git a/config/picflag.m4 b/config/picflag.m4 index f6f1b444e..bd818125a 100644 --- a/config/picflag.m4 +++ b/config/picflag.m4 @@ -19,7 +19,7 @@ case "${$2}" in ;; i[[34567]]86-*-cygwin* | i[[34567]]86-*-mingw* | x86_64-*-mingw*) ;; - i[[34567]]86-*-interix3*) + i[[34567]]86-*-interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; @@ -51,9 +51,6 @@ case "${$2}" in m68k-*-*) $1=-fpic ;; - s390*-*-*) - $1=-fpic - ;; # FIXME: Override -fPIC default in libgcc only? sh-*-linux* | sh[[2346lbe]]*-*-linux*) $1=-fpic diff --git a/config/stdint.m4 b/config/stdint.m4 index fbdd58619..61898a75f 100644 --- a/config/stdint.m4 +++ b/config/stdint.m4 @@ -18,7 +18,7 @@ dnl the "ISO C9X: 7.18 Integer types " section requires the dnl existence of an include file that defines a set of dnl typedefs, especially uint8_t,int32_t,uintptr_t. dnl Many older installations will not provide this file, but some will -dnl have the very same definitions in . In other enviroments +dnl have the very same definitions in . In other environments dnl we can use the inet-types in which would define the dnl typedefs int8_t and u_int8_t respectivly. dnl diff --git a/config/tcl.m4 b/config/tcl.m4 index 900a2ceb8..59a0c7e0a 100644 --- a/config/tcl.m4 +++ b/config/tcl.m4 @@ -290,7 +290,7 @@ AC_DEFUN([SC_LOAD_TCLCONFIG], [ elif test "`uname -s`" = "Darwin"; then # If Tcl was built as a framework, attempt to use the libraries # from the framework at the given location so that linking works - # against Tcl.framework installed in an arbitary location. + # against Tcl.framework installed in an arbitrary location. case ${TCL_DEFS} in *TCL_FRAMEWORK*) if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then @@ -373,7 +373,7 @@ AC_DEFUN([SC_LOAD_TKCONFIG], [ elif test "`uname -s`" = "Darwin"; then # If Tk was built as a framework, attempt to use the libraries # from the framework at the given location so that linking works - # against Tk.framework installed in an arbitary location. + # against Tk.framework installed in an arbitrary location. case ${TK_DEFS} in *TK_FRAMEWORK*) if test -f "${TK_BIN_DIR}/${TK_LIB_FILE}"; then @@ -815,7 +815,7 @@ AC_DEFUN([SC_ENABLE_LANGINFO], [ # # Defines the following variable: # -# MAN_FLAGS - The apropriate flags for installManPage +# MAN_FLAGS - The appropriate flags for installManPage # according to the user's selection. # #-------------------------------------------------------------------- diff --git a/config/weakref.m4 b/config/weakref.m4 new file mode 100644 index 000000000..ecb856728 --- /dev/null +++ b/config/weakref.m4 @@ -0,0 +1,47 @@ + +dnl Check if the target supports weak. +AC_DEFUN([GCC_CHECK_ATTRIBUTE_WEAK], [ + AC_CACHE_CHECK([whether the target supports weak], + ac_cv_have_attribute_weak, [ + weakref_m4_saved_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + AC_TRY_COMPILE([void __attribute__((weak)) foo(void) { }], + [], ac_cv_have_attribute_weak=yes, + ac_cv_have_attribute_weak=no) + CFLAGS="$weakref_m4_saved_CFLAGS"]) + if test x"$ac_cv_have_attribute_weak" = xyes; then + AC_DEFINE(HAVE_ATTRIBUTE_WEAK, 1, + [Define to 1 if the target supports __attribute__((weak)).]) + fi]) + +dnl Check whether weak refs work like the ELF ones. +dnl This means that the weak reference works without having to satify +dnl linkage for the item. +dnl There are targets (at least Darwin) where we have fully functional +dnl weakrefs at runtime, but must supply the referenced item at link time. +AC_DEFUN([GCC_CHECK_ELF_STYLE_WEAKREF], [ + AC_CACHE_CHECK([whether weak refs work like ELF], + ac_cv_have_elf_style_weakref, [ + weakref_m4_saved_CFLAGS="$CFLAGS" + case "${host}" in + *-apple-darwin*) CFLAGS="$CFLAGS -Wl,-undefined,dynamic_lookup" ;; + *) ;; + esac + AC_RUN_IFELSE([AC_LANG_SOURCE([[ +extern void fNotToBeFound(void) __attribute__((weak)); +int main () +{ + if (fNotToBeFound) + return 1; + else + return 0; +} +]])], ac_cv_have_elf_style_weakref=yes, ac_cv_have_elf_style_weakref=no, [ +case "${host}" in + *-apple-darwin[[89]]*) ac_cv_have_elf_style_weakref=no ;; + *) ac_cv_have_elf_style_weakref=yes;; +esac])CFLAGS="$weakref_m4_saved_CFLAGS"]) +if test x"$ac_cv_have_elf_style_weakref" = xyes; then + AC_DEFINE(HAVE_ELF_STYLE_WEAKREF, 1, [Define to 1 if target has a weakref that works like the ELF one.]) +fi]) +