diff options
-rw-r--r-- | gcc/ChangeLog | 19 | ||||
-rw-r--r-- | gcc/Makefile.in | 9 | ||||
-rw-r--r-- | gcc/config.gcc | 9 | ||||
-rw-r--r-- | gcc/config/rs6000/host-darwin.c | 137 | ||||
-rw-r--r-- | gcc/config/rs6000/x-darwin | 4 | ||||
-rwxr-xr-x | gcc/configure | 213 | ||||
-rw-r--r-- | gcc/configure.in | 2 | ||||
-rw-r--r-- | gcc/doc/hostconfig.texi | 136 | ||||
-rw-r--r-- | gcc/host-default.c | 28 | ||||
-rw-r--r-- | gcc/hosthooks-def.h | 33 | ||||
-rw-r--r-- | gcc/hosthooks.h | 34 | ||||
-rw-r--r-- | gcc/toplev.c | 4 |
12 files changed, 471 insertions, 157 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b78f7027913..aabea405b33 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,22 @@ +2003-02-05 Geoffrey Keating <geoffk@apple.com> + + * Makefile.in (host_hook_obj): New. + (OBJS): Add $(host_hook_obj). + (host_default.o): New rule. + * config.gcc (host_hook_obj): New, default to host-default.o. + (powerpc-*-darwin*): Use host-darwin.o. + (out_host_hook_obj): New. + * configure: Regenerate. + * configure.in: Print information about out_host_hook_obj, substitute + into output files. + * host-default.c: New file. + * hosthooks.h: New file. + * toplev.c (general_init): Call host_hooks.extra_signals. + * config/rs6000/host-darwin.c: New file. + * config/rs6000/x-darwin: New file. + * doc/hostconfig.texi: Add documentation for new host hook. + Rearrange existing documentation. + 2003-02-05 Roger Sayle <roger@eyesopen.com> * dwarf2out.c (mem_loc_descriptor): Replace ASM_SIMPLIFY_DWARF_ADDR diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 2d1c6c16170..33745f9dcb2 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -315,6 +315,7 @@ target_cpu_default=@target_cpu_default@ GCC_THREAD_FILE=@thread_file@ OBJC_BOEHM_GC=@objc_boehm_gc@ GTHREAD_FLAGS=@gthread_flags@ +host_hook_obj=@out_host_hook_obj@ # Be prepared for gcc2 merges. gcc_version=@gcc_version@ gcc_version_trigger=@gcc_version_trigger@ @@ -784,7 +785,8 @@ OBJS = alias.o bb-reorder.o bitmap.o builtins.o caller-save.o calls.o \ sibcall.o simplify-rtx.o ssa.o ssa-ccp.o ssa-dce.o stmt.o \ stor-layout.o stringpool.o timevar.o toplev.o tracer.o tree.o tree-dump.o \ tree-inline.o unroll.o varasm.o varray.o version.o vmsdbgout.o xcoffout.o \ - alloc-pool.o et-forest.o $(GGC) $(out_object_file) $(EXTRA_OBJS) + alloc-pool.o et-forest.o \ + $(GGC) $(out_object_file) $(EXTRA_OBJS) $(host_hook_obj) BACKEND = main.o libbackend.a @@ -1428,12 +1430,15 @@ toplev.o : toplev.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_ dwarf2out.h sdbout.h dbxout.h $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) \ graph.h $(LOOP_H) except.h $(REGS_H) $(TIMEVAR_H) $(lang_options_files) \ ssa.h $(PARAMS_H) $(TM_P_H) reload.h dwarf2asm.h $(TARGET_H) \ - langhooks.h insn-flags.h options.h cfglayout.h real.h cfgloop.h + langhooks.h insn-flags.h options.h cfglayout.h real.h cfgloop.h hosthooks.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ -DTARGET_NAME=\"$(target_alias)\" \ -c $(srcdir)/toplev.c $(OUTPUT_OPTION) main.o : main.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) toplev.h +host-default.o : host-default.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ + hosthooks.h hosthooks-def.h + rtl-error.o: rtl-error.c $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(INSN_ATTR_H) \ insn-config.h input.h toplev.h intl.h diagnostic.h $(CONFIG_H) diff --git a/gcc/config.gcc b/gcc/config.gcc index 5379dfa31fd..1afbefa1bd8 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -99,6 +99,8 @@ # host_extra_gcc_objs List of extra host-dependent objects that should # be linked into the gcc driver. # +# out_host_hook_obj An object file that provides the host hooks. +# # c_target_objs List of extra target-dependent objects that be # linked into the C compiler only. # @@ -169,6 +171,8 @@ # the compiler proper when this system is a host, # for host_extra_objs. # +# host_hook_obj An object file that provides the host hooks. +# # install_headers_dir Makefile-target for how the header file directory # is installed, when this system is a build system, # for build_install_headers_dir. @@ -194,6 +198,7 @@ extra_host_objs= extra_gcc_objs= c_target_objs= cxx_target_objs= +host_hook_obj=host-default.o tm_defines= xm_defines= # Set this to force installation and use of collect2. @@ -1980,6 +1985,9 @@ powerpc-*-darwin*) extra_headers=altivec.h # override ppc default need_64bit_hwint= + # powerpc-darwin host support. + host_hook_obj=host-darwin.o + xmake_file=rs6000/x-darwin ;; powerpc*-*-freebsd*) tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h rs6000/freebsd.h" @@ -2956,6 +2964,7 @@ else host_extra_gcc_objs=$extra_gcc_objs host_extra_objs=$extra_host_objs host_exeext=$exeext + out_host_hook_obj=$host_hook_obj pass2done=yes fi fi diff --git a/gcc/config/rs6000/host-darwin.c b/gcc/config/rs6000/host-darwin.c new file mode 100644 index 00000000000..874d691cf3c --- /dev/null +++ b/gcc/config/rs6000/host-darwin.c @@ -0,0 +1,137 @@ +/* Darwin/powerpc host-specific hook definitions. + Copyright (C) 2003 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING. If not, write to the Free +Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. */ + + +#include "config.h" +#include "system.h" +#include "coretypes.h" +#include <signal.h> +#include <sys/ucontext.h> +#include "hosthooks.h" +#include "hosthooks-def.h" +#include "toplev.h" + +static void segv_crash_handler PARAMS ((int)); +static void segv_handler PARAMS ((int, siginfo_t *, void *)); +static void darwin_rs6000_extra_signals PARAMS ((void)); + +/* No prototype for this, filed as Radar 3150910. */ +extern int sigaltstack(const stack_t *, stack_t *); + +#undef HOST_HOOKS_EXTRA_SIGNALS +#define HOST_HOOKS_EXTRA_SIGNALS darwin_rs6000_extra_signals + +/* On Darwin/powerpc, a stack fault can be detected as a SIGSEGV that + faulted on an instruction that's either + or + stwux %r1,xxx,%r1 +*/ + +static void +segv_crash_handler (sig) + int sig ATTRIBUTE_UNUSED; +{ + internal_error ("Segmentation Fault (code)"); +} + +static void +segv_handler (sig, sip, scp) + int sig ATTRIBUTE_UNUSED; + siginfo_t *sip ATTRIBUTE_UNUSED; + void *scp; +{ + ucontext_t *uc = (ucontext_t *)scp; + unsigned faulting_insn; + + /* The fault might have happened when trying to run some instruction, in + which case the next line will segfault _again_. Handle this case. */ + signal (SIGSEGV, segv_crash_handler); + + faulting_insn = *(unsigned *)uc->uc_mcontext->ss.srr0; + + /* Note that this only has to work for GCC, so we don't have to deal + with all the possible cases (GCC has no AltiVec code, for + instance). It's complicated because Darwin allows stores to + below the stack pointer, and the prologue code takes advantage of + this. */ + + if ((faulting_insn & 0xFFFF8000) == 0x94218000 /* stwu %r1, -xxx(%r1) */ + || (faulting_insn & 0xFFFF03FF) == 0x7C21016E /* stwux %r1, xxx, %r1 */ + || (faulting_insn & 0xFC1F8000) == 0x90018000 /* stw xxx, -yyy(%r1) */ + || (faulting_insn & 0xFC1F8000) == 0xD8018000 /* stfd xxx, -yyy(%r1) */ + || (faulting_insn & 0xFC1F8000) == 0xBC018000 /* stmw xxx, -yyy(%r1) */) + { + char *shell_name; + + fnotice (stderr, "Out of stack space.\n"); + shell_name = getenv ("SHELL"); + if (shell_name != NULL) + shell_name = strrchr (shell_name, '/'); + if (shell_name != NULL) + { + static const char * shell_commands[][2] = { + { "sh", "ulimit -S -s unlimited" }, + { "bash", "ulimit -S -s unlimited" }, + { "tcsh", "limit stacksize unlimited" }, + { "csh", "limit stacksize unlimited" }, + /* zsh doesn't have "unlimited", this will work under the + default configuration. */ + { "zsh", "limit stacksize 32m" } + }; + size_t i; + + for (i = 0; i < ARRAY_SIZE (shell_commands); i++) + if (strcmp (shell_commands[i][0], shell_name + 1) == 0) + { + fnotice (stderr, + "Try running `%s' in the shell to raise its limit.\n", + shell_commands[i][1]); + } + } + + exit (FATAL_EXIT_CODE); + } + + fprintf (stderr, "[address=%08lx pc=%08x]\n", + uc->uc_mcontext->es.dar, uc->uc_mcontext->ss.srr0); + internal_error ("Segmentation Fault"); + exit (FATAL_EXIT_CODE); +} + +static void +darwin_rs6000_extra_signals () +{ + struct sigaction sact; + stack_t sigstk; + + sigstk.ss_sp = xmalloc (SIGSTKSZ); + sigstk.ss_size = SIGSTKSZ; + sigstk.ss_flags = 0; + if (sigaltstack (&sigstk, NULL) < 0) + fatal_io_error ("While setting up signal stack"); + + sigemptyset(&sact.sa_mask); + sact.sa_flags = SA_ONSTACK | SA_SIGINFO; + sact.sa_sigaction = segv_handler; + if (sigaction (SIGSEGV, &sact, 0) < 0) + fatal_io_error ("While setting up signal handler"); +} + +const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER; diff --git a/gcc/config/rs6000/x-darwin b/gcc/config/rs6000/x-darwin new file mode 100644 index 00000000000..6738d45b13b --- /dev/null +++ b/gcc/config/rs6000/x-darwin @@ -0,0 +1,4 @@ +host-darwin.o : $(srcdir)/config/rs6000/host-darwin.c $(CONFIG_H) $(SYSTEM_H) \ + coretypes.h hosthooks.h hosthooks-def.h toplev.h + $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ + $(srcdir)/config/rs6000/host-darwin.c diff --git a/gcc/configure b/gcc/configure index 060b1359061..18a99d372e3 100755 --- a/gcc/configure +++ b/gcc/configure @@ -5490,6 +5490,7 @@ else echo " $srcdir/config/$f" done fi +echo "Using ${out_host_hook_obj} for host machine hooks." if test "$host_xm_file" != "$build_xm_file"; then count=a @@ -5631,14 +5632,14 @@ fi echo $ac_n "checking for library containing strerror""... $ac_c" 1>&6 -echo "configure:5635: checking for library containing strerror" >&5 +echo "configure:5636: checking for library containing strerror" >&5 if eval "test \"`echo '$''{'ac_cv_search_strerror'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_strerror="no" cat > conftest.$ac_ext <<EOF -#line 5642 "configure" +#line 5643 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5649,7 +5650,7 @@ int main() { strerror() ; return 0; } EOF -if { (eval echo configure:5653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_strerror="none required" else @@ -5660,7 +5661,7 @@ rm -f conftest* test "$ac_cv_search_strerror" = "no" && for i in cposix; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext <<EOF -#line 5664 "configure" +#line 5665 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5671,7 +5672,7 @@ int main() { strerror() ; return 0; } EOF -if { (eval echo configure:5675: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_strerror="-l$i" break @@ -5694,12 +5695,12 @@ fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:5698: checking for working const" >&5 +echo "configure:5699: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5703 "configure" +#line 5704 "configure" #include "confdefs.h" int main() { @@ -5748,7 +5749,7 @@ ccp = (char const *const *) p; ; return 0; } EOF -if { (eval echo configure:5752: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5753: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -5769,12 +5770,12 @@ EOF fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:5773: checking for off_t" >&5 +echo "configure:5774: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5778 "configure" +#line 5779 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -5802,12 +5803,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:5806: checking for size_t" >&5 +echo "configure:5807: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5811 "configure" +#line 5812 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -5837,19 +5838,19 @@ fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:5841: checking for working alloca.h" >&5 +echo "configure:5842: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5846 "configure" +#line 5847 "configure" #include "confdefs.h" #include <alloca.h> int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:5853: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5854: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -5870,12 +5871,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:5874: checking for alloca" >&5 +echo "configure:5875: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5879 "configure" +#line 5880 "configure" #include "confdefs.h" #ifdef __GNUC__ @@ -5903,7 +5904,7 @@ int main() { char *p = (char *) alloca(1); ; return 0; } EOF -if { (eval echo configure:5907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -5935,12 +5936,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:5939: checking whether alloca needs Cray hooks" >&5 +echo "configure:5940: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5944 "configure" +#line 5945 "configure" #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray @@ -5965,12 +5966,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5969: checking for $ac_func" >&5 +echo "configure:5970: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5974 "configure" +#line 5975 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5993,7 +5994,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5997: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5998: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6020,7 +6021,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:6024: checking stack direction for C alloca" >&5 +echo "configure:6025: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6028,7 +6029,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <<EOF -#line 6032 "configure" +#line 6033 "configure" #include "confdefs.h" find_stack_direction () { @@ -6047,7 +6048,7 @@ main () exit (find_stack_direction() < 0); } EOF -if { (eval echo configure:6051: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -6070,12 +6071,12 @@ fi echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""... $ac_c" 1>&6 -echo "configure:6074: checking whether we are using the GNU C Library 2.1 or newer" >&5 +echo "configure:6075: checking whether we are using the GNU C Library 2.1 or newer" >&5 if eval "test \"`echo '$''{'ac_cv_gnu_library_2_1'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6079 "configure" +#line 6080 "configure" #include "confdefs.h" #include <features.h> @@ -6111,17 +6112,17 @@ stdlib.h string.h unistd.h sys/param.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6115: checking for $ac_hdr" >&5 +echo "configure:6116: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6120 "configure" +#line 6121 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6125: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6126: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6152,12 +6153,12 @@ getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \ strdup strtoul tsearch __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6156: checking for $ac_func" >&5 +echo "configure:6157: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6161 "configure" +#line 6162 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6180,7 +6181,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6185: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6221,7 +6222,7 @@ fi echo $ac_n "checking for iconv""... $ac_c" 1>&6 -echo "configure:6225: checking for iconv" >&5 +echo "configure:6226: checking for iconv" >&5 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6229,7 +6230,7 @@ else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat > conftest.$ac_ext <<EOF -#line 6233 "configure" +#line 6234 "configure" #include "confdefs.h" #include <stdlib.h> #include <iconv.h> @@ -6239,7 +6240,7 @@ iconv_t cd = iconv_open("",""); iconv_close(cd); ; return 0; } EOF -if { (eval echo configure:6243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_func_iconv=yes else @@ -6251,7 +6252,7 @@ rm -f conftest* am_save_LIBS="$LIBS" LIBS="$LIBS $am_cv_libiconv_ldpath -liconv" cat > conftest.$ac_ext <<EOF -#line 6255 "configure" +#line 6256 "configure" #include "confdefs.h" #include <stdlib.h> #include <iconv.h> @@ -6261,7 +6262,7 @@ iconv_t cd = iconv_open("",""); iconv_close(cd); ; return 0; } EOF -if { (eval echo configure:6265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_lib_iconv=yes am_cv_func_iconv=yes @@ -6282,13 +6283,13 @@ echo "$ac_t""$am_cv_func_iconv" 1>&6 EOF echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6 -echo "configure:6286: checking for iconv declaration" >&5 +echo "configure:6287: checking for iconv declaration" >&5 if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6292 "configure" +#line 6293 "configure" #include "confdefs.h" #include <stdlib.h> @@ -6307,7 +6308,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:6311: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6312: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_proto_iconv_arg1="" else @@ -6336,19 +6337,19 @@ EOF echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6 -echo "configure:6340: checking for nl_langinfo and CODESET" >&5 +echo "configure:6341: checking for nl_langinfo and CODESET" >&5 if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6345 "configure" +#line 6346 "configure" #include "confdefs.h" #include <langinfo.h> int main() { char* cs = nl_langinfo(CODESET); ; return 0; } EOF -if { (eval echo configure:6352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_langinfo_codeset=yes else @@ -6371,19 +6372,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:6375: checking for LC_MESSAGES" >&5 +echo "configure:6376: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6380 "configure" +#line 6381 "configure" #include "confdefs.h" #include <locale.h> int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:6387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else @@ -6404,7 +6405,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:6408: checking whether NLS is requested" >&5 +echo "configure:6409: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" @@ -6427,7 +6428,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:6431: checking whether included gettext is requested" >&5 +echo "configure:6432: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" @@ -6447,17 +6448,17 @@ fi ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:6451: checking for libintl.h" >&5 +echo "configure:6452: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6456 "configure" +#line 6457 "configure" #include "confdefs.h" #include <libintl.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6461: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6462: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6478,12 +6479,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then EOF echo $ac_n "checking for GNU gettext in libc""... $ac_c" 1>&6 -echo "configure:6482: checking for GNU gettext in libc" >&5 +echo "configure:6483: checking for GNU gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6487 "configure" +#line 6488 "configure" #include "confdefs.h" #include <libintl.h> extern int _nl_msg_cat_cntr; @@ -6492,7 +6493,7 @@ bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } EOF -if { (eval echo configure:6496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gnugettext1_libc=yes else @@ -6508,14 +6509,14 @@ echo "$ac_t""$gt_cv_func_gnugettext1_libc" 1>&6 if test "$gt_cv_func_gnugettext1_libc" != "yes"; then echo $ac_n "checking for GNU gettext in libintl""... $ac_c" 1>&6 -echo "configure:6512: checking for GNU gettext in libintl" >&5 +echo "configure:6513: checking for GNU gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -lintl $LIBICONV" cat > conftest.$ac_ext <<EOF -#line 6519 "configure" +#line 6520 "configure" #include "confdefs.h" #include <libintl.h> extern int _nl_msg_cat_cntr; @@ -6524,7 +6525,7 @@ bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } EOF -if { (eval echo configure:6528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gnugettext1_libintl=yes else @@ -6557,12 +6558,12 @@ EOF for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6561: checking for $ac_func" >&5 +echo "configure:6562: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6566 "configure" +#line 6567 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6585,7 +6586,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6614,7 +6615,7 @@ done # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6618: checking for $ac_word" >&5 +echo "configure:6619: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6648,7 +6649,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6652: checking for $ac_word" >&5 +echo "configure:6653: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6685,7 +6686,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6689: checking for $ac_word" >&5 +echo "configure:6690: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6735,7 +6736,7 @@ fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6739: checking for $ac_word" >&5 +echo "configure:6740: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6769,7 +6770,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6773: checking for $ac_word" >&5 +echo "configure:6774: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6805,7 +6806,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6809: checking for $ac_word" >&5 +echo "configure:6810: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6877,7 +6878,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6881: checking for $ac_word" >&5 +echo "configure:6882: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INTLBISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6910,7 +6911,7 @@ done ac_verc_fail=yes else echo $ac_n "checking version of bison""... $ac_c" 1>&6 -echo "configure:6914: checking version of bison" >&5 +echo "configure:6915: checking version of bison" >&5 ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; @@ -6955,7 +6956,7 @@ EOF if test "x$CATOBJEXT" != x; then echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:6959: checking for catalogs to be installed" >&5 +echo "configure:6960: checking for catalogs to be installed" >&5 # Look for .po and .gmo files in the source directory. CATALOGS= XLINGUAS= @@ -7013,7 +7014,7 @@ fi case $host_os in win32 | pe | cygwin* | mingw32* | uwin*) echo $ac_n "checking whether windows registry support is requested""... $ac_c" 1>&6 -echo "configure:7017: checking whether windows registry support is requested" >&5 +echo "configure:7018: checking whether windows registry support is requested" >&5 if test "x$enable_win32_registry" != xno; then cat >> confdefs.h <<\EOF #define ENABLE_WIN32_REGISTRY 1 @@ -7022,14 +7023,14 @@ EOF echo "$ac_t""yes" 1>&6 echo $ac_n "checking for library containing RegOpenKeyExA""... $ac_c" 1>&6 -echo "configure:7026: checking for library containing RegOpenKeyExA" >&5 +echo "configure:7027: checking for library containing RegOpenKeyExA" >&5 if eval "test \"`echo '$''{'ac_cv_search_RegOpenKeyExA'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_RegOpenKeyExA="no" cat > conftest.$ac_ext <<EOF -#line 7033 "configure" +#line 7034 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7040,7 +7041,7 @@ int main() { RegOpenKeyExA() ; return 0; } EOF -if { (eval echo configure:7044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7045: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_RegOpenKeyExA="none required" else @@ -7051,7 +7052,7 @@ rm -f conftest* test "$ac_cv_search_RegOpenKeyExA" = "no" && for i in advapi32; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext <<EOF -#line 7055 "configure" +#line 7056 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7062,7 +7063,7 @@ int main() { RegOpenKeyExA() ; return 0; } EOF -if { (eval echo configure:7066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_RegOpenKeyExA="-l$i" break @@ -7104,7 +7105,7 @@ esac if test "x$enable_win32_registry" != xno; then echo $ac_n "checking registry key on windows hosts""... $ac_c" 1>&6 -echo "configure:7108: checking registry key on windows hosts" >&5 +echo "configure:7109: checking registry key on windows hosts" >&5 cat >> confdefs.h <<EOF #define WIN32_REGISTRY_KEY "$gcc_cv_win32_registry_key" EOF @@ -7317,7 +7318,7 @@ fi # Figure out what assembler we will be using. echo $ac_n "checking what assembler to use""... $ac_c" 1>&6 -echo "configure:7321: checking what assembler to use" >&5 +echo "configure:7322: checking what assembler to use" >&5 gcc_cv_as= gcc_cv_gas_major_version= gcc_cv_gas_minor_version= @@ -7411,7 +7412,7 @@ fi # Figure out what linker we will be using. echo $ac_n "checking what linker to use""... $ac_c" 1>&6 -echo "configure:7415: checking what linker to use" >&5 +echo "configure:7416: checking what linker to use" >&5 gcc_cv_ld= gcc_cv_gld_major_version= gcc_cv_gld_minor_version= @@ -7504,7 +7505,7 @@ fi # Figure out what nm we will be using. echo $ac_n "checking what nm to use""... $ac_c" 1>&6 -echo "configure:7508: checking what nm to use" >&5 +echo "configure:7509: checking what nm to use" >&5 if test -x nm$host_exeext; then gcc_cv_nm=./nm$host_exeext elif test "x$program_prefix" != xNONE; then @@ -7516,7 +7517,7 @@ echo "$ac_t""$gcc_cv_nm" 1>&6 # Figure out what objdump we will be using. echo $ac_n "checking what objdump to use""... $ac_c" 1>&6 -echo "configure:7520: checking what objdump to use" >&5 +echo "configure:7521: checking what objdump to use" >&5 if test -x objdump$host_exeext; then gcc_cv_objdump=./objdump$host_exeext elif test "x$program_prefix" != xNONE; then @@ -7528,7 +7529,7 @@ echo "$ac_t""$gcc_cv_objdump" 1>&6 # Figure out what assembler alignment features are present. echo $ac_n "checking assembler alignment features""... $ac_c" 1>&6 -echo "configure:7532: checking assembler alignment features" >&5 +echo "configure:7533: checking assembler alignment features" >&5 gcc_cv_as_alignment_features=none if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then # Gas version 2.6 and later support for .balign and .p2align. @@ -7576,7 +7577,7 @@ fi echo "$ac_t""$gcc_cv_as_alignment_features" 1>&6 echo $ac_n "checking assembler subsection support""... $ac_c" 1>&6 -echo "configure:7580: checking assembler subsection support" >&5 +echo "configure:7581: checking assembler subsection support" >&5 gcc_cv_as_subsections=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then @@ -7616,7 +7617,7 @@ fi echo "$ac_t""$gcc_cv_as_subsections" 1>&6 echo $ac_n "checking assembler weak support""... $ac_c" 1>&6 -echo "configure:7620: checking assembler weak support" >&5 +echo "configure:7621: checking assembler weak support" >&5 gcc_cv_as_weak=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 2 -o "$gcc_cv_gas_major_version" -gt 2; then @@ -7639,7 +7640,7 @@ fi echo "$ac_t""$gcc_cv_as_weak" 1>&6 echo $ac_n "checking assembler hidden support""... $ac_c" 1>&6 -echo "configure:7643: checking assembler hidden support" >&5 +echo "configure:7644: checking assembler hidden support" >&5 gcc_cv_as_hidden=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 \ @@ -7715,7 +7716,7 @@ esac echo $ac_n "checking assembler leb128 support""... $ac_c" 1>&6 -echo "configure:7719: checking assembler leb128 support" >&5 +echo "configure:7720: checking assembler leb128 support" >&5 gcc_cv_as_leb128=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 11 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then @@ -7760,7 +7761,7 @@ fi echo "$ac_t""$gcc_cv_as_leb128" 1>&6 echo $ac_n "checking assembler eh_frame optimization""... $ac_c" 1>&6 -echo "configure:7764: checking assembler eh_frame optimization" >&5 +echo "configure:7765: checking assembler eh_frame optimization" >&5 gcc_cv_as_eh_frame=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then @@ -7841,7 +7842,7 @@ fi echo "$ac_t""$gcc_cv_as_eh_frame" 1>&6 echo $ac_n "checking assembler section merging support""... $ac_c" 1>&6 -echo "configure:7845: checking assembler section merging support" >&5 +echo "configure:7846: checking assembler section merging support" >&5 gcc_cv_as_shf_merge=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then @@ -7864,7 +7865,7 @@ fi echo "$ac_t""$gcc_cv_as_shf_merge" 1>&6 echo $ac_n "checking assembler thread-local storage support""... $ac_c" 1>&6 -echo "configure:7868: checking assembler thread-local storage support" >&5 +echo "configure:7869: checking assembler thread-local storage support" >&5 gcc_cv_as_tls=no conftest_s= tls_first_major= @@ -8007,7 +8008,7 @@ case "$target" in # All TARGET_ABI_OSF targets. alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*) echo $ac_n "checking assembler supports explicit relocations""... $ac_c" 1>&6 -echo "configure:8011: checking assembler supports explicit relocations" >&5 +echo "configure:8012: checking assembler supports explicit relocations" >&5 if eval "test \"`echo '$''{'gcc_cv_as_explicit_relocs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8057,7 +8058,7 @@ EOF ;; sparc*-*-*) echo $ac_n "checking assembler .register pseudo-op support""... $ac_c" 1>&6 -echo "configure:8061: checking assembler .register pseudo-op support" >&5 +echo "configure:8062: checking assembler .register pseudo-op support" >&5 if eval "test \"`echo '$''{'gcc_cv_as_register_pseudo_op'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8085,7 +8086,7 @@ EOF fi echo $ac_n "checking assembler supports -relax""... $ac_c" 1>&6 -echo "configure:8089: checking assembler supports -relax" >&5 +echo "configure:8090: checking assembler supports -relax" >&5 if eval "test \"`echo '$''{'gcc_cv_as_relax_opt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8113,7 +8114,7 @@ EOF fi echo $ac_n "checking assembler and linker support unaligned pc related relocs""... $ac_c" 1>&6 -echo "configure:8117: checking assembler and linker support unaligned pc related relocs" >&5 +echo "configure:8118: checking assembler and linker support unaligned pc related relocs" >&5 if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8140,7 +8141,7 @@ EOF fi echo $ac_n "checking assembler and linker support unaligned pc related relocs against hidden symbols""... $ac_c" 1>&6 -echo "configure:8144: checking assembler and linker support unaligned pc related relocs against hidden symbols" >&5 +echo "configure:8145: checking assembler and linker support unaligned pc related relocs against hidden symbols" >&5 if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel_hidden'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8180,7 +8181,7 @@ EOF fi echo $ac_n "checking for assembler offsetable %lo() support""... $ac_c" 1>&6 -echo "configure:8184: checking for assembler offsetable %lo() support" >&5 +echo "configure:8185: checking for assembler offsetable %lo() support" >&5 if eval "test \"`echo '$''{'gcc_cv_as_offsetable_lo10'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8219,7 +8220,7 @@ EOF i[34567]86-*-* | x86_64-*-*) echo $ac_n "checking assembler instructions""... $ac_c" 1>&6 -echo "configure:8223: checking assembler instructions" >&5 +echo "configure:8224: checking assembler instructions" >&5 gcc_cv_as_instructions= if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then @@ -8246,7 +8247,7 @@ EOF echo "$ac_t""$gcc_cv_as_instructions" 1>&6 echo $ac_n "checking assembler GOTOFF in data directives""... $ac_c" 1>&6 -echo "configure:8250: checking assembler GOTOFF in data directives" >&5 +echo "configure:8251: checking assembler GOTOFF in data directives" >&5 gcc_cv_as_gotoff_in_data=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x then @@ -8276,7 +8277,7 @@ EOF esac echo $ac_n "checking assembler dwarf2 debug_line support""... $ac_c" 1>&6 -echo "configure:8280: checking assembler dwarf2 debug_line support" >&5 +echo "configure:8281: checking assembler dwarf2 debug_line support" >&5 gcc_cv_as_dwarf2_debug_line=no # ??? Not all targets support dwarf2 debug_line, even within a version # of gas. Moreover, we need to emit a valid instruction to trigger any @@ -8333,7 +8334,7 @@ fi echo "$ac_t""$gcc_cv_as_dwarf2_debug_line" 1>&6 echo $ac_n "checking assembler --gdwarf2 support""... $ac_c" 1>&6 -echo "configure:8337: checking assembler --gdwarf2 support" >&5 +echo "configure:8338: checking assembler --gdwarf2 support" >&5 gcc_cv_as_gdwarf2_flag=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then @@ -8362,7 +8363,7 @@ fi echo "$ac_t""$gcc_cv_as_gdwarf2_flag" 1>&6 echo $ac_n "checking assembler --gstabs support""... $ac_c" 1>&6 -echo "configure:8366: checking assembler --gstabs support" >&5 +echo "configure:8367: checking assembler --gstabs support" >&5 gcc_cv_as_gstabs_flag=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then @@ -8390,7 +8391,7 @@ fi echo "$ac_t""$gcc_cv_as_gstabs_flag" 1>&6 echo $ac_n "checking linker read-only and read-write section mixing""... $ac_c" 1>&6 -echo "configure:8394: checking linker read-only and read-write section mixing" >&5 +echo "configure:8395: checking linker read-only and read-write section mixing" >&5 gcc_cv_ld_ro_rw_mix=unknown if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then @@ -8428,7 +8429,7 @@ fi echo "$ac_t""$gcc_cv_ld_ro_rw_mix" 1>&6 echo $ac_n "checking linker PT_GNU_EH_FRAME support""... $ac_c" 1>&6 -echo "configure:8432: checking linker PT_GNU_EH_FRAME support" >&5 +echo "configure:8433: checking linker PT_GNU_EH_FRAME support" >&5 gcc_cv_ld_eh_frame_hdr=no if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then @@ -8452,7 +8453,7 @@ echo "$ac_t""$gcc_cv_ld_eh_frame_hdr" 1>&6 case "$target" in mips*-*-*) echo $ac_n "checking whether libgloss uses STARTUP directives consistently""... $ac_c" 1>&6 -echo "configure:8456: checking whether libgloss uses STARTUP directives consistently" >&5 +echo "configure:8457: checking whether libgloss uses STARTUP directives consistently" >&5 gcc_cv_mips_libgloss_startup=no gcc_cv_libgloss_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/libgloss if test "x$exec_prefix" = xNONE; then @@ -8656,7 +8657,7 @@ fi echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:8660: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:8661: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" @@ -8969,6 +8970,7 @@ ${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xma + # Echo that links are built if test x$host = x$target then @@ -9277,6 +9279,7 @@ s%@host_extra_gcc_objs@%$host_extra_gcc_objs%g s%@host_xm_file_list@%$host_xm_file_list%g s%@host_xm_file@%$host_xm_file%g s%@host_xm_defines@%$host_xm_defines%g +s%@out_host_hook_obj@%$out_host_hook_obj%g s%@install@%$install%g s%@lang_options_files@%$lang_options_files%g s%@lang_specs_files@%$lang_specs_files%g diff --git a/gcc/configure.in b/gcc/configure.in index 4ec16ea3dcd..7376eee3448 100644 --- a/gcc/configure.in +++ b/gcc/configure.in @@ -956,6 +956,7 @@ else echo " $srcdir/config/$f" done fi +echo "Using ${out_host_hook_obj} for host machine hooks." if test "$host_xm_file" != "$build_xm_file"; then count=a @@ -2858,6 +2859,7 @@ AC_SUBST(host_extra_gcc_objs) AC_SUBST(host_xm_file_list) AC_SUBST(host_xm_file) AC_SUBST(host_xm_defines) +AC_SUBST(out_host_hook_obj) AC_SUBST(install) AC_SUBST(lang_options_files) AC_SUBST(lang_specs_files) diff --git a/gcc/doc/hostconfig.texi b/gcc/doc/hostconfig.texi index 33c0a3bb28b..c13d364924d 100644 --- a/gcc/doc/hostconfig.texi +++ b/gcc/doc/hostconfig.texi @@ -1,51 +1,60 @@ -@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -@c 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +@c 2000, 2001, 2002, 2003 Free Software Foundation, Inc. @c This is part of the GCC manual. -@c For copying conditions, see the file gcc.texi. +@c For copying conditions, see the file gccint.texi. @node Host Config -@chapter Host Configuration Headers +@chapter Host Configuration +@cindex host configuration + +Most details about the machine and system on which the compiler is +actually running are detected by the @command{configure} script. Some +things are impossible for @command{configure} to detect; these are +described in two ways, either by macros defined in a file named +@file{xm-@var{machine}.h} or by hook functions in the file specified +by the @var{out_host_hook_obj} variable in @file{config.gcc}. (The +intention is that very few hosts will need a header file but nearly +every fully supported host will need to override some hooks.) + +If you need to define only a few macros, and they have simple +definitions, consider using the @code{xm_defines} variable in your +@file{config.gcc} entry instead of creating a host configuration +header. @xref{System Config}. + +@menu +* Host Common:: Things every host probably needs implemented. +* Filesystem:: Your host can't have the letter `a' in filenames? +* Host Misc:: Rare configuration options for hosts. +@end menu + +@node Host Common +@section Host Common +@cindex host hooks +@cindex host functions + +Some things are just not portable, even between similar operating systems, +and are too difficult for autoconf to detect. They get implemented using +hook functions in the file specified by the @var{host_hook_obj} +variable in @file{config.gcc}. + +@deftypefn {Host Hook} void HOST_HOOKS_EXTRA_SIGNALS (void) +This host hook is used to set up handling for extra signals. The most +common thing to do in this hook is to detect stack overflow. +@end deftypefn + +@node Filesystem +@section Host Filesystem @cindex configuration file @cindex @file{xm-@var{machine}.h} -Host configuration headers contain macro definitions that describe the -machine and system on which the compiler is running. They are usually -unnecessary. Most of the things GCC needs to know about the host -system can be deduced by the @command{configure} script. - -If your host does need a special configuration header, it should be -named @file{xm-@var{machine}.h}, where @var{machine} is a short mnemonic -for the machine. Here are some macros which this header can define. +GCC supports some filesystems that are very different to standard Unix +filesystems. These macros, defined in @file{xm-@var{machine}.h}, +let you choose. @ftable @code @item VMS Define this macro if the host system is VMS@. -@item FATAL_EXIT_CODE -A C expression for the status code to be returned when the compiler -exits after serious errors. The default is the system-provided macro -@samp{EXIT_FAILURE}, or @samp{1} if the system doesn't define that -macro. Define this macro only if these defaults are incorrect. - -@item SUCCESS_EXIT_CODE -A C expression for the status code to be returned when the compiler -exits without serious errors. (Warnings are not serious errors.) The -default is the system-provided macro @samp{EXIT_SUCCESS}, or @samp{0} if -the system doesn't define that macro. Define this macro only if these -defaults are incorrect. - -@item USE_C_ALLOCA -Define this macro if GCC should use the C implementation of @code{alloca} -provided by @file{libiberty.a}. This only affects how some parts of the -compiler itself allocate memory. It does not change code generation. - -When GCC is built with a compiler other than itself, the C @code{alloca} -is always used. This is because most other implementations have serious -bugs. You should define this macro only on a system where no -stack-based @code{alloca} can possibly work. For instance, if a system -has a small limit on the size of the stack, GCC's builtin @code{alloca} -will not work reliably. - @item HAVE_DOS_BASED_FILE_SYSTEM Define this macro if the host file system obeys the semantics defined by MS-DOS instead of Unix. DOS file systems are case insensitive, file @@ -86,14 +95,6 @@ you do not define this macro, GCC will use @samp{/dev/null} as the bit bucket. If the host does not support a bit bucket, define this macro to an invalid filename. -@item COLLECT2_HOST_INITIALIZATION -If defined, a C statement (sans semicolon) that performs host-dependent -initialization when @code{collect2} is being initialized. - -@item GCC_DRIVER_HOST_INITIALIZATION -If defined, a C statement (sans semicolon) that performs host-dependent -initialization when a compilation driver is being initialized. - @item UPDATE_PATH_HOST_CANONICALIZE (@var{path}) If defined, a C statement (sans semicolon) that performs host-dependent canonicalization when a path used in a compilation driver or @@ -112,6 +113,46 @@ unique to each dump file kind, e.g. @samp{rtl}. If you do not define this macro, GCC will use @samp{.%02d.}. You should define this macro if using the default will create an invalid file name. +@end ftable + +@node Host Misc +@section Host Misc +@cindex configuration file +@cindex @file{xm-@var{machine}.h} + +@ftable @code +@item FATAL_EXIT_CODE +A C expression for the status code to be returned when the compiler +exits after serious errors. The default is the system-provided macro +@samp{EXIT_FAILURE}, or @samp{1} if the system doesn't define that +macro. Define this macro only if these defaults are incorrect. + +@item SUCCESS_EXIT_CODE +A C expression for the status code to be returned when the compiler +exits without serious errors. (Warnings are not serious errors.) The +default is the system-provided macro @samp{EXIT_SUCCESS}, or @samp{0} if +the system doesn't define that macro. Define this macro only if these +defaults are incorrect. + +@item USE_C_ALLOCA +Define this macro if GCC should use the C implementation of @code{alloca} +provided by @file{libiberty.a}. This only affects how some parts of the +compiler itself allocate memory. It does not change code generation. + +When GCC is built with a compiler other than itself, the C @code{alloca} +is always used. This is because most other implementations have serious +bugs. You should define this macro only on a system where no +stack-based @code{alloca} can possibly work. For instance, if a system +has a small limit on the size of the stack, GCC's builtin @code{alloca} +will not work reliably. + +@item COLLECT2_HOST_INITIALIZATION +If defined, a C statement (sans semicolon) that performs host-dependent +initialization when @code{collect2} is being initialized. + +@item GCC_DRIVER_HOST_INITIALIZATION +If defined, a C statement (sans semicolon) that performs host-dependent +initialization when a compilation driver is being initialized. @item SMALL_ARG_MAX Define this macro if the host system has a small limit on the total @@ -123,8 +164,3 @@ In addition, if @command{configure} generates an incorrect definition of any of the macros in @file{auto-host.h}, you can override that definition in a host configuration header. If you need to do this, first see if it is possible to fix @command{configure}. - -If you need to define only a few of these macros, and they have simple -definitions, consider using the @code{xm_defines} variable in your -@file{config.gcc} entry instead of creating a host configuration header. -@xref{System Config}. diff --git a/gcc/host-default.c b/gcc/host-default.c new file mode 100644 index 00000000000..b38d13aa0f9 --- /dev/null +++ b/gcc/host-default.c @@ -0,0 +1,28 @@ +/* Default host-specific hook definitions. + Copyright (C) 2003 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING. If not, write to the Free +Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. */ + + +#include "config.h" +#include "system.h" +#include "coretypes.h" +#include "hosthooks.h" +#include "hosthooks-def.h" + +const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER; diff --git a/gcc/hosthooks-def.h b/gcc/hosthooks-def.h new file mode 100644 index 00000000000..488e3ea2e97 --- /dev/null +++ b/gcc/hosthooks-def.h @@ -0,0 +1,33 @@ +/* Default macros to initialize the lang_hooks data structure. + Copyright 2003 Free Software Foundation, Inc. + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#ifndef GCC_HOST_HOOKS_DEF_H +#define GCC_HOST_HOOKS_DEF_H + +#include "hooks.h" + +#define HOST_HOOKS_EXTRA_SIGNALS hook_void_void + +/* The structure is defined in hosthooks.h. */ +#define HOST_HOOKS_INITIALIZER { \ + HOST_HOOKS_EXTRA_SIGNALS \ +} + +#endif /* GCC_HOST_HOOKS_DEF_H */ diff --git a/gcc/hosthooks.h b/gcc/hosthooks.h new file mode 100644 index 00000000000..92b9e5d6e32 --- /dev/null +++ b/gcc/hosthooks.h @@ -0,0 +1,34 @@ +/* The host_hooks data structure. + Copyright 2003 Free Software Foundation, Inc. + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#ifndef GCC_HOST_HOOKS_H +#define GCC_HOST_HOOKS_H + +struct host_hooks +{ + void (*extra_signals) PARAMS((void)); + + /* Whenever you add entries here, make sure you adjust hosthooks-def.h. */ +}; + +/* Each host provides its own. */ +extern const struct host_hooks host_hooks; + +#endif /* GCC_LANG_HOOKS_H */ diff --git a/gcc/toplev.c b/gcc/toplev.c index f783ed92f73..7b49110d925 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -74,6 +74,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include "langhooks.h" #include "cfglayout.h" #include "cfgloop.h" +#include "hosthooks.h" #if defined (DWARF2_UNWIND_INFO) || defined (DWARF2_DEBUGGING_INFO) #include "dwarf2out.h" @@ -4759,6 +4760,9 @@ general_init (argv0) signal (SIGFPE, crash_signal); #endif + /* Other host-specific signal setup. */ + (*host_hooks.extra_signals)(); + /* Initialize the diagnostics reporting machinery, so option parsing can give warnings and errors. */ diagnostic_initialize (global_dc); |