OSDN Git Service

2008-07-28 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / configure.ac
1 # configure.ac for GCC
2 # Process this file with autoconf to generate a configuration script.
3
4 # Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
5 # 2007, 2008 Free Software Foundation, Inc.
6
7 #This file is part of GCC.
8
9 #GCC is free software; you can redistribute it and/or modify it under
10 #the terms of the GNU General Public License as published by the Free
11 #Software Foundation; either version 3, or (at your option) any later
12 #version.
13
14 #GCC is distributed in the hope that it will be useful, but WITHOUT
15 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 #FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
17 #for more details.
18
19 #You should have received a copy of the GNU General Public License
20 #along with GCC; see the file COPYING3.  If not see
21 #<http://www.gnu.org/licenses/>.
22
23 # --------------------------------
24 # Initialization and sanity checks
25 # --------------------------------
26
27 AC_PREREQ(2.59)
28 AC_INIT
29 AC_CONFIG_SRCDIR(tree.c)
30 AC_CONFIG_HEADER(auto-host.h:config.in)
31
32 gcc_version=`cat $srcdir/BASE-VER`
33
34 # Determine the host, build, and target systems
35 AC_CANONICAL_BUILD
36 AC_CANONICAL_HOST
37 AC_CANONICAL_TARGET
38
39 # Determine the noncanonical target name, for directory use.
40 ACX_NONCANONICAL_TARGET
41
42 # Determine the target- and build-specific subdirectories
43 GCC_TOPLEV_SUBDIRS
44
45 # Set program_transform_name
46 AC_ARG_PROGRAM
47
48 # Check for bogus environment variables.
49 # Test if LIBRARY_PATH contains the notation for the current directory
50 # since this would lead to problems installing/building glibc.
51 # LIBRARY_PATH contains the current directory if one of the following
52 # is true:
53 # - one of the terminals (":" and ";") is the first or last sign
54 # - two terminals occur directly after each other
55 # - the path contains an element with a dot in it
56 AC_MSG_CHECKING(LIBRARY_PATH variable)
57 changequote(,)dnl
58 case ${LIBRARY_PATH} in
59   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
60     library_path_setting="contains current directory"
61     ;;
62   *)
63     library_path_setting="ok"
64     ;;
65 esac
66 changequote([,])dnl
67 AC_MSG_RESULT($library_path_setting)
68 if test "$library_path_setting" != "ok"; then
69 AC_MSG_ERROR([
70 *** LIBRARY_PATH shouldn't contain the current directory when
71 *** building gcc. Please change the environment variable
72 *** and run configure again.])
73 fi
74
75 # Test if GCC_EXEC_PREFIX contains the notation for the current directory
76 # since this would lead to problems installing/building glibc.
77 # GCC_EXEC_PREFIX contains the current directory if one of the following
78 # is true:
79 # - one of the terminals (":" and ";") is the first or last sign
80 # - two terminals occur directly after each other
81 # - the path contains an element with a dot in it
82 AC_MSG_CHECKING(GCC_EXEC_PREFIX variable)
83 changequote(,)dnl
84 case ${GCC_EXEC_PREFIX} in
85   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
86     gcc_exec_prefix_setting="contains current directory"
87     ;;
88   *)
89     gcc_exec_prefix_setting="ok"
90     ;;
91 esac
92 changequote([,])dnl
93 AC_MSG_RESULT($gcc_exec_prefix_setting)
94 if test "$gcc_exec_prefix_setting" != "ok"; then
95 AC_MSG_ERROR([
96 *** GCC_EXEC_PREFIX shouldn't contain the current directory when
97 *** building gcc. Please change the environment variable
98 *** and run configure again.])
99 fi
100
101 # -----------
102 # Directories
103 # -----------
104
105 # Specify the local prefix
106 local_prefix=
107 AC_ARG_WITH(local-prefix,
108 [  --with-local-prefix=DIR specifies directory to put local include],
109 [case "${withval}" in
110 yes)    AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;;
111 no)     ;;
112 *)      local_prefix=$with_local_prefix ;;
113 esac])
114
115 # Default local prefix if it is empty
116 if test x$local_prefix = x; then
117         local_prefix=/usr/local
118 fi
119
120 # Don't set gcc_gxx_include_dir to gxx_include_dir since that's only
121 # passed in by the toplevel make and thus we'd get different behavior
122 # depending on where we built the sources.
123 gcc_gxx_include_dir=
124 # Specify the g++ header file directory
125 AC_ARG_WITH(gxx-include-dir,
126 [  --with-gxx-include-dir=DIR
127                           specifies directory to put g++ header files],
128 [case "${withval}" in
129 yes)    AC_MSG_ERROR(bad value ${withval} given for g++ include directory) ;;
130 no)     ;;
131 *)      gcc_gxx_include_dir=$with_gxx_include_dir ;;
132 esac])
133
134 # This logic must match libstdc++-v3/acinclude.m4:GLIBCXX_EXPORT_INSTALL_INFO.
135 if test x${gcc_gxx_include_dir} = x; then
136   if test x${enable_version_specific_runtime_libs} = xyes; then
137     gcc_gxx_include_dir='${libsubdir}/include/c++'
138   else
139     libstdcxx_incdir='include/c++/$(version)'
140     if test x$host != x$target; then
141        libstdcxx_incdir="$target_alias/$libstdcxx_incdir"
142     fi
143     gcc_gxx_include_dir="\$(libsubdir)/\$(libsubdir_to_prefix)$libstdcxx_incdir"
144   fi
145 fi
146
147 AC_ARG_WITH(cpp_install_dir,
148 [  --with-cpp-install-dir=DIR
149                           install the user visible C preprocessor in DIR
150                           (relative to PREFIX) as well as PREFIX/bin],
151 [if test x$withval = xyes; then
152   AC_MSG_ERROR([option --with-cpp-install-dir requires an argument])
153 elif test x$withval != xno; then
154   cpp_install_dir=$withval
155 fi])
156
157 # We would like to our source tree to be readonly.  However when releases or
158 # pre-releases are generated, the flex/bison generated files as well as the 
159 # various formats of manuals need to be included along with the rest of the
160 # sources.  Therefore we have --enable-generated-files-in-srcdir to do 
161 # just that.
162
163 AC_MSG_CHECKING([whether to place generated files in the source directory])
164   dnl generated-files-in-srcdir is disabled by default
165   AC_ARG_ENABLE(generated-files-in-srcdir, 
166 [  --enable-generated-files-in-srcdir
167                           put copies of generated files in source dir
168                           intended for creating source tarballs for users
169                           without texinfo bison or flex.],
170       generated_files_in_srcdir=$enableval,
171       generated_files_in_srcdir=no)
172
173 AC_MSG_RESULT($generated_files_in_srcdir)
174
175 if test "$generated_files_in_srcdir" = "yes"; then
176   GENINSRC=''
177 else
178   GENINSRC='#'
179 fi
180 AC_SUBST(GENINSRC)
181
182 # -------------------
183 # Find default linker
184 # -------------------
185
186 # With GNU ld
187 AC_ARG_WITH(gnu-ld,
188 [  --with-gnu-ld           arrange to work with GNU ld.],
189 gnu_ld_flag="$with_gnu_ld",
190 gnu_ld_flag=no)
191
192 # With pre-defined ld
193 AC_ARG_WITH(ld,
194 [  --with-ld               arrange to use the specified ld (full pathname)],
195 DEFAULT_LINKER="$with_ld")
196 if test x"${DEFAULT_LINKER+set}" = x"set"; then
197   if test ! -x "$DEFAULT_LINKER"; then
198     AC_MSG_ERROR([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
199   elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
200     gnu_ld_flag=yes
201   fi
202   AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER",
203         [Define to enable the use of a default linker.])
204 fi
205
206 gnu_ld=`if test x"$gnu_ld_flag" = x"yes"; then echo 1; else echo 0; fi`
207 AC_DEFINE_UNQUOTED(HAVE_GNU_LD, $gnu_ld, [Define if using GNU ld.])
208
209 AC_MSG_CHECKING([whether a default linker was specified])
210 if test x"${DEFAULT_LINKER+set}" = x"set"; then
211   if test x"$gnu_ld_flag" = x"no"; then
212     AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
213   else
214     AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
215   fi
216 else
217   AC_MSG_RESULT(no)
218 fi
219
220 # With demangler in GNU ld
221 AC_ARG_WITH(demangler-in-ld,
222 [  --with-demangler-in-ld  try to use demangler in GNU ld.],
223 demangler_in_ld="$with_demangler_in_ld",
224 demangler_in_ld=no)
225
226 # ----------------------
227 # Find default assembler
228 # ----------------------
229
230 # With GNU as
231 AC_ARG_WITH(gnu-as,
232 [  --with-gnu-as           arrange to work with GNU as],
233 gas_flag="$with_gnu_as",
234 gas_flag=no)
235
236 AC_ARG_WITH(as,
237 [  --with-as               arrange to use the specified as (full pathname)],
238 DEFAULT_ASSEMBLER="$with_as")
239 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
240   if test ! -x "$DEFAULT_ASSEMBLER"; then
241     AC_MSG_ERROR([cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER])
242   elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
243     gas_flag=yes
244   fi
245   AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER",
246         [Define to enable the use of a default assembler.])
247 fi
248
249 gnu_as=`if test x"$gas_flag" = x"yes"; then echo 1; else echo 0; fi`
250 AC_DEFINE_UNQUOTED(HAVE_GNU_AS, $gnu_as, [Define if using GNU as.])
251
252 AC_MSG_CHECKING([whether a default assembler was specified])
253 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
254   if test x"$gas_flag" = x"no"; then
255     AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
256   else
257     AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
258   fi
259 else
260   AC_MSG_RESULT(no)
261 fi
262
263 # ---------------
264 # Find C compiler
265 # ---------------
266
267 # If a non-executable a.out is present (e.g. created by GNU as above even if
268 # invoked with -v only), the IRIX 6 native ld just overwrites the existing
269 # file, even when creating an executable, so an execution test fails.
270 # Remove possible default executable files to avoid this.
271 #
272 # FIXME: This really belongs into AC_PROG_CC and can be removed once
273 # Autoconf includes it.
274 rm -f a.out a.exe b.out
275
276 # Find the native compiler
277 AC_PROG_CC
278 AM_PROG_CC_C_O
279 ACX_PROG_GNAT([-I"$srcdir"/ada])
280
281 # autoconf is lame and doesn't give us any substitution variable for this.
282 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
283   NO_MINUS_C_MINUS_O=yes
284 else
285   OUTPUT_OPTION='-o $@'
286 fi
287 AC_SUBST(NO_MINUS_C_MINUS_O)
288 AC_SUBST(OUTPUT_OPTION)
289
290 # Remove the -O2: for historical reasons, unless bootstrapping we prefer
291 # optimizations to be activated explicitly by the toplevel.
292 case "$CC" in
293   */prev-gcc/xgcc*) ;;
294   *) CFLAGS=`echo $CFLAGS | sed "s/-O[[s0-9]]* *//" ` ;;
295 esac
296 AC_SUBST(CFLAGS)
297
298 # -------------------------
299 # Check C compiler features
300 # -------------------------
301
302 AC_USE_SYSTEM_EXTENSIONS
303 AC_PROG_CPP
304 AC_C_INLINE
305
306 # sizeof(char) is 1 by definition.
307 AC_CHECK_SIZEOF(void *)
308 AC_CHECK_SIZEOF(short)
309 AC_CHECK_SIZEOF(int)
310 AC_CHECK_SIZEOF(long)
311 AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)])
312 AC_CHECK_TYPES([__int64], [AC_CHECK_SIZEOF(__int64)])
313
314 # ---------------------
315 # Warnings and checking
316 # ---------------------
317
318 # Check $CC warning features (if it's GCC).
319 # We want to use -pedantic, but we don't want warnings about
320 # * 'long long'
321 # * variadic macros
322 # * overlong strings
323 # So, we only use -pedantic if we can disable those warnings.
324
325 ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wstrict-prototypes \
326           -Wmissing-prototypes -Wcast-qual], [loose_warn])
327 ACX_PROG_CC_WARNING_OPTS([-Wold-style-definition -Wc++-compat \
328                           -Wmissing-format-attribute], [strict_warn])
329 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC([-Wno-long-long -Wno-variadic-macros \
330                                      -Wno-overlength-strings], [strict_warn])
331 ACX_PROG_CC_WARNINGS_ARE_ERRORS([manual], [strict_warn])
332
333 # The above macros do nothing if the compiler is not GCC.  However, the
334 # Makefile has more goo to add other flags, so this variabl is used to
335 # enables warnings only for GCC.
336 warn_cflags=
337 if test "x$GCC" = "xyes"; then
338   warn_cflags='$(GCC_WARN_CFLAGS)'
339 fi
340 AC_SUBST(warn_cflags)
341
342 # Enable expensive internal checks
343 is_release=
344 if test x"`cat $srcdir/DEV-PHASE`" != xexperimental; then
345   is_release=yes
346 fi
347
348 AC_ARG_ENABLE(checking,
349 [  --enable-checking[=LIST]
350                           enable expensive run-time checks.  With LIST,
351                           enable only specific categories of checks.
352                           Categories are: yes,no,all,none,release.
353                           Flags are: assert,df,fold,gc,gcac,gimple,misc,
354                           rtlflag,rtl,runtime,tree,valgrind,types.],
355 [ac_checking_flags="${enableval}"],[
356 # Determine the default checks.
357 if test x$is_release = x ; then
358   ac_checking_flags=yes
359 else
360   ac_checking_flags=release
361 fi])
362 IFS="${IFS=     }"; ac_save_IFS="$IFS"; IFS="$IFS,"
363 for check in release $ac_checking_flags
364 do
365         case $check in
366         # these set all the flags to specific states
367         yes)            ac_assert_checking=1 ; ac_checking=1 ; ac_df_checking= ;
368                         ac_fold_checking= ; ac_gc_checking=1 ;
369                         ac_gc_always_collect= ; ac_gimple_checking=1 ; ac_rtl_checking= ;
370                         ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;
371                         ac_tree_checking=1 ; ac_valgrind_checking= ;
372                         ac_types_checking=1 ;;
373         no|none)        ac_assert_checking= ; ac_checking= ; ac_df_checking= ;
374                         ac_fold_checking= ; ac_gc_checking= ;
375                         ac_gc_always_collect= ; ac_gimple_checking= ; ac_rtl_checking= ;
376                         ac_rtlflag_checking= ; ac_runtime_checking= ;
377                         ac_tree_checking= ; ac_valgrind_checking= ;
378                         ac_types_checking= ;;
379         all)            ac_assert_checking=1 ; ac_checking=1 ; ac_df_checking=1 ;
380                         ac_fold_checking=1 ; ac_gc_checking=1 ;
381                         ac_gc_always_collect=1 ; ac_gimple_checking=1 ; ac_rtl_checking=1 ;
382                         ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;
383                         ac_tree_checking=1 ; ac_valgrind_checking= ;
384                         ac_types_checking=1 ;;
385         release)        ac_assert_checking=1 ; ac_checking= ; ac_df_checking= ;
386                         ac_fold_checking= ; ac_gc_checking= ;
387                         ac_gc_always_collect= ; ac_gimple_checking= ; ac_rtl_checking= ;
388                         ac_rtlflag_checking= ; ac_runtime_checking=1 ;
389                         ac_tree_checking= ; ac_valgrind_checking= ;
390                         ac_types_checking= ;;
391         # these enable particular checks
392         assert)         ac_assert_checking=1 ;;
393         df)             ac_df_checking=1 ;;
394         fold)           ac_fold_checking=1 ;;
395         gc)             ac_gc_checking=1 ;;
396         gcac)           ac_gc_always_collect=1 ;;
397         gimple)         ac_gimple_checking=1 ;;
398         misc)           ac_checking=1 ;;
399         rtl)            ac_rtl_checking=1 ;;
400         rtlflag)        ac_rtlflag_checking=1 ;;
401         runtime)        ac_runtime_checking=1 ;;
402         tree)           ac_tree_checking=1 ;;
403         types)          ac_types_checking=1 ;;
404         valgrind)       ac_valgrind_checking=1 ;;
405         *)      AC_MSG_ERROR(unknown check category $check) ;;
406         esac
407 done
408 IFS="$ac_save_IFS"
409
410 nocommon_flag=""
411 if test x$ac_checking != x ; then
412   AC_DEFINE(ENABLE_CHECKING, 1,
413 [Define if you want more run-time sanity checks.  This one gets a grab
414    bag of miscellaneous but relatively cheap checks.])
415   nocommon_flag=-fno-common
416 fi
417 AC_SUBST(nocommon_flag)
418 if test x$ac_df_checking != x ; then
419   AC_DEFINE(ENABLE_DF_CHECKING, 1,
420 [Define if you want more run-time sanity checks for dataflow.])
421 fi
422 if test x$ac_assert_checking != x ; then
423   AC_DEFINE(ENABLE_ASSERT_CHECKING, 1,
424 [Define if you want assertions enabled.  This is a cheap check.])
425 fi
426 if test x$ac_gimple_checking != x ; then
427   AC_DEFINE(ENABLE_GIMPLE_CHECKING, 1,
428 [Define if you want operations on GIMPLE (the basic data structure of
429 the high-level optimizers) to be checked for dynamic type safety at
430 runtime.  This is moderately expensive.])
431 fi
432 GCC_TARGET_TEMPLATE(ENABLE_RUNTIME_CHECKING)
433 if test x$ac_runtime_checking != x ; then
434   AC_DEFINE(ENABLE_RUNTIME_CHECKING, 1,
435 [Define if you want runtime assertions enabled.  This is a cheap check.])
436 fi
437 if test x$ac_tree_checking != x ; then
438   AC_DEFINE(ENABLE_TREE_CHECKING, 1,
439 [Define if you want all operations on trees (the basic data
440    structure of the front ends) to be checked for dynamic type safety
441    at runtime.  This is moderately expensive.  The tree browser debugging
442    routines will also be enabled by this option.
443    ])
444   TREEBROWSER=tree-browser.o
445 fi
446 if test x$ac_types_checking != x ; then
447   AC_DEFINE(ENABLE_TYPES_CHECKING, 1,
448 [Define if you want all gimple types to be verified after gimplifiation.
449    This is cheap.
450    ])
451 fi
452 AC_SUBST(TREEBROWSER)
453 if test x$ac_rtl_checking != x ; then
454   AC_DEFINE(ENABLE_RTL_CHECKING, 1,
455 [Define if you want all operations on RTL (the basic data structure
456    of the optimizer and back end) to be checked for dynamic type safety
457    at runtime.  This is quite expensive.])
458 fi
459 if test x$ac_rtlflag_checking != x ; then
460   AC_DEFINE(ENABLE_RTL_FLAG_CHECKING, 1,
461 [Define if you want RTL flag accesses to be checked against the RTL
462    codes that are supported for each access macro.  This is relatively
463    cheap.])
464 fi
465 if test x$ac_gc_checking != x ; then
466   AC_DEFINE(ENABLE_GC_CHECKING, 1,
467 [Define if you want the garbage collector to do object poisoning and
468    other memory allocation checks.  This is quite expensive.])
469 fi
470 if test x$ac_gc_always_collect != x ; then
471   AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT, 1,
472 [Define if you want the garbage collector to operate in maximally
473    paranoid mode, validating the entire heap and collecting garbage at
474    every opportunity.  This is extremely expensive.])
475 fi
476 if test x$ac_fold_checking != x ; then
477   AC_DEFINE(ENABLE_FOLD_CHECKING, 1,
478 [Define if you want fold checked that it never destructs its argument.
479    This is quite expensive.])
480 fi
481 valgrind_path_defines=
482 valgrind_command=
483
484 dnl # This check AC_REQUIREs various stuff, so it *must not* be inside
485 dnl # an if statement.  This was the source of very frustrating bugs
486 dnl # in converting to autoconf 2.5x!
487 AC_CHECK_HEADER(valgrind.h, have_valgrind_h=yes, have_valgrind_h=no)
488
489 if test x$ac_valgrind_checking != x ; then
490   # It is certainly possible that there's valgrind but no valgrind.h.
491   # GCC relies on making annotations so we must have both.
492   AC_MSG_CHECKING(for VALGRIND_DISCARD in <valgrind/memcheck.h>)
493   AC_PREPROC_IFELSE([AC_LANG_SOURCE(
494     [[#include <valgrind/memcheck.h>
495 #ifndef VALGRIND_DISCARD
496 #error VALGRIND_DISCARD not defined
497 #endif]])],
498   [gcc_cv_header_valgrind_memcheck_h=yes],
499   [gcc_cv_header_valgrind_memcheck_h=no])
500   AC_MSG_RESULT($gcc_cv_header_valgrind_memcheck_h)
501   AC_MSG_CHECKING(for VALGRIND_DISCARD in <memcheck.h>)
502   AC_PREPROC_IFELSE([AC_LANG_SOURCE(
503     [[#include <memcheck.h>
504 #ifndef VALGRIND_DISCARD
505 #error VALGRIND_DISCARD not defined
506 #endif]])],
507   [gcc_cv_header_memcheck_h=yes],
508   [gcc_cv_header_memcheck_h=no])
509   AC_MSG_RESULT($gcc_cv_header_memcheck_h)
510   AM_PATH_PROG_WITH_TEST(valgrind_path, valgrind,
511         [$ac_dir/$ac_word --version | grep valgrind- >/dev/null 2>&1])
512   if test "x$valgrind_path" = "x" \
513     || (test $have_valgrind_h = no \
514         && test $gcc_cv_header_memcheck_h = no \
515         && test $gcc_cv_header_valgrind_memcheck_h = no); then
516         AC_MSG_ERROR([*** Can't find both valgrind and valgrind/memcheck.h, memcheck.h or valgrind.h])
517   fi
518   valgrind_path_defines=-DVALGRIND_PATH='\"'$valgrind_path'\"'
519   valgrind_command="$valgrind_path -q"
520   AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1,
521 [Define if you want to run subprograms and generated programs
522    through valgrind (a memory checker).  This is extremely expensive.])
523   if test $gcc_cv_header_valgrind_memcheck_h = yes; then
524     AC_DEFINE(HAVE_VALGRIND_MEMCHECK_H, 1,
525         [Define if valgrind's valgrind/memcheck.h header is installed.])
526   fi
527   if test $gcc_cv_header_memcheck_h = yes; then
528     AC_DEFINE(HAVE_MEMCHECK_H, 1,
529         [Define if valgrind's memcheck.h header is installed.])
530   fi
531 fi
532 AC_SUBST(valgrind_path_defines)
533 AC_SUBST(valgrind_command)
534
535 # Enable code coverage collection
536 AC_ARG_ENABLE(coverage,
537 [  --enable-coverage[=LEVEL]
538                           enable compiler's code coverage collection.
539                           Use to measure compiler performance and locate
540                           unused parts of the compiler. With LEVEL, specify
541                           optimization. Values are opt, noopt,
542                           default is noopt],
543 [case "${enableval}" in
544   yes|noopt)
545     coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O0"
546     ;;
547   opt)
548     coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2"
549     ;;
550   no)
551     # a.k.a. --disable-coverage
552     coverage_flags=""
553     ;;
554   *)
555     AC_MSG_ERROR(unknown coverage setting $enableval)
556     ;;
557 esac],
558 [coverage_flags=""])
559 AC_SUBST(coverage_flags)
560
561 AC_ARG_ENABLE(gather-detailed-mem-stats, 
562 [  --enable-gather-detailed-mem-stats         enable detailed memory allocation stats gathering], [],
563 [enable_gather_detailed_mem_stats=no])
564 if test x$enable_gather_detailed_mem_stats = xyes ; then
565   AC_DEFINE(GATHER_STATISTICS, 1,
566         [Define to enable detailed memory allocation stats gathering.])
567 fi
568
569 # -------------------------------
570 # Miscenalleous configure options
571 # -------------------------------
572
573 # With stabs
574 AC_ARG_WITH(stabs,
575 [  --with-stabs            arrange to use stabs instead of host debug format],
576 stabs="$with_stabs",
577 stabs=no)
578
579 # Determine whether or not multilibs are enabled.
580 AC_ARG_ENABLE(multilib,
581 [  --enable-multilib       enable library support for multiple ABIs],
582 [], [enable_multilib=yes])
583 AC_SUBST(enable_multilib)
584
585 # Enable __cxa_atexit for C++.
586 AC_ARG_ENABLE(__cxa_atexit,
587 [  --enable-__cxa_atexit   enable __cxa_atexit for C++],
588 [], [])
589
590 # Enable C extension for decimal float if target supports it.
591 AC_ARG_ENABLE(decimal-float,
592 [  --enable-decimal-float={no,yes,bid,dpd}
593                         enable decimal float extension to C.  Selecting 'bid'
594                         or 'dpd' choses which decimal floating point format
595                         to use],
596 [
597   case $enable_decimal_float in
598     yes | no | bid | dpd) ;;
599     *) AC_MSG_ERROR(['$enable_decimal_float' is an invalid value for --enable-decimal-float.
600 Valid choices are 'yes', 'bid', 'dpd', and 'no'.]) ;;
601   esac
602 ],
603 [
604   case $target in
605     powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux*)
606       enable_decimal_float=yes
607       ;;
608     *)
609       AC_MSG_WARN(decimal float is not supported for this target, ignored)
610       enable_decimal_float=no
611       ;;
612   esac
613 ])
614
615 dfp=`if test $enable_decimal_float != no; then echo 1; else echo 0; fi`
616 AC_DEFINE_UNQUOTED(ENABLE_DECIMAL_FLOAT, $dfp,
617 [Define to 1 to enable decimal float extension to C.])
618
619 # x86's use BID format instead of DPD
620 case x$enable_decimal_float in
621   xyes)
622     case $target in
623       i?86*-*-linux* | x86_64*-*-linux*)
624         enable_decimal_float=bid
625         ;;
626       *)
627         enable_decimal_float=dpd
628         ;;
629     esac
630     ;;
631   xno)
632     # ENABLE_DECIMAL_FLOAT is set to 0. But we have to have proper
633     # dependency on libdecnumber.
634     enable_decimal_float=dpd
635     ;;
636 esac
637 AC_SUBST(enable_decimal_float)
638
639 bid=`if test $enable_decimal_float = bid; then echo 1; else echo 0; fi`
640 AC_DEFINE_UNQUOTED(ENABLE_DECIMAL_BID_FORMAT, $bid,
641 [Define to 1 to specify that we are using the BID decimal floating
642 point format instead of DPD])
643
644 # Enable C extension for fixed-point arithmetic.
645 AC_ARG_ENABLE(fixed-point,
646 [  --enable-fixed-point    enable fixed-point arithmetic extension to C],
647 [
648 ],
649 [
650   case $target in
651     mips*-*-*)
652       case $host in
653         mips*-sgi-irix*)
654           AC_MSG_WARN(fixed-point is not supported on IRIX, ignored)
655           enable_fixed_point=no
656           ;;
657         *)
658           enable_fixed_point=yes
659           ;;
660       esac
661       ;;
662     *)
663       AC_MSG_WARN(fixed-point is not supported for this target, ignored)
664       enable_fixed_point=no
665       ;;
666   esac
667 ])
668 AC_SUBST(enable_fixed_point)
669
670 fixedpoint=`if test $enable_fixed_point = yes; then echo 1; else echo 0; fi`
671 AC_DEFINE_UNQUOTED(ENABLE_FIXED_POINT, $fixedpoint,
672 [Define to 1 to enable fixed-point arithmetic extension to C.])
673
674 # Enable threads
675 # Pass with no value to take the default
676 # Pass with a value to specify a thread package
677 AC_ARG_ENABLE(threads,
678 [  --enable-threads        enable thread usage for target GCC
679   --enable-threads=LIB    use LIB thread package for target GCC],,
680 [enable_threads=''])
681
682 AC_ARG_ENABLE(tls,
683 [  --enable-tls            enable or disable generation of tls code
684                           overriding the assembler check for tls support],
685 [
686   case $enable_tls in
687     yes | no) ;;
688     *) AC_MSG_ERROR(['$enable_tls' is an invalid value for --enable-tls.
689 Valid choices are 'yes' and 'no'.]) ;;
690   esac
691 ], [enable_tls=''])
692
693 AC_ARG_ENABLE(objc-gc,
694 [  --enable-objc-gc       enable the use of Boehm's garbage collector with
695                           the GNU Objective-C runtime],
696 if test x$enable_objc_gc = xno; then
697         objc_boehm_gc=''
698 else
699         objc_boehm_gc=1
700 fi,
701 objc_boehm_gc='')
702
703 AC_ARG_WITH(dwarf2,
704 [  --with-dwarf2           force the default debug format to be DWARF 2],
705 dwarf2="$with_dwarf2",
706 dwarf2=no)
707
708 AC_ARG_ENABLE(shared,
709 [  --disable-shared        don't provide a shared libgcc],
710 [
711   case $enable_shared in
712   yes | no) ;;
713   *)
714     enable_shared=no
715     IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
716     for pkg in $enableval; do
717       if test "X$pkg" = "Xgcc" || test "X$pkg" = "Xlibgcc"; then
718         enable_shared=yes
719       fi
720     done
721     IFS="$ac_save_ifs"
722     ;;
723   esac
724 ], [enable_shared=yes])
725 AC_SUBST(enable_shared)
726
727 AC_ARG_WITH(build-sysroot, 
728   [  --with-build-sysroot=sysroot
729                           use sysroot as the system root during the build])
730
731 AC_ARG_WITH(sysroot,
732 [  --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR.],
733 [
734  case ${with_sysroot} in
735  yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_noncanonical}/sys-root' ;;
736  *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
737  esac
738    
739  TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
740  CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$${sysroot_headers_suffix}$(NATIVE_SYSTEM_HEADER_DIR)'
741         
742  if test "x$prefix" = xNONE; then
743   test_prefix=/usr/local
744  else
745   test_prefix=$prefix
746  fi
747  if test "x$exec_prefix" = xNONE; then
748   test_exec_prefix=$test_prefix
749  else
750   test_exec_prefix=$exec_prefix
751  fi
752  case ${TARGET_SYSTEM_ROOT} in
753  "${test_prefix}"|"${test_prefix}/"*|\
754  "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
755  '${prefix}'|'${prefix}/'*|\
756  '${exec_prefix}'|'${exec_prefix}/'*)
757    t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
758    TARGET_SYSTEM_ROOT_DEFINE="$t"
759    ;;
760  esac
761 ], [
762  TARGET_SYSTEM_ROOT=
763  TARGET_SYSTEM_ROOT_DEFINE=
764  CROSS_SYSTEM_HEADER_DIR='$(gcc_tooldir)/sys-include'
765 ])
766 AC_SUBST(TARGET_SYSTEM_ROOT)
767 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
768 AC_SUBST(CROSS_SYSTEM_HEADER_DIR)
769
770 # Build with intermodule optimisations
771 AC_ARG_ENABLE(intermodule,
772 [  --enable-intermodule    build the compiler in one step],
773 [case ${enable_intermodule} in
774   yes) onestep="-onestep";;
775   *) onestep="";;
776 esac],
777 [onestep=""])
778 AC_SUBST(onestep)
779
780 ACX_PKGVERSION([GCC])
781 ACX_BUGURL([http://gcc.gnu.org/bugs.html])
782
783 # Sanity check enable_languages in case someone does not run the toplevel
784 # configure # script.
785 AC_ARG_ENABLE(languages,
786 [  --enable-languages=LIST specify which front-ends to build],
787 [case ,${enable_languages}, in
788        ,,|,yes,)
789                 # go safe -- we cannot be much sure without the toplevel
790                 # configure's
791                 # analysis of which target libs are present and usable
792                 enable_languages=c
793                 ;;
794          *,all,*)
795                 AC_MSG_ERROR([only the toplevel supports --enable-languages=all])
796                 ;;
797         *,c,*)
798                 ;;
799         *)
800                 enable_languages=c,${enable_languages}
801                 ;;
802 esac],
803 [enable_languages=c])
804
805 # Used by documentation targets
806 AC_SUBST(datarootdir)
807 AC_SUBST(docdir)
808 AC_SUBST(htmldir)
809
810 # -------------------------
811 # Checks for other programs
812 # -------------------------
813
814 AC_PROG_MAKE_SET
815
816 # Find some useful tools
817 AC_PROG_AWK
818 # We need awk to create options.c and options.h.
819 # Bail out if it's missing.
820 case ${AWK} in
821   "") AC_MSG_ERROR([can't build without awk, bailing out]) ;;
822 esac
823
824 gcc_AC_PROG_LN_S
825 ACX_PROG_LN($LN_S)
826 AC_PROG_RANLIB
827 case "${host}" in
828 *-*-darwin*)
829   # By default, the Darwin ranlib will not treat common symbols as
830   # definitions when  building the archive table of contents.  Other 
831   # ranlibs do that; pass an option to the Darwin ranlib that makes
832   # it behave similarly.
833   ranlib_flags="-c" 
834   ;;
835 *)
836   ranlib_flags=""
837 esac
838 AC_SUBST(ranlib_flags)
839      
840 gcc_AC_PROG_INSTALL
841
842 # See if cmp has --ignore-initial.
843 gcc_AC_PROG_CMP_IGNORE_INITIAL
844
845 # See if we have the mktemp command.
846 AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
847
848 # See if makeinfo has been installed and is modern enough
849 # that we can use it.
850 ACX_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
851   [GNU texinfo.* \([0-9][0-9.]*\)],
852   [4.[7-9]*|4.[1-9][0-9]*|[5-9]*|[1-9][0-9]*])
853 if test $gcc_cv_prog_makeinfo_modern = no; then
854   AC_MSG_WARN([
855 *** Makeinfo is missing or too old.
856 *** Info documentation will not be built.])
857   BUILD_INFO=
858 else
859   BUILD_INFO=info
860 fi
861 AC_SUBST(BUILD_INFO)
862
863 # Is pod2man recent enough to regenerate manpages?
864 AC_MSG_CHECKING([for recent Pod::Man])
865 if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then
866   AC_MSG_RESULT(yes)
867   GENERATED_MANPAGES=generated-manpages
868 else
869   AC_MSG_RESULT(no)
870   GENERATED_MANPAGES=
871 fi
872 AC_SUBST(GENERATED_MANPAGES)
873
874 MISSING="${CONFIG_SHELL-/bin/sh} $ac_aux_dir/missing"
875
876 # How about lex?
877 dnl Don't use AC_PROG_LEX; we insist on flex.
878 dnl LEXLIB is not useful in gcc.
879 AC_CHECK_PROGS([FLEX], flex, [$MISSING flex])
880
881 # Bison?
882 AC_CHECK_PROGS([BISON], bison, [$MISSING bison])
883
884 # Binutils are not build modules, unlike bison/flex/makeinfo.  So we
885 # check for build == host before using them.
886
887 # NM
888 if test x${build} = x${host} && test -f $srcdir/../binutils/nm.c \
889   && test -d ../binutils ; then
890   NM='$(objdir)/../binutils/nm-new'
891 else
892   AC_CHECK_PROG(NM, nm, nm, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing nm)
893 fi
894
895 # AR
896 if test x${build} = x${host} && test -f $srcdir/../binutils/ar.c \
897   && test -d ../binutils ; then
898   AR='$(objdir)/../binutils/ar'
899 else
900   AC_CHECK_PROG(AR, ar, ar, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing ar)
901 fi
902
903
904 # --------------------
905 # Checks for C headers
906 # --------------------
907
908 # Need to reject headers which give warnings, so that the -Werror bootstrap
909 # works later. *sigh*  This needs to come before all header checks.
910 AC_PROG_CPP_WERROR
911
912 AC_HEADER_STDC
913 AC_HEADER_TIME
914 ACX_HEADER_STRING
915 AC_HEADER_SYS_WAIT
916 AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h iconv.h \
917                  fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \
918                  sys/resource.h sys/param.h sys/times.h sys/stat.h \
919                  direct.h malloc.h langinfo.h ldfcn.h locale.h wchar.h)
920
921 # Check for thread headers.
922 AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
923 AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
924
925 # These tests can't be done till we know if we have limits.h.
926 gcc_AC_C_CHAR_BIT
927 AC_C_BIGENDIAN
928
929 # --------
930 # UNSORTED
931 # --------
932
933
934 # These libraries may be used by collect2.
935 # We may need a special search path to get them linked.
936 AC_CACHE_CHECK(for collect2 libraries, gcc_cv_collect2_libs,
937 [save_LIBS="$LIBS"
938 for libs in '' -lld -lmld \
939                 '-L/usr/lib/cmplrs/cc2.11 -lmld' \
940                 '-L/usr/lib/cmplrs/cc3.11 -lmld'
941 do
942         LIBS="$libs"
943         AC_TRY_LINK_FUNC(ldopen,
944                 [gcc_cv_collect2_libs="$libs"; break])
945 done
946 LIBS="$save_LIBS"
947 test -z "$gcc_cv_collect2_libs" && gcc_cv_collect2_libs='none required'])
948 case $gcc_cv_collect2_libs in
949         "none required")        ;;
950         *)      COLLECT2_LIBS=$gcc_cv_collect2_libs ;;
951 esac
952 AC_SUBST(COLLECT2_LIBS)
953
954 # When building Ada code on Alpha, we need exc_resume which is usually in
955 # -lexc.  So test for it.
956 save_LIBS="$LIBS"
957 LIBS=
958 AC_SEARCH_LIBS(exc_resume, exc)
959 GNAT_LIBEXC="$LIBS"
960 LIBS="$save_LIBS"
961 AC_SUBST(GNAT_LIBEXC)
962
963 # Some systems put ldexp and frexp in libm instead of libc; assume
964 # they're both in the same place.  jcf-dump needs them.
965 save_LIBS="$LIBS"
966 LIBS=
967 AC_SEARCH_LIBS(ldexp, m)
968 LDEXP_LIB="$LIBS"
969 LIBS="$save_LIBS"
970 AC_SUBST(LDEXP_LIB)
971
972 # Use <inttypes.h> only if it exists,
973 # doesn't clash with <sys/types.h>, and declares intmax_t.
974 AC_MSG_CHECKING(for inttypes.h)
975 AC_CACHE_VAL(gcc_cv_header_inttypes_h,
976 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
977 [[#include <sys/types.h>
978 #include <inttypes.h>]],
979   [[intmax_t i = -1;]])],
980   [gcc_cv_header_inttypes_h=yes],
981   [gcc_cv_header_inttypes_h=no])])
982 AC_MSG_RESULT($gcc_cv_header_inttypes_h)
983 if test $gcc_cv_header_inttypes_h = yes; then
984   AC_DEFINE(HAVE_INTTYPES_H, 1,
985         [Define if you have a working <inttypes.h> header file.])
986 fi
987
988 dnl Disabled until we have a complete test for buggy enum bitfields.
989 dnl gcc_AC_C_ENUM_BF_UNSIGNED
990
991 define(gcc_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl
992   ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked dnl
993   fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked dnl
994   fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked dnl
995   putchar_unlocked putc_unlocked)
996 AC_CHECK_FUNCS(times clock kill getrlimit setrlimit atoll atoq \
997         sysconf strsignal getrusage nl_langinfo \
998         gettimeofday mbstowcs wcswidth mmap mincore setlocale \
999         gcc_UNLOCKED_FUNCS)
1000
1001 if test x$ac_cv_func_mbstowcs = xyes; then
1002   AC_CACHE_CHECK(whether mbstowcs works, gcc_cv_func_mbstowcs_works,
1003 [    AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h>
1004 int main()
1005 {
1006   mbstowcs(0, "", 0);
1007   return 0;
1008 }]])],
1009     [gcc_cv_func_mbstowcs_works=yes],
1010     [gcc_cv_func_mbstowcs_works=no],
1011     [gcc_cv_func_mbstowcs_works=yes])])
1012   if test x$gcc_cv_func_mbstowcs_works = xyes; then
1013     AC_DEFINE(HAVE_WORKING_MBSTOWCS, 1,
1014   [Define this macro if mbstowcs does not crash when its
1015    first argument is NULL.])
1016   fi
1017 fi
1018
1019 AC_CHECK_TYPE(ssize_t, int)
1020 AC_CHECK_TYPE(caddr_t, char *)
1021
1022 # Try to determine the array type of the second argument of getgroups
1023 # for the target system (int or gid_t).
1024 AC_TYPE_GETGROUPS
1025 if test "${target}" = "${build}"; then
1026   TARGET_GETGROUPS_T=$ac_cv_type_getgroups
1027 else
1028   case "${target}" in
1029         # This condition may need some tweaking.  It should include all
1030         # targets where the array type of the second argument of getgroups
1031         # is int and the type of gid_t is not equivalent to int.
1032         *-*-sunos* | *-*-ultrix*)
1033                 TARGET_GETGROUPS_T=int
1034                 ;;
1035         *)
1036                 TARGET_GETGROUPS_T=gid_t
1037                 ;;
1038   esac
1039 fi
1040 AC_SUBST(TARGET_GETGROUPS_T)
1041
1042 gcc_AC_FUNC_MMAP_BLACKLIST
1043
1044 case "${host}" in
1045 *-*-*vms*)
1046   # Under VMS, vfork works very differently than on Unix. The standard test 
1047   # won't work, and it isn't easily adaptable. It makes more sense to
1048   # just force it.
1049   ac_cv_func_vfork_works=yes
1050   ;;
1051 esac
1052 AC_FUNC_FORK
1053
1054 AM_ICONV
1055 # Until we have in-tree GNU iconv:
1056 LIBICONV_DEP=
1057 AC_SUBST(LIBICONV_DEP)
1058
1059 AM_LC_MESSAGES
1060
1061 AM_LANGINFO_CODESET
1062
1063 # We will need to find libiberty.h and ansidecl.h
1064 saved_CFLAGS="$CFLAGS"
1065 CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
1066 gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \
1067         strsignal strstr strverscmp \
1068         errno snprintf vsnprintf vasprintf malloc realloc calloc \
1069         free basename getopt clock getpagesize gcc_UNLOCKED_FUNCS, , ,[
1070 #include "ansidecl.h"
1071 #include "system.h"])
1072
1073 gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
1074 #include "ansidecl.h"
1075 #include "system.h"
1076 #ifdef HAVE_SYS_RESOURCE_H
1077 #include <sys/resource.h>
1078 #endif
1079 ])
1080
1081 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1082 #include "ansidecl.h"
1083 #include "system.h"
1084 #ifdef HAVE_SYS_RESOURCE_H
1085 #include <sys/resource.h>
1086 #endif
1087 ]], [[rlim_t l = 0;]])],[],[AC_DEFINE([rlim_t],[long],
1088 [Define to `long' if <sys/resource.h> doesn't define.])])
1089
1090 # On AIX 5.2, <ldfcn.h> conflicts with <fcntl.h>, as both define incompatible
1091 # FREAD and FWRITE macros.  Fortunately, for GCC's single usage of ldgetname
1092 # in collect2.c, <fcntl.h> isn't visible, but the configure test below needs
1093 # to undef these macros to get the correct value for HAVE_DECL_LDGETNAME.
1094 gcc_AC_CHECK_DECLS(ldgetname, , ,[
1095 #include "ansidecl.h"
1096 #include "system.h"
1097 #ifdef HAVE_LDFCN_H
1098 #undef FREAD
1099 #undef FWRITE
1100 #include <ldfcn.h>
1101 #endif
1102 ])
1103
1104 gcc_AC_CHECK_DECLS(times, , ,[
1105 #include "ansidecl.h"
1106 #include "system.h"
1107 #ifdef HAVE_SYS_TIMES_H
1108 #include <sys/times.h>
1109 #endif
1110 ])
1111
1112 gcc_AC_CHECK_DECLS(sigaltstack, , ,[
1113 #include "ansidecl.h"
1114 #include "system.h"
1115 #include <signal.h>
1116 ])
1117
1118 # More time-related stuff.
1119 AC_CACHE_CHECK(for struct tms, ac_cv_struct_tms, [
1120 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1121 #include "ansidecl.h"
1122 #include "system.h"
1123 #ifdef HAVE_SYS_TIMES_H
1124 #include <sys/times.h>
1125 #endif
1126 ]], [[struct tms tms;]])],[ac_cv_struct_tms=yes],[ac_cv_struct_tms=no])])
1127 if test $ac_cv_struct_tms = yes; then
1128   AC_DEFINE(HAVE_STRUCT_TMS, 1,
1129   [Define if <sys/times.h> defines struct tms.])
1130 fi
1131
1132 # use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE.
1133 # revisit after autoconf 2.50.
1134 AC_CACHE_CHECK(for clock_t, gcc_cv_type_clock_t, [
1135 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1136 #include "ansidecl.h"
1137 #include "system.h"
1138 ]], [[clock_t x;]])],[gcc_cv_type_clock_t=yes],[gcc_cv_type_clock_t=no])])
1139 if test $gcc_cv_type_clock_t = yes; then
1140   AC_DEFINE(HAVE_CLOCK_T, 1,
1141   [Define if <time.h> defines clock_t.])
1142 fi
1143
1144 # Restore CFLAGS from before the gcc_AC_NEED_DECLARATIONS tests.
1145 CFLAGS="$saved_CFLAGS"
1146
1147 gcc_AC_INITFINI_ARRAY
1148
1149 # mkdir takes a single argument on some systems. 
1150 gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
1151
1152 # File extensions
1153 manext='.1'
1154 objext='.o'
1155 AC_SUBST(manext)
1156 AC_SUBST(objext)
1157
1158 # With Setjmp/Longjmp based exception handling.
1159 AC_ARG_ENABLE(sjlj-exceptions,
1160 [  --enable-sjlj-exceptions
1161                           arrange to use setjmp/longjmp exception handling],
1162 [case $target in
1163   *-*-hpux10*)
1164     if test $enableval != yes; then
1165       AC_MSG_WARN([dwarf2 exceptions not supported, sjlj exceptions forced])
1166       enableval=yes
1167     fi
1168     ;;
1169 esac
1170 force_sjlj_exceptions=yes],
1171 [case $target in
1172   *-*-hpux10*)
1173     force_sjlj_exceptions=yes
1174     enableval=yes
1175     ;;
1176   *)
1177     force_sjlj_exceptions=no
1178     ;;
1179 esac])
1180 if test $force_sjlj_exceptions = yes; then
1181   sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
1182   AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
1183     [Define 0/1 to force the choice for exception handling model.])
1184 fi
1185
1186 # For platforms with the unwind ABI which includes an unwind library,
1187 # libunwind, we can choose to use the system libunwind.
1188 AC_ARG_WITH(system-libunwind,
1189 [  --with-system-libunwind use installed libunwind])
1190
1191 # config.gcc also contains tests of with_system_libunwind.
1192 if test x$with_system_libunwind = xyes; then
1193         AC_DEFINE(HAVE_GETIPINFO, 1,
1194 [Define to 1 if system unwind library has _Unwind_GetIPInfo.])
1195 fi
1196
1197 # --------------------------------------------------------
1198 # Build, host, and target specific configuration fragments
1199 # --------------------------------------------------------
1200
1201 # Collect build-machine-specific information.
1202 . ${srcdir}/config.build
1203
1204 # Collect host-machine-specific information.
1205 . ${srcdir}/config.host
1206
1207 target_gtfiles=
1208
1209 # Collect target-machine-specific information.
1210 . ${srcdir}/config.gcc
1211
1212 extra_objs="${host_extra_objs} ${extra_objs}"
1213 extra_gcc_objs="${host_extra_gcc_objs} ${extra_gcc_objs}"
1214
1215 # Default the target-machine variables that were not explicitly set.
1216 if test x"$tm_file" = x
1217 then tm_file=$cpu_type/$cpu_type.h; fi
1218
1219 if test x"$extra_headers" = x
1220 then extra_headers=; fi
1221
1222 if test x$md_file = x
1223 then md_file=$cpu_type/$cpu_type.md; fi
1224
1225 if test x$out_file = x
1226 then out_file=$cpu_type/$cpu_type.c; fi
1227
1228 if test x"$tmake_file" = x
1229 then tmake_file=$cpu_type/t-$cpu_type
1230 fi
1231
1232 if test x"$dwarf2" = xyes
1233 then tm_file="$tm_file tm-dwarf2.h"
1234 fi
1235
1236 # Say what files are being used for the output code and MD file.
1237 echo "Using \`$srcdir/config/$out_file' for machine-specific logic."
1238 echo "Using \`$srcdir/config/$md_file' as machine description file."
1239
1240 # If any of the xm_file variables contain nonexistent files, warn
1241 # about them and drop them.
1242
1243 bx=
1244 for x in $build_xm_file; do
1245   if    test -f $srcdir/config/$x
1246   then      bx="$bx $x"
1247   else      AC_MSG_WARN($srcdir/config/$x does not exist.)
1248   fi
1249 done
1250 build_xm_file="$bx"
1251
1252 hx=
1253 for x in $host_xm_file; do
1254   if    test -f $srcdir/config/$x
1255   then      hx="$hx $x"
1256   else      AC_MSG_WARN($srcdir/config/$x does not exist.)
1257   fi
1258 done
1259 host_xm_file="$hx"
1260
1261 tx=
1262 for x in $xm_file; do
1263   if    test -f $srcdir/config/$x
1264   then      tx="$tx $x"
1265   else      AC_MSG_WARN($srcdir/config/$x does not exist.)
1266   fi
1267 done
1268 xm_file="$tx"
1269
1270 count=a
1271 for f in $tm_file; do
1272         count=${count}x
1273 done
1274 if test $count = ax; then
1275         echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
1276 else
1277         echo "Using the following target machine macro files:"
1278         for f in $tm_file; do
1279                 echo "  $srcdir/config/$f"
1280         done
1281 fi
1282
1283 if test x$need_64bit_hwint = xyes; then
1284         AC_DEFINE(NEED_64BIT_HOST_WIDE_INT, 1,
1285 [Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h).])
1286 fi
1287
1288 if test x$use_long_long_for_widest_fast_int = xyes; then
1289         AC_DEFINE(USE_LONG_LONG_FOR_WIDEST_FAST_INT, 1,
1290 [Define to 1 if the 'long long' (or '__int64') is wider than 'long' but still
1291 efficiently supported by the host hardware.])
1292 fi
1293
1294 count=a
1295 for f in $host_xm_file; do
1296         count=${count}x
1297 done
1298 if test $count = a; then
1299         :
1300 elif test $count = ax; then
1301         echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
1302 else
1303         echo "Using the following host machine macro files:"
1304         for f in $host_xm_file; do
1305                 echo "  $srcdir/config/$f"
1306         done
1307 fi
1308 echo "Using ${out_host_hook_obj} for host machine hooks."
1309
1310 if test "$host_xm_file" != "$build_xm_file"; then
1311         count=a
1312         for f in $build_xm_file; do
1313                 count=${count}x
1314         done
1315         if test $count = a; then
1316                 :
1317         elif test $count = ax; then
1318                 echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
1319         else
1320                 echo "Using the following build machine macro files:"
1321                 for f in $build_xm_file; do
1322                         echo "  $srcdir/config/$f"
1323                 done
1324         fi
1325 fi
1326
1327 case ${host} in
1328   powerpc*-*-darwin*)
1329     AC_CACHE_CHECK([whether mcontext_t fields have underscores],
1330       gcc_cv_mcontext_underscores,
1331       AC_COMPILE_IFELSE([
1332 #include <sys/cdefs.h>
1333 #include <sys/signal.h>
1334 #include <ucontext.h>
1335 int main() { mcontext_t m; if (m->ss.srr0) return 0; return 0; }
1336 ],
1337         gcc_cv_mcontext_underscores=no, gcc_cv_mcontext_underscores=yes))
1338       if test $gcc_cv_mcontext_underscores = yes; then
1339         AC_DEFINE(HAS_MCONTEXT_T_UNDERSCORES,,dnl
1340           [mcontext_t fields start with __])
1341       fi
1342     ;;
1343 esac
1344
1345 # ---------
1346 # Threading
1347 # ---------
1348
1349 # Check if a valid thread package
1350 case ${enable_threads} in
1351   "" | no)
1352     # No threads
1353     target_thread_file='single'
1354     ;;
1355   yes)
1356     # default
1357     target_thread_file='single'
1358     ;;
1359   aix | dce | gnat | irix | posix | posix95 | rtems | \
1360   single | solaris | vxworks | win32 | mipssde)
1361     target_thread_file=${enable_threads}
1362     ;;
1363   *)
1364     echo "${enable_threads} is an unknown thread package" 1>&2
1365     exit 1
1366     ;;
1367 esac
1368
1369 if test x${thread_file} = x; then
1370   # No thread file set by target-specific clauses in config.gcc,
1371   # so use file chosen by default logic above
1372   thread_file=${target_thread_file}
1373 fi
1374
1375 # Make gthr-default.h if we have a thread file.
1376 gthread_flags=
1377 if test $thread_file != single; then
1378   echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h-t
1379   if diff gthr-default.h-t gthr-default.h 2>/dev/null; then
1380     rm -f gthr-default.h-t
1381   else
1382     mv -f gthr-default.h-t gthr-default.h
1383   fi
1384   gthread_flags=-DHAVE_GTHR_DEFAULT
1385 fi
1386 AC_SUBST(gthread_flags)
1387
1388 # --------
1389 # UNSORTED
1390 # --------
1391
1392 use_cxa_atexit=no
1393 if test x$enable___cxa_atexit = xyes || \
1394    test x$enable___cxa_atexit = x -a x$default_use_cxa_atexit = xyes; then
1395   if test x$host = x$target; then
1396     case $host in
1397       # mingw32 doesn't have __cxa_atexit but uses atexit registration
1398       # keyed to flag_use_cxa_atexit
1399       *-*-mingw32*)
1400         use_cxa_atexit=yes
1401         ;;
1402       *)
1403         AC_CHECK_FUNC(__cxa_atexit,[use_cxa_atexit=yes],
1404           [echo "__cxa_atexit can't be enabled on this target"])
1405         ;;
1406     esac
1407   else
1408     # We can't check for __cxa_atexit when building a cross, so assume
1409     # it is available 
1410     use_cxa_atexit=yes
1411   fi
1412   if test x$use_cxa_atexit = xyes; then
1413     AC_DEFINE(DEFAULT_USE_CXA_ATEXIT, 2,
1414       [Define if you want to use __cxa_atexit, rather than atexit, to
1415       register C++ destructors for local statics and global objects.
1416       This is essential for fully standards-compliant handling of
1417       destructors, but requires __cxa_atexit in libc.])
1418   fi
1419 fi
1420
1421 use_getipinfo=yes
1422 if test x$with_system_libunwind = xyes; then
1423    if test x$host = x$target; then
1424      AC_SEARCH_LIBS(_Unwind_GetIPInfo, unwind,, [use_getipinfo=no])
1425    fi
1426 fi
1427 GCC_TARGET_TEMPLATE(HAVE_GETIPINFO)
1428 if test x$use_getipinfo = xyes; then
1429    AC_DEFINE(HAVE_GETIPINFO, 1,
1430         [Define to 1 if system unwind library has _Unwind_GetIPInfo.])
1431 else
1432    echo "The system unwind library does not support _Unwind_GetIPInfo."
1433 fi
1434
1435 # Look for a file containing extra machine modes.
1436 if test -n "$extra_modes" && test -f $srcdir/config/$extra_modes; then
1437   extra_modes_file='$(srcdir)'/config/${extra_modes}
1438   AC_SUBST(extra_modes_file)
1439   AC_DEFINE_UNQUOTED(EXTRA_MODES_FILE, "config/$extra_modes",
1440   [Define to the name of a file containing a list of extra machine modes
1441    for this architecture.])
1442 fi
1443
1444 # Convert extra_options into a form suitable for Makefile use.
1445 extra_opt_files=
1446 for f in $extra_options; do
1447   extra_opt_files="$extra_opt_files \$(srcdir)/config/$f"
1448 done
1449 AC_SUBST(extra_opt_files)
1450
1451 # auto-host.h is the file containing items generated by autoconf and is
1452 # the first file included by config.h.
1453 # If host=build, it is correct to have bconfig include auto-host.h
1454 # as well.  If host!=build, we are in error and need to do more 
1455 # work to find out the build config parameters.
1456 if test x$host = x$build
1457 then
1458         build_auto=auto-host.h
1459 else
1460         # We create a subdir, then run autoconf in the subdir.
1461         # To prevent recursion we set host and build for the new
1462         # invocation of configure to the build for this invocation
1463         # of configure. 
1464         tempdir=build.$$
1465         rm -rf $tempdir
1466         mkdir $tempdir
1467         cd $tempdir
1468         case ${srcdir} in
1469         /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
1470         *) realsrcdir=../${srcdir};;
1471         esac
1472         saved_CFLAGS="${CFLAGS}"
1473         CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
1474         LDFLAGS="${LDFLAGS_FOR_BUILD}" \
1475         ${realsrcdir}/configure \
1476                 --enable-languages=${enable_languages-all} \
1477                 --target=$target_alias --host=$build_alias --build=$build_alias
1478         CFLAGS="${saved_CFLAGS}"
1479
1480         # We just finished tests for the build machine, so rename
1481         # the file auto-build.h in the gcc directory.
1482         mv auto-host.h ../auto-build.h
1483         cd ..
1484         rm -rf $tempdir
1485         build_auto=auto-build.h
1486 fi
1487 AC_SUBST(build_subdir)
1488
1489 tm_file="${tm_file} defaults.h"
1490 tm_p_file="${tm_p_file} tm-preds.h"
1491 host_xm_file="auto-host.h ansidecl.h ${host_xm_file}"
1492 build_xm_file="${build_auto} ansidecl.h ${build_xm_file}"
1493 # We don't want ansidecl.h in target files, write code there in ISO/GNU C.
1494 # put this back in temporarily.
1495 xm_file="auto-host.h ansidecl.h ${xm_file}"
1496
1497 # --------
1498 # UNSORTED
1499 # --------
1500
1501 changequote(,)dnl
1502 # Compile in configure arguments.
1503 if test -f configargs.h ; then
1504         # Being re-configured.
1505         gcc_config_arguments=`grep configuration_arguments configargs.h | sed -e 's/.*"\([^"]*\)".*/\1/'`
1506         gcc_config_arguments="$gcc_config_arguments : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS"
1507 else
1508         gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS"
1509 fi
1510
1511 # Double all backslashes and backslash all quotes to turn
1512 # gcc_config_arguments into a C string.
1513 sed -e 's/\\/\\\\/g; s/"/\\"/g' <<EOF >conftest.out
1514 $gcc_config_arguments
1515 EOF
1516 gcc_config_arguments_str=`cat conftest.out`
1517 rm -f conftest.out
1518
1519 cat > configargs.h <<EOF
1520 /* Generated automatically. */
1521 static const char configuration_arguments[] = "$gcc_config_arguments_str";
1522 static const char thread_model[] = "$thread_file";
1523
1524 static const struct {
1525   const char *name, *value;
1526 } configure_default_options[] = $configure_default_options;
1527 EOF
1528 changequote([,])dnl
1529
1530 # Internationalization
1531 ZW_GNU_GETTEXT_SISTER_DIR
1532
1533 # If LIBINTL contains LIBICONV, then clear LIBICONV so we don't get
1534 # -liconv on the link line twice.
1535 case "$LIBINTL" in *$LIBICONV*)
1536         LIBICONV= ;;
1537 esac
1538
1539 AC_ARG_ENABLE(secureplt,
1540 [  --enable-secureplt      enable -msecure-plt by default for PowerPC],
1541 [], [])
1542
1543 AC_ARG_ENABLE(cld,
1544 [  --enable-cld            enable -mcld by default for 32bit x86], [],
1545 [enable_cld=no])
1546
1547 # Windows32 Registry support for specifying GCC installation paths.
1548 AC_ARG_ENABLE(win32-registry,
1549 [  --disable-win32-registry
1550                           disable lookup of installation paths in the
1551                           Registry on Windows hosts
1552   --enable-win32-registry enable registry lookup (default)
1553   --enable-win32-registry=KEY
1554                           use KEY instead of GCC version as the last portion
1555                           of the registry key],,)
1556
1557 case $host_os in
1558   win32 | pe | cygwin* | mingw32* | uwin*)
1559     if test "x$enable_win32_registry" != xno; then
1560       AC_SEARCH_LIBS(RegOpenKeyExA, advapi32,, [enable_win32_registry=no])
1561     fi
1562
1563     if test "x$enable_win32_registry" != xno; then
1564       AC_DEFINE(ENABLE_WIN32_REGISTRY, 1,
1565   [Define to 1 if installation paths should be looked up in the Windows
1566    Registry. Ignored on non-Windows hosts.])
1567
1568       if test "x$enable_win32_registry" != xyes \
1569          && test "x$enable_win32_registry" != x; then
1570         AC_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$enable_win32_registry",
1571   [Define to be the last component of the Windows registry key under which
1572    to look for installation paths.  The full key used will be 
1573    HKEY_LOCAL_MACHINE/SOFTWARE/Free Software Foundation/{WIN32_REGISTRY_KEY}.
1574    The default is the GCC version number.])
1575       fi
1576     fi
1577   ;;
1578 esac
1579
1580 # Get an absolute path to the GCC top-level source directory
1581 holddir=`${PWDCMD-pwd}`
1582 cd $srcdir
1583 topdir=`${PWDCMD-pwd}`
1584 cd $holddir
1585
1586 # Conditionalize the makefile for this host machine.
1587 xmake_file=
1588 for f in ${host_xmake_file}
1589 do
1590         if test -f ${srcdir}/config/$f
1591         then
1592                 xmake_file="${xmake_file} \$(srcdir)/config/$f"
1593         fi
1594 done
1595
1596 # Conditionalize the makefile for this target machine.
1597 tmake_file_=
1598 for f in ${tmake_file}
1599 do
1600         if test -f ${srcdir}/config/$f
1601         then
1602                 tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
1603         fi
1604 done
1605 tmake_file="${tmake_file_}"
1606
1607 # This is a terrible hack which will go away some day.
1608 host_cc_for_libada=${CC}
1609 AC_SUBST(host_cc_for_libada)
1610
1611 out_object_file=`basename $out_file .c`.o
1612
1613 tm_file_list="options.h"
1614 tm_include_list="options.h"
1615 for f in $tm_file; do
1616   case $f in
1617     ./* )
1618        f=`echo $f | sed 's/^..//'`
1619        tm_file_list="${tm_file_list} $f"
1620        tm_include_list="${tm_include_list} $f"
1621        ;;
1622     defaults.h )
1623        tm_file_list="${tm_file_list} \$(srcdir)/$f"
1624        tm_include_list="${tm_include_list} $f"
1625        ;;
1626     * )
1627        tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
1628        tm_include_list="${tm_include_list} config/$f"
1629        ;;
1630   esac
1631 done
1632
1633 tm_p_file_list=
1634 tm_p_include_list=
1635 for f in $tm_p_file; do
1636   case $f in
1637     tm-preds.h )
1638        tm_p_file_list="${tm_p_file_list} $f"
1639        tm_p_include_list="${tm_p_include_list} $f"
1640        ;;
1641     * )
1642        tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f"
1643        tm_p_include_list="${tm_p_include_list} config/$f"
1644   esac
1645 done
1646
1647 xm_file_list=
1648 xm_include_list=
1649 for f in $xm_file; do
1650   case $f in
1651     ansidecl.h )
1652        xm_file_list="${xm_file_list} \$(srcdir)/../include/$f"
1653        xm_include_list="${xm_include_list} $f"
1654        ;;
1655     auto-host.h )
1656        xm_file_list="${xm_file_list} $f"
1657        xm_include_list="${xm_include_list} $f"
1658        ;;
1659     * )
1660        xm_file_list="${xm_file_list} \$(srcdir)/config/$f"
1661        xm_include_list="${xm_include_list} config/$f"
1662        ;;
1663   esac
1664 done
1665
1666 host_xm_file_list=
1667 host_xm_include_list=
1668 for f in $host_xm_file; do
1669   case $f in
1670     ansidecl.h )
1671        host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/$f"
1672        host_xm_include_list="${host_xm_include_list} $f"
1673        ;;
1674     auto-host.h )
1675        host_xm_file_list="${host_xm_file_list} $f"
1676        host_xm_include_list="${host_xm_include_list} $f"
1677        ;;
1678     * )
1679        host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f"
1680        host_xm_include_list="${host_xm_include_list} config/$f"
1681        ;;
1682   esac
1683 done
1684
1685 build_xm_file_list=
1686 for f in $build_xm_file; do
1687   case $f in
1688     ansidecl.h )
1689        build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/$f"
1690        build_xm_include_list="${build_xm_include_list} $f"
1691        ;;
1692     auto-build.h | auto-host.h )
1693        build_xm_file_list="${build_xm_file_list} $f"
1694        build_xm_include_list="${build_xm_include_list} $f"
1695        ;;
1696     * )
1697        build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f"
1698        build_xm_include_list="${build_xm_include_list} config/$f"
1699        ;;
1700   esac
1701 done
1702
1703 # Define macro CROSS_DIRECTORY_STRUCTURE in compilation if this is a
1704 # cross-compiler which does not use the native headers and libraries.
1705 # Also use all.cross instead of all.internal and adjust SYSTEM_HEADER_DIR.
1706 CROSS=                                          AC_SUBST(CROSS)
1707 ALL=all.internal                                AC_SUBST(ALL)
1708 SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' AC_SUBST(SYSTEM_HEADER_DIR)
1709
1710 if test "x$with_build_sysroot" != x; then
1711   build_system_header_dir=$with_build_sysroot'$${sysroot_headers_suffix}$(NATIVE_SYSTEM_HEADER_DIR)'
1712 else
1713   # This value is used, even on a native system, because 
1714   # CROSS_SYSTEM_HEADER_DIR is just 
1715   # $(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR).
1716   build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)'
1717 fi
1718
1719 if test x$host != x$target
1720 then
1721         CROSS="-DCROSS_DIRECTORY_STRUCTURE"
1722         ALL=all.cross
1723         SYSTEM_HEADER_DIR=$build_system_header_dir
1724         case "$host","$target" in
1725         # Darwin crosses can use the host system's libraries and headers,
1726         # because of the fat library support.  Of course, it must be the
1727         # same version of Darwin on both sides.  Allow the user to
1728         # just say --target=foo-darwin without a version number to mean
1729         # "the version on this system".
1730             *-*-darwin*,*-*-darwin*)
1731                 hostos=`echo $host | sed 's/.*-darwin/darwin/'`
1732                 targetos=`echo $target | sed 's/.*-darwin/darwin/'`
1733                 if test $hostos = $targetos -o $targetos = darwin ; then
1734                     CROSS=
1735                     SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)'
1736                     with_headers=yes
1737                 fi
1738                 ;;
1739
1740             i?86-*-*,x86_64-*-* \
1741             | powerpc*-*-*,powerpc64*-*-*)
1742                 CROSS="$CROSS -DNATIVE_CROSS" ;;
1743         esac
1744 elif test "x$TARGET_SYSTEM_ROOT" != x; then
1745         SYSTEM_HEADER_DIR=$build_system_header_dir 
1746 fi
1747
1748 # If this is a cross-compiler that does not
1749 # have its own set of headers then define
1750 # inhibit_libc
1751
1752 # If this is using newlib, without having the headers available now,
1753 # then define inhibit_libc in LIBGCC2_CFLAGS.
1754 # This prevents libgcc2 from containing any code which requires libc
1755 # support.
1756 : ${inhibit_libc=false}
1757 if { { test x$host != x$target && test "x$with_sysroot" = x ; } ||
1758        test x$with_newlib = xyes ; } &&
1759      { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then
1760        inhibit_libc=true
1761 fi
1762 AC_SUBST(inhibit_libc)
1763
1764 # When building gcc with a cross-compiler, we need to adjust things so
1765 # that the generator programs are still built with the native compiler.
1766 # Also, we cannot run fixincludes or fix-header.
1767
1768 # These are the normal (build=host) settings:
1769 CC_FOR_BUILD='$(CC)'            AC_SUBST(CC_FOR_BUILD)
1770 BUILD_CFLAGS='$(ALL_CFLAGS)'    AC_SUBST(BUILD_CFLAGS)
1771 BUILD_LDFLAGS='$(LDFLAGS)'      AC_SUBST(BUILD_LDFLAGS)
1772 STMP_FIXINC=stmp-fixinc         AC_SUBST(STMP_FIXINC)
1773
1774 # Possibly disable fixproto, on a per-target basis.
1775 case ${use_fixproto} in
1776   no)
1777     STMP_FIXPROTO=
1778     ;;
1779   yes)
1780     STMP_FIXPROTO=stmp-fixproto
1781     ;;
1782 esac
1783 AC_SUBST(STMP_FIXPROTO)
1784
1785 # And these apply if build != host, or we are generating coverage data
1786 if test x$build != x$host || test "x$coverage_flags" != x
1787 then
1788     BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
1789     BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)'
1790
1791     if test "x$TARGET_SYSTEM_ROOT" = x; then
1792         if test "x$STMP_FIXPROTO" != x; then
1793           STMP_FIXPROTO=stmp-install-fixproto
1794         fi
1795     fi
1796 fi
1797
1798 # Expand extra_headers to include complete path.
1799 # This substitutes for lots of t-* files.
1800 extra_headers_list=
1801 # Prepend $(srcdir)/config/${cpu_type}/ to every entry in extra_headers.
1802 for file in ${extra_headers} ; do
1803   extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
1804 done
1805
1806 # If use_gcc_tgmath is set, append ginclude/tgmath.h.
1807 if test x"$use_gcc_tgmath" = xyes
1808 then extra_headers_list="${extra_headers_list} \$(srcdir)/ginclude/tgmath.h"
1809 fi
1810
1811 # Define collect2 in Makefile.
1812 case $host_can_use_collect2 in
1813   no) collect2= ;;
1814   *) collect2='collect2$(exeext)' ;;
1815 esac
1816 AC_SUBST([collect2])
1817
1818 # Add a definition of USE_COLLECT2 if system wants one.
1819 case $use_collect2 in
1820   no) use_collect2= ;;
1821   "") ;;
1822   *) 
1823     host_xm_defines="${host_xm_defines} USE_COLLECT2"
1824     xm_defines="${xm_defines} USE_COLLECT2"
1825     case $host_can_use_collect2 in
1826       no)
1827         AC_MSG_ERROR([collect2 is required but cannot be built on this system])
1828         ;;
1829     esac
1830     ;;
1831 esac
1832
1833 # ---------------------------
1834 # Assembler & linker features
1835 # ---------------------------
1836
1837 # During stage 2, ld is actually gcc/collect-ld, which is a small script to
1838 # discern between when to use prev-ld/ld-new and when to use ld/ld-new.
1839 # However when ld-new is first executed from the build tree, libtool will
1840 # relink it as .libs/lt-ld-new, so that it can give it an RPATH that refers
1841 # to the build tree.  While doing this we need to use the previous-stage
1842 # linker, or we have an infinite loop.  The presence of a shell script as
1843 # ld/ld-new, and the fact that the script *uses ld itself*, is what confuses
1844 # the gcc/collect-ld script.  So we need to know how libtool works, or
1845 # exec-tool will fail.
1846
1847 m4_defun([_LT_CONFIG_COMMANDS], [])
1848 AC_PROG_LIBTOOL
1849 AC_SUBST(objdir)
1850 AC_SUBST(enable_fast_install)
1851
1852 # Identify the assembler which will work hand-in-glove with the newly
1853 # built GCC, so that we can examine its features.  This is the assembler
1854 # which will be driven by the driver program.
1855 #
1856 # If build != host, and we aren't building gas in-tree, we identify a
1857 # build->target assembler and hope that it will have the same features
1858 # as the host->target assembler we'll be using.
1859 gcc_cv_gas_major_version=
1860 gcc_cv_gas_minor_version=
1861 gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
1862
1863 m4_pattern_allow([AS_FOR_TARGET])dnl
1864 AS_VAR_SET_IF(gcc_cv_as,, [
1865 if test -x "$DEFAULT_ASSEMBLER"; then
1866         gcc_cv_as="$DEFAULT_ASSEMBLER"
1867 elif test -f $gcc_cv_as_gas_srcdir/configure.in \
1868      && test -f ../gas/Makefile \
1869      && test x$build = x$host; then
1870         gcc_cv_as=../gas/as-new$build_exeext
1871 elif test -x as$build_exeext; then
1872         # Build using assembler in the current directory.
1873         gcc_cv_as=./as$build_exeext
1874 elif test -x $AS_FOR_TARGET; then
1875         gcc_cv_as="$AS_FOR_TARGET"
1876 else
1877         AC_PATH_PROG(gcc_cv_as, $AS_FOR_TARGET)
1878 fi])
1879
1880 ORIGINAL_AS_FOR_TARGET=$gcc_cv_as
1881 AC_SUBST(ORIGINAL_AS_FOR_TARGET)
1882 case "$ORIGINAL_AS_FOR_TARGET" in
1883   ./as | ./as$build_exeext) ;;
1884   *) AC_CONFIG_FILES(as:exec-tool.in, [chmod +x as]) ;;
1885 esac 
1886
1887 AC_MSG_CHECKING(what assembler to use)
1888 if test "$gcc_cv_as" = ../gas/as-new$build_exeext; then
1889   # Single tree build which includes gas.  We want to prefer it
1890   # over whatever linker top-level may have detected, since
1891   # we'll use what we're building after installation anyway.
1892   AC_MSG_RESULT(newly built gas)
1893   in_tree_gas=yes
1894   _gcc_COMPUTE_GAS_VERSION
1895   in_tree_gas_is_elf=no
1896   if grep 'obj_format = elf' ../gas/Makefile > /dev/null \
1897      || (grep 'obj_format = multi' ../gas/Makefile \
1898          && grep 'extra_objects =.* obj-elf' ../gas/Makefile) > /dev/null
1899   then
1900     in_tree_gas_is_elf=yes
1901   fi
1902 else
1903   AC_MSG_RESULT($gcc_cv_as)
1904   in_tree_gas=no
1905 fi
1906
1907 # Identify the linker which will work hand-in-glove with the newly
1908 # built GCC, so that we can examine its features.  This is the linker
1909 # which will be driven by the driver program.
1910 #
1911 # If build != host, and we aren't building gas in-tree, we identify a
1912 # build->target linker and hope that it will have the same features
1913 # as the host->target linker we'll be using.
1914 gcc_cv_gld_major_version=
1915 gcc_cv_gld_minor_version=
1916 gcc_cv_ld_gld_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/ld
1917 gcc_cv_ld_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
1918
1919 AS_VAR_SET_IF(gcc_cv_ld,, [
1920 if test -x "$DEFAULT_LINKER"; then
1921         gcc_cv_ld="$DEFAULT_LINKER"
1922 elif test -f $gcc_cv_ld_gld_srcdir/configure.in \
1923      && test -f ../ld/Makefile \
1924      && test x$build = x$host; then
1925         gcc_cv_ld=../ld/ld-new$build_exeext
1926 elif test -x collect-ld$build_exeext; then
1927         # Build using linker in the current directory.
1928         gcc_cv_ld=./collect-ld$build_exeext
1929 elif test -x $LD_FOR_TARGET; then
1930         gcc_cv_ld="$LD_FOR_TARGET"
1931 else
1932         AC_PATH_PROG(gcc_cv_ld, $LD_FOR_TARGET)
1933 fi])
1934
1935 ORIGINAL_LD_FOR_TARGET=$gcc_cv_ld
1936 AC_SUBST(ORIGINAL_LD_FOR_TARGET)
1937 case "$ORIGINAL_LD_FOR_TARGET" in
1938   ./collect-ld | ./collect-ld$build_exeext) ;;
1939   *) AC_CONFIG_FILES(collect-ld:exec-tool.in, [chmod +x collect-ld]) ;;
1940 esac 
1941
1942 AC_MSG_CHECKING(what linker to use)
1943 if test "$gcc_cv_ld" = ../ld/ld-new$build_exeext; then
1944         # Single tree build which includes ld.  We want to prefer it
1945         # over whatever linker top-level may have detected, since
1946         # we'll use what we're building after installation anyway.
1947         AC_MSG_RESULT(newly built ld)
1948         in_tree_ld=yes
1949         in_tree_ld_is_elf=no
1950         if (grep 'EMUL = .*elf' ../ld/Makefile \
1951             || grep 'EMUL = .*linux' ../ld/Makefile \
1952             || grep 'EMUL = .*lynx' ../ld/Makefile) > /dev/null; then
1953           in_tree_ld_is_elf=yes
1954         fi
1955         for f in $gcc_cv_ld_bfd_srcdir/configure $gcc_cv_ld_gld_srcdir/configure $gcc_cv_ld_gld_srcdir/configure.in $gcc_cv_ld_gld_srcdir/Makefile.in
1956         do
1957 changequote(,)dnl
1958                 gcc_cv_gld_version=`sed -n -e 's/^[     ]*\(VERSION=[0-9]*\.[0-9]*.*\)/\1/p' < $f`
1959                 if test x$gcc_cv_gld_version != x; then
1960                         break
1961                 fi
1962         done
1963         gcc_cv_gld_major_version=`expr "$gcc_cv_gld_version" : "VERSION=\([0-9]*\)"`
1964         gcc_cv_gld_minor_version=`expr "$gcc_cv_gld_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
1965 changequote([,])dnl
1966 else
1967         AC_MSG_RESULT($gcc_cv_ld)
1968         in_tree_ld=no
1969 fi
1970
1971 # Figure out what nm we will be using.
1972 gcc_cv_binutils_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/binutils
1973 AS_VAR_SET_IF(gcc_cv_nm,, [
1974 if test -f $gcc_cv_binutils_srcdir/configure.in \
1975      && test -f ../binutils/Makefile \
1976      && test x$build = x$host; then
1977         gcc_cv_nm=../binutils/nm-new$build_exeext
1978 elif test -x nm$build_exeext; then
1979         gcc_cv_nm=./nm$build_exeext
1980 elif test -x $NM_FOR_TARGET; then
1981         gcc_cv_nm="$NM_FOR_TARGET"
1982 else
1983         AC_PATH_PROG(gcc_cv_nm, $NM_FOR_TARGET)
1984 fi])
1985
1986 AC_MSG_CHECKING(what nm to use)
1987 if test "$gcc_cv_nm" = ../binutils/nm-new$build_exeext; then
1988         # Single tree build which includes binutils.
1989         AC_MSG_RESULT(newly built nm)
1990         in_tree_nm=yes
1991 else
1992         AC_MSG_RESULT($gcc_cv_nm)
1993         in_tree_nm=no
1994 fi
1995
1996 ORIGINAL_NM_FOR_TARGET=$gcc_cv_nm
1997 AC_SUBST(ORIGINAL_NM_FOR_TARGET)
1998 case "$ORIGINAL_NM_FOR_TARGET" in
1999   ./nm | ./nm$build_exeext) ;;
2000   *) AC_CONFIG_FILES(nm:exec-tool.in, [chmod +x nm]) ;;
2001 esac
2002
2003
2004 # Figure out what objdump we will be using.
2005 AS_VAR_SET_IF(gcc_cv_objdump,, [
2006 if test -f $gcc_cv_binutils_srcdir/configure.in \
2007      && test -f ../binutils/Makefile \
2008      && test x$build = x$host; then
2009         # Single tree build which includes binutils.
2010         gcc_cv_objdump=../binutils/objdump$build_exeext
2011 elif test -x objdump$build_exeext; then
2012         gcc_cv_objdump=./objdump$build_exeext
2013 elif test -x $OBJDUMP_FOR_TARGET; then
2014         gcc_cv_objdump="$OBJDUMP_FOR_TARGET"
2015 else
2016         AC_PATH_PROG(gcc_cv_objdump, $OBJDUMP_FOR_TARGET)
2017 fi])
2018
2019 AC_MSG_CHECKING(what objdump to use)
2020 if test "$gcc_cv_objdump" = ../binutils/objdump$build_exeext; then
2021         # Single tree build which includes binutils.
2022         AC_MSG_RESULT(newly built objdump)
2023 elif test x$gcc_cv_objdump = x; then
2024         AC_MSG_RESULT(not found)
2025 else
2026         AC_MSG_RESULT($gcc_cv_objdump)
2027 fi
2028
2029 # Figure out what assembler alignment features are present.
2030 gcc_GAS_CHECK_FEATURE([.balign and .p2align], gcc_cv_as_balign_and_p2align,
2031  [2,6,0],,
2032 [.balign 4
2033 .p2align 2],,
2034 [AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN, 1,
2035   [Define if your assembler supports .balign and .p2align.])])
2036
2037 gcc_GAS_CHECK_FEATURE([.p2align with maximum skip], gcc_cv_as_max_skip_p2align,
2038  [2,8,0],,
2039  [.p2align 4,,7],,
2040 [AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN, 1,
2041   [Define if your assembler supports specifying the maximum number
2042    of bytes to skip when using the GAS .p2align command.])])
2043
2044 gcc_GAS_CHECK_FEATURE([.literal16], gcc_cv_as_literal16,
2045  [2,8,0],,
2046  [.literal16],,
2047 [AC_DEFINE(HAVE_GAS_LITERAL16, 1,
2048   [Define if your assembler supports .literal16.])])
2049
2050 gcc_GAS_CHECK_FEATURE([working .subsection -1], gcc_cv_as_subsection_m1,
2051  [elf,2,9,0],,
2052  [conftest_label1: .word 0
2053 .subsection -1
2054 conftest_label2: .word 0
2055 .previous],
2056  [if test x$gcc_cv_nm != x; then
2057     $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
2058     $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
2059     if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1
2060     then :
2061     else gcc_cv_as_subsection_m1=yes
2062     fi
2063     rm -f conftest.nm1 conftest.nm2
2064   fi],
2065  [AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING, 1,
2066   [Define if your assembler supports .subsection and .subsection -1 starts
2067    emitting at the beginning of your section.])])
2068
2069 gcc_GAS_CHECK_FEATURE([.weak], gcc_cv_as_weak,
2070  [2,2,0],,
2071  [      .weak foobar],,
2072 [AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])])
2073
2074 gcc_GAS_CHECK_FEATURE([.weakref], gcc_cv_as_weakref,
2075  [2,17,0],,
2076  [      .weakref foobar, barfnot],,
2077 [AC_DEFINE(HAVE_GAS_WEAKREF, 1, [Define if your assembler supports .weakref.])])
2078
2079 gcc_GAS_CHECK_FEATURE([.nsubspa comdat], gcc_cv_as_nsubspa_comdat,
2080  [2,15,91],,
2081  [      .SPACE $TEXT$
2082         .NSUBSPA $CODE$,COMDAT],,
2083 [AC_DEFINE(HAVE_GAS_NSUBSPA_COMDAT, 1, [Define if your assembler supports .nsubspa comdat option.])])
2084
2085 # .hidden needs to be supported in both the assembler and the linker,
2086 # because GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN.
2087 # This is irritatingly difficult to feature test for; we have to check the
2088 # date string after the version number.  If we've got an in-tree
2089 # ld, we don't know its patchlevel version, so we set the baseline at 2.13
2090 # to be safe.
2091 # The gcc_GAS_CHECK_FEATURE call just sets a cache variable.
2092 gcc_GAS_CHECK_FEATURE([.hidden], gcc_cv_as_hidden,
2093  [elf,2,13,0],,
2094 [       .hidden foobar
2095 foobar:])
2096
2097 AC_CACHE_CHECK(linker for .hidden support, gcc_cv_ld_hidden,
2098 [if test $in_tree_ld = yes ; then
2099   gcc_cv_ld_hidden=no
2100   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 13 -o "$gcc_cv_gld_major_version" -gt 2 \
2101      && test $in_tree_ld_is_elf = yes; then
2102      gcc_cv_ld_hidden=yes
2103   fi
2104 else
2105   gcc_cv_ld_hidden=yes
2106   ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q`
2107   if echo "$ld_ver" | grep GNU > /dev/null; then
2108 changequote(,)dnl
2109     ld_vers=`echo $ld_ver | sed -n \
2110         -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'`
2111     ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
2112     ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
2113     ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
2114     ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
2115     if test 0"$ld_date" -lt 20020404; then
2116       if test -n "$ld_date"; then
2117         # If there was date string, but was earlier than 2002-04-04, fail
2118         gcc_cv_ld_hidden=no
2119       elif test -z "$ld_vers"; then
2120         # If there was no date string nor ld version number, something is wrong
2121         gcc_cv_ld_hidden=no
2122       else
2123         test -z "$ld_vers_patch" && ld_vers_patch=0
2124         if test "$ld_vers_major" -lt 2; then
2125           gcc_cv_ld_hidden=no
2126         elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then
2127           gcc_cv_ld_hidden="no"
2128         elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 -a "$ld_vers_patch" -eq 0; then
2129           gcc_cv_ld_hidden=no
2130         fi
2131       fi
2132 changequote([,])dnl
2133     fi
2134   else
2135     case "${target}" in
2136       hppa64*-*-hpux* | ia64*-*-hpux*)
2137         gcc_cv_ld_hidden=yes
2138         ;;
2139       *)
2140         gcc_cv_ld_hidden=no
2141         ;;
2142     esac
2143   fi
2144 fi])
2145 libgcc_visibility=no
2146 AC_SUBST(libgcc_visibility)
2147 GCC_TARGET_TEMPLATE([HAVE_GAS_HIDDEN])
2148 if test $gcc_cv_as_hidden = yes && test $gcc_cv_ld_hidden = yes; then
2149   libgcc_visibility=yes
2150   AC_DEFINE(HAVE_GAS_HIDDEN, 1,
2151   [Define if your assembler and linker support .hidden.])
2152 fi
2153
2154 # Check if we have .[us]leb128, and support symbol arithmetic with it.
2155 gcc_GAS_CHECK_FEATURE([.sleb128 and .uleb128], gcc_cv_as_leb128,
2156   [elf,2,11,0],,
2157 [       .data
2158         .uleb128 L2 - L1
2159 L1:
2160         .uleb128 1280
2161         .sleb128 -1010
2162 L2:],
2163  [# GAS versions before 2.11 do not support uleb128,
2164   # despite appearing to.
2165   # ??? There exists an elf-specific test that will crash
2166   # the assembler.  Perhaps it's better to figure out whether
2167   # arbitrary sections are supported and try the test.
2168   as_ver=`$gcc_cv_as --version 2>/dev/null | sed 1q`
2169   if echo "$as_ver" | grep GNU > /dev/null; then
2170 changequote(,)dnl
2171     as_vers=`echo $as_ver | sed -n \
2172         -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'`
2173     as_major=`expr "$as_vers" : '\([0-9]*\)'`
2174     as_minor=`expr "$as_vers" : '[0-9]*\.\([0-9]*\)'`
2175 changequote([,])dnl
2176     if test $as_major -eq 2 && test $as_minor -lt 11
2177     then :
2178     else gcc_cv_as_leb128=yes
2179     fi
2180   fi],
2181   [AC_DEFINE(HAVE_AS_LEB128, 1,
2182     [Define if your assembler supports .sleb128 and .uleb128.])])
2183
2184 # GAS versions up to and including 2.11.0 may mis-optimize
2185 # .eh_frame data.
2186 gcc_GAS_CHECK_FEATURE(eh_frame optimization, gcc_cv_as_eh_frame,
2187   [elf,2,12,0],,
2188 [       .text
2189 .LFB1:
2190         .4byte  0
2191 .L1:
2192         .4byte  0
2193 .LFE1:
2194         .section        .eh_frame,"aw",@progbits
2195 __FRAME_BEGIN__:
2196         .4byte  .LECIE1-.LSCIE1
2197 .LSCIE1:
2198         .4byte  0x0
2199         .byte   0x1
2200         .ascii "z\0"
2201         .byte   0x1
2202         .byte   0x78
2203         .byte   0x1a
2204         .byte   0x0
2205         .byte   0x4
2206         .4byte  1
2207         .p2align 1
2208 .LECIE1:
2209 .LSFDE1:
2210         .4byte  .LEFDE1-.LASFDE1
2211 .LASFDE1:
2212         .4byte  .LASFDE1-__FRAME_BEGIN__
2213         .4byte  .LFB1
2214         .4byte  .LFE1-.LFB1
2215         .byte   0x4
2216         .4byte  .LFE1-.LFB1
2217         .byte   0x4
2218         .4byte  .L1-.LFB1
2219 .LEFDE1:],
2220 [  dnl # For autoconf 2.5x, must protect trailing spaces with @&t@.
2221 cat > conftest.lit <<EOF
2222  0000 10000000 00000000 017a0001 781a0004  .........z..x...
2223  0010 01000000 12000000 18000000 00000000  ................
2224  0020 08000000 04080000 0044               .........D      @&t@
2225 EOF
2226 cat > conftest.big <<EOF
2227  0000 00000010 00000000 017a0001 781a0004  .........z..x...
2228  0010 00000001 00000012 00000018 00000000  ................
2229  0020 00000008 04000000 0844               .........D      @&t@
2230 EOF
2231   # If the assembler didn't choke, and we can objdump,
2232   # and we got the correct data, then succeed.
2233   # The text in the here-document typically retains its unix-style line
2234   # endings, while the output of objdump will use host line endings.
2235   # Therefore, use diff -b for the comparisons.
2236   if test x$gcc_cv_objdump != x \
2237   && $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
2238      | tail -3 > conftest.got \
2239   && { diff -b conftest.lit conftest.got > /dev/null 2>&1 \
2240     || diff -b conftest.big conftest.got > /dev/null 2>&1; }
2241   then
2242     gcc_cv_as_eh_frame=yes
2243   elif AC_TRY_COMMAND($gcc_cv_as -o conftest.o --traditional-format /dev/null); then
2244     gcc_cv_as_eh_frame=buggy
2245   else
2246     # Uh oh, what do we do now?
2247     gcc_cv_as_eh_frame=no
2248   fi])
2249
2250 if test $gcc_cv_as_eh_frame = buggy; then
2251   AC_DEFINE(USE_AS_TRADITIONAL_FORMAT, 1,
2252   [Define if your assembler mis-optimizes .eh_frame data.])
2253 fi
2254
2255 gcc_GAS_CHECK_FEATURE(section merging support, gcc_cv_as_shf_merge,
2256  [elf,2,12,0], [--fatal-warnings],
2257  [.section .rodata.str, "aMS", @progbits, 1])
2258 if test $gcc_cv_as_shf_merge = no; then
2259   gcc_GAS_CHECK_FEATURE(section merging support, gcc_cv_as_shf_merge,
2260     [elf,2,12,0], [--fatal-warnings],
2261     [.section .rodata.str, "aMS", %progbits, 1])
2262 fi
2263 AC_DEFINE_UNQUOTED(HAVE_GAS_SHF_MERGE,
2264   [`if test $gcc_cv_as_shf_merge = yes; then echo 1; else echo 0; fi`],
2265 [Define 0/1 if your assembler supports marking sections with SHF_MERGE flag.])
2266
2267 gcc_GAS_CHECK_FEATURE(COMDAT group support, gcc_cv_as_comdat_group,
2268  [elf,2,16,0], [--fatal-warnings],
2269  [.section .text,"axG",@progbits,.foo,comdat])
2270 if test $gcc_cv_as_comdat_group = yes; then
2271   gcc_cv_as_comdat_group_percent=no
2272 else
2273  gcc_GAS_CHECK_FEATURE(COMDAT group support, gcc_cv_as_comdat_group_percent,
2274    [elf,2,16,0], [--fatal-warnings],
2275    [.section .text,"axG",%progbits,.foo,comdat])
2276 fi
2277 if test $in_tree_ld != yes && test x"$ld_vers" != x; then
2278   comdat_group=yes
2279   if test 0"$ld_date" -lt 20050308; then
2280     if test -n "$ld_date"; then
2281       # If there was date string, but was earlier than 2005-03-08, fail
2282       comdat_group=no
2283     elif test "$ld_vers_major" -lt 2; then
2284       comdat_group=no
2285     elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 16; then
2286       comdat_group=no
2287     fi
2288   fi
2289 else
2290   # assume linkers other than GNU ld don't support COMDAT group
2291   comdat_group=no
2292 fi
2293 if test $comdat_group = no; then
2294   gcc_cv_as_comdat_group=no
2295   gcc_cv_as_comdat_group_percent=no
2296 fi
2297 AC_DEFINE_UNQUOTED(HAVE_COMDAT_GROUP,
2298   [`if test $gcc_cv_as_comdat_group = yes || test $gcc_cv_as_comdat_group_percent = yes; then echo 1; else echo 0; fi`],
2299 [Define 0/1 if your assembler and linker support COMDAT groups.])
2300
2301 # Thread-local storage - the check is heavily parametrized.
2302 conftest_s=
2303 tls_first_major=
2304 tls_first_minor=
2305 tls_as_opt=
2306 case "$target" in
2307 changequote(,)dnl
2308   alpha*-*-*)
2309     conftest_s='
2310         .section ".tdata","awT",@progbits
2311 foo:    .long   25
2312         .text
2313         ldq     $27,__tls_get_addr($29)         !literal!1
2314         lda     $16,foo($29)                    !tlsgd!1
2315         jsr     $26,($27),__tls_get_addr        !lituse_tlsgd!1
2316         ldq     $27,__tls_get_addr($29)         !literal!2
2317         lda     $16,foo($29)                    !tlsldm!2
2318         jsr     $26,($27),__tls_get_addr        !lituse_tlsldm!2
2319         ldq     $1,foo($29)                     !gotdtprel
2320         ldah    $2,foo($29)                     !dtprelhi
2321         lda     $3,foo($2)                      !dtprello
2322         lda     $4,foo($29)                     !dtprel
2323         ldq     $1,foo($29)                     !gottprel
2324         ldah    $2,foo($29)                     !tprelhi
2325         lda     $3,foo($2)                      !tprello
2326         lda     $4,foo($29)                     !tprel'
2327         tls_first_major=2
2328         tls_first_minor=13
2329         tls_as_opt=--fatal-warnings
2330         ;;
2331   frv*-*-*)
2332     conftest_s='
2333         .section ".tdata","awT",@progbits
2334 x:      .long   25
2335         .text
2336         call    #gettlsoff(x)'
2337         tls_first_major=2
2338         tls_first_minor=14
2339         ;;
2340   hppa*-*-linux*)
2341     conftest_s='
2342 t1:     .reg    %r20
2343 t2:     .reg    %r21
2344 gp:     .reg    %r19
2345         .section ".tdata","awT",@progbits
2346 foo:    .long   25
2347         .text
2348         .align  4
2349         addil LT%foo-$tls_gdidx$,gp
2350         ldo RT%foo-$tls_gdidx$(%r1),%arg0
2351         b __tls_get_addr
2352         nop             
2353         addil LT%foo-$tls_ldidx$,gp
2354         b __tls_get_addr
2355         ldo RT%foo-$tls_ldidx$(%r1),%arg0
2356         addil LR%foo-$tls_dtpoff$,%ret0
2357         ldo RR%foo-$tls_dtpoff$(%r1),%t1
2358         mfctl %cr27,%t1                 
2359         addil LT%foo-$tls_ieoff$,gp
2360         ldw RT%foo-$tls_ieoff$(%r1),%t2
2361         add %t1,%t2,%t3                 
2362         mfctl %cr27,%t1                 
2363         addil LR%foo-$tls_leoff$,%t1
2364         ldo RR%foo-$tls_leoff$(%r1),%t2'
2365         tls_first_major=2
2366         tls_first_minor=15
2367         tls_as_opt=--fatal-warnings
2368         ;;
2369   arm*-*-*)
2370     conftest_s='
2371         .section ".tdata","awT",%progbits
2372 foo:    .long   25
2373         .text
2374 .word foo(gottpoff)
2375 .word foo(tpoff)
2376 .word foo(tlsgd)
2377 .word foo(tlsldm)
2378 .word foo(tlsldo)'
2379         tls_first_major=2
2380         tls_first_minor=17
2381         ;;
2382   i[34567]86-*-*)
2383     conftest_s='
2384         .section ".tdata","awT",@progbits
2385 foo:    .long   25
2386         .text
2387         movl    %gs:0, %eax
2388         leal    foo@TLSGD(,%ebx,1), %eax
2389         leal    foo@TLSLDM(%ebx), %eax
2390         leal    foo@DTPOFF(%eax), %edx
2391         movl    foo@GOTTPOFF(%ebx), %eax
2392         subl    foo@GOTTPOFF(%ebx), %eax
2393         addl    foo@GOTNTPOFF(%ebx), %eax
2394         movl    foo@INDNTPOFF, %eax
2395         movl    $foo@TPOFF, %eax
2396         subl    $foo@TPOFF, %eax
2397         leal    foo@NTPOFF(%ecx), %eax'
2398         tls_first_major=2
2399         tls_first_minor=14
2400         tls_as_opt=--fatal-warnings
2401         ;;
2402   x86_64-*-*)
2403     conftest_s='
2404         .section ".tdata","awT",@progbits
2405 foo:    .long   25
2406         .text
2407         movq    %fs:0, %rax
2408         leaq    foo@TLSGD(%rip), %rdi
2409         leaq    foo@TLSLD(%rip), %rdi
2410         leaq    foo@DTPOFF(%rax), %rdx
2411         movq    foo@GOTTPOFF(%rip), %rax
2412         movq    $foo@TPOFF, %rax'
2413         tls_first_major=2
2414         tls_first_minor=14
2415         tls_as_opt=--fatal-warnings
2416         ;;
2417   ia64-*-*)
2418     conftest_s='
2419         .section ".tdata","awT",@progbits
2420 foo:    data8   25
2421         .text
2422         addl    r16 = @ltoff(@dtpmod(foo#)), gp
2423         addl    r17 = @ltoff(@dtprel(foo#)), gp
2424         addl    r18 = @ltoff(@tprel(foo#)), gp
2425         addl    r19 = @dtprel(foo#), gp
2426         adds    r21 = @dtprel(foo#), r13
2427         movl    r23 = @dtprel(foo#)
2428         addl    r20 = @tprel(foo#), gp
2429         adds    r22 = @tprel(foo#), r13
2430         movl    r24 = @tprel(foo#)'
2431         tls_first_major=2
2432         tls_first_minor=13
2433         tls_as_opt=--fatal-warnings
2434         ;;
2435   mips*-*-*)
2436     conftest_s='
2437         .section .tdata,"awT",@progbits
2438 x:
2439         .word 2
2440         .text
2441         addiu $4, $28, %tlsgd(x)
2442         addiu $4, $28, %tlsldm(x)
2443         lui $4, %dtprel_hi(x)
2444         addiu $4, $4, %dtprel_lo(x)
2445         lw $4, %gottprel(x)($28)
2446         lui $4, %tprel_hi(x)
2447         addiu $4, $4, %tprel_lo(x)'
2448         tls_first_major=2
2449         tls_first_minor=16
2450         tls_as_opt='-32 --fatal-warnings'
2451         ;;
2452   powerpc-*-*)
2453     conftest_s='
2454         .section ".tdata","awT",@progbits
2455         .align 2
2456 ld0:    .space 4
2457 ld1:    .space 4
2458 x1:     .space 4
2459 x2:     .space 4
2460 x3:     .space 4
2461         .text
2462         addi 3,31,ld0@got@tlsgd
2463         bl __tls_get_addr
2464         addi 3,31,x1@got@tlsld
2465         bl __tls_get_addr
2466         addi 9,3,x1@dtprel
2467         addis 9,3,x2@dtprel@ha
2468         addi 9,9,x2@dtprel@l
2469         lwz 9,x3@got@tprel(31)
2470         add 9,9,x@tls
2471         addi 9,2,x1@tprel
2472         addis 9,2,x2@tprel@ha
2473         addi 9,9,x2@tprel@l'
2474         tls_first_major=2
2475         tls_first_minor=14
2476         tls_as_opt="-a32 --fatal-warnings"
2477         ;;
2478   powerpc64-*-*)
2479     conftest_s='
2480         .section ".tdata","awT",@progbits
2481         .align 3
2482 ld0:    .space 8
2483 ld1:    .space 8
2484 x1:     .space 8
2485 x2:     .space 8
2486 x3:     .space 8
2487         .text
2488         addi 3,2,ld0@got@tlsgd
2489         bl .__tls_get_addr
2490         nop
2491         addi 3,2,ld1@toc
2492         bl .__tls_get_addr
2493         nop
2494         addi 3,2,x1@got@tlsld
2495         bl .__tls_get_addr
2496         nop
2497         addi 9,3,x1@dtprel
2498         bl .__tls_get_addr
2499         nop
2500         addis 9,3,x2@dtprel@ha
2501         addi 9,9,x2@dtprel@l
2502         bl .__tls_get_addr
2503         nop
2504         ld 9,x3@got@dtprel(2)
2505         add 9,9,3
2506         bl .__tls_get_addr
2507         nop'
2508         tls_first_major=2
2509         tls_first_minor=14
2510         tls_as_opt="-a64 --fatal-warnings"
2511         ;;
2512   s390-*-*)
2513     conftest_s='
2514         .section ".tdata","awT",@progbits
2515 foo:    .long   25
2516         .text
2517         .long   foo@TLSGD
2518         .long   foo@TLSLDM
2519         .long   foo@DTPOFF
2520         .long   foo@NTPOFF
2521         .long   foo@GOTNTPOFF
2522         .long   foo@INDNTPOFF
2523         l       %r1,foo@GOTNTPOFF(%r12)
2524         l       %r1,0(%r1):tls_load:foo
2525         bas     %r14,0(%r1,%r13):tls_gdcall:foo
2526         bas     %r14,0(%r1,%r13):tls_ldcall:foo'
2527         tls_first_major=2
2528         tls_first_minor=14
2529         tls_as_opt="-m31 --fatal-warnings"
2530         ;;
2531   s390x-*-*)
2532     conftest_s='
2533         .section ".tdata","awT",@progbits
2534 foo:    .long   25
2535         .text
2536         .quad   foo@TLSGD
2537         .quad   foo@TLSLDM
2538         .quad   foo@DTPOFF
2539         .quad   foo@NTPOFF
2540         .quad   foo@GOTNTPOFF
2541         lg      %r1,foo@GOTNTPOFF(%r12)
2542         larl    %r1,foo@INDNTPOFF
2543         brasl   %r14,__tls_get_offset@PLT:tls_gdcall:foo
2544         brasl   %r14,__tls_get_offset@PLT:tls_ldcall:foo'
2545         tls_first_major=2
2546         tls_first_minor=14
2547         tls_as_opt="-m64 -Aesame --fatal-warnings"
2548         ;;
2549   sh-*-* | sh[34]-*-*)
2550     conftest_s='
2551         .section ".tdata","awT",@progbits
2552 foo:    .long   25
2553         .text
2554         .long   foo@TLSGD
2555         .long   foo@TLSLDM
2556         .long   foo@DTPOFF
2557         .long   foo@GOTTPOFF
2558         .long   foo@TPOFF'
2559         tls_first_major=2
2560         tls_first_minor=13
2561         tls_as_opt=--fatal-warnings
2562         ;;
2563   sparc*-*-*)
2564     case "$target" in
2565       sparc*-sun-solaris2.[56789]*)
2566         # TLS was introduced in the Solaris 9 4/04 release but
2567         # we do not enable it by default on Solaris 9 either.
2568         if test "x$enable_tls" = xyes ; then
2569           on_solaris=yes
2570         else
2571           enable_tls=no;
2572         fi
2573         ;;
2574       sparc*-sun-solaris2.*)
2575         on_solaris=yes
2576         ;;
2577       *)
2578         on_solaris=no
2579         ;;
2580     esac
2581     if test x$on_solaris = xyes && test x$gas_flag = xno; then
2582       conftest_s='
2583         .section ".tdata",#alloc,#write,#tls
2584 foo:    .long   25
2585         .text
2586         sethi   %tgd_hi22(foo), %o0
2587         add     %o0, %tgd_lo10(foo), %o1
2588         add     %l7, %o1, %o0, %tgd_add(foo)
2589         call    __tls_get_addr, %tgd_call(foo)
2590         sethi   %tldm_hi22(foo), %l1
2591         add     %l1, %tldm_lo10(foo), %l2
2592         add     %l7, %l2, %o0, %tldm_add(foo)
2593         call    __tls_get_addr, %tldm_call(foo)
2594         sethi   %tldo_hix22(foo), %l3
2595         xor     %l3, %tldo_lox10(foo), %l4
2596         add     %o0, %l4, %l5, %tldo_add(foo)
2597         sethi   %tie_hi22(foo), %o3
2598         add     %o3, %tie_lo10(foo), %o3
2599         ld      [%l7 + %o3], %o2, %tie_ld(foo)
2600         add     %g7, %o2, %o4, %tie_add(foo)
2601         sethi   %tle_hix22(foo), %l1
2602         xor     %l1, %tle_lox10(foo), %o5
2603         ld      [%g7 + %o5], %o1'
2604         tls_first_major=0
2605         tls_first_minor=0
2606     else
2607       conftest_s='
2608         .section ".tdata","awT",@progbits
2609 foo:    .long   25
2610         .text
2611         sethi   %tgd_hi22(foo), %o0
2612         add     %o0, %tgd_lo10(foo), %o1
2613         add     %l7, %o1, %o0, %tgd_add(foo)
2614         call    __tls_get_addr, %tgd_call(foo)
2615         sethi   %tldm_hi22(foo), %l1
2616         add     %l1, %tldm_lo10(foo), %l2
2617         add     %l7, %l2, %o0, %tldm_add(foo)
2618         call    __tls_get_addr, %tldm_call(foo)
2619         sethi   %tldo_hix22(foo), %l3
2620         xor     %l3, %tldo_lox10(foo), %l4
2621         add     %o0, %l4, %l5, %tldo_add(foo)
2622         sethi   %tie_hi22(foo), %o3
2623         add     %o3, %tie_lo10(foo), %o3
2624         ld      [%l7 + %o3], %o2, %tie_ld(foo)
2625         add     %g7, %o2, %o4, %tie_add(foo)
2626         sethi   %tle_hix22(foo), %l1
2627         xor     %l1, %tle_lox10(foo), %o5
2628         ld      [%g7 + %o5], %o1'
2629         tls_first_major=2
2630         tls_first_minor=14
2631         tls_as_opt="-32 --fatal-warnings"
2632       fi
2633         ;;
2634 changequote([,])dnl
2635 esac
2636 set_have_as_tls=no
2637 if test "x$enable_tls" = xno ; then
2638   : # TLS explicitly disabled.
2639 elif test "x$enable_tls" = xyes ; then
2640   set_have_as_tls=yes # TLS explicitly enabled.
2641 elif test -z "$tls_first_major"; then
2642   : # If we don't have a check, assume no support.
2643 else
2644   gcc_GAS_CHECK_FEATURE(thread-local storage support, gcc_cv_as_tls,
2645   [$tls_first_major,$tls_first_minor,0], [$tls_as_opt], [$conftest_s],,
2646   [set_have_as_tls=yes])
2647 fi
2648 if test $set_have_as_tls = yes ; then
2649   AC_DEFINE(HAVE_AS_TLS, 1,
2650             [Define if your assembler supports thread-local storage.])
2651 fi
2652
2653 # Target-specific assembler checks.
2654
2655 AC_MSG_CHECKING(linker -Bstatic/-Bdynamic option)
2656 gcc_cv_ld_static_dynamic=no
2657 if test $in_tree_ld = yes ; then
2658   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10; then
2659     gcc_cv_ld_static_dynamic=yes
2660   fi
2661 elif test x$gcc_cv_ld != x; then
2662         # Check if linker supports -Bstatic/-Bdynamic option
2663         if $gcc_cv_ld --help 2>/dev/null | grep -- -Bstatic > /dev/null \
2664           && $gcc_cv_ld --help 2>/dev/null | grep -- -Bdynamic > /dev/null; then
2665                 gcc_cv_ld_static_dynamic=yes
2666         fi
2667 fi
2668 if test x"$gcc_cv_ld_static_dynamic" = xyes; then
2669         AC_DEFINE(HAVE_LD_STATIC_DYNAMIC, 1,
2670 [Define if your linker supports -Bstatic/-Bdynamic option.])
2671 fi
2672 AC_MSG_RESULT($gcc_cv_ld_static_dynamic)
2673
2674 if test x"$demangler_in_ld" = xyes; then
2675   AC_MSG_CHECKING(linker --demangle support)
2676   gcc_cv_ld_demangle=no
2677   if test $in_tree_ld = yes; then
2678     if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 14 -o "$gcc_cv_gld_major_version" -gt 2; then \
2679       gcc_cv_ld_demangle=yes
2680     fi
2681   elif test x$gcc_cv_ld != x -a x"$gnu_ld" = xyes; then
2682     # Check if the GNU linker supports --demangle option
2683     if $gcc_cv_ld --help 2>/dev/null | grep no-demangle > /dev/null; then
2684       gcc_cv_ld_demangle=yes
2685     fi
2686   fi
2687   if test x"$gcc_cv_ld_demangle" = xyes; then
2688     AC_DEFINE(HAVE_LD_DEMANGLE, 1,
2689 [Define if your linker supports --demangle option.])
2690   fi
2691   AC_MSG_RESULT($gcc_cv_ld_demangle)
2692 fi
2693
2694 case "$target" in
2695   # All TARGET_ABI_OSF targets.
2696   alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
2697     gcc_GAS_CHECK_FEATURE([explicit relocation support],
2698         gcc_cv_as_alpha_explicit_relocs, [2,12,0],,
2699 [       .set nomacro
2700         .text
2701         extbl   $3, $2, $3      !lituse_bytoff!1
2702         ldq     $2, a($29)      !literal!1
2703         ldq     $4, b($29)      !literal!2
2704         ldq_u   $3, 0($2)       !lituse_base!1
2705         ldq     $27, f($29)     !literal!5
2706         jsr     $26, ($27), f   !lituse_jsr!5
2707         ldah    $29, 0($26)     !gpdisp!3
2708         lda     $0, c($29)      !gprel
2709         ldah    $1, d($29)      !gprelhigh
2710         lda     $1, d($1)       !gprellow
2711         lda     $29, 0($29)     !gpdisp!3],,
2712     [AC_DEFINE(HAVE_AS_EXPLICIT_RELOCS, 1,
2713   [Define if your assembler supports explicit relocations.])])
2714     gcc_GAS_CHECK_FEATURE([jsrdirect relocation support],
2715         gcc_cv_as_alpha_jsrdirect_relocs, [2,16,90],,
2716 [       .set nomacro
2717         .text
2718         ldq     $27, a($29)     !literal!1
2719         jsr     $26, ($27), a   !lituse_jsrdirect!1],,
2720     [AC_DEFINE(HAVE_AS_JSRDIRECT_RELOCS, 1,
2721   [Define if your assembler supports the lituse_jsrdirect relocation.])])
2722     ;;
2723
2724   cris-*-*)
2725     gcc_GAS_CHECK_FEATURE([-no-mul-bug-abort option],
2726       gcc_cv_as_cris_no_mul_bug,[2,15,91],
2727       [-no-mul-bug-abort], [.text],,
2728       [AC_DEFINE(HAVE_AS_NO_MUL_BUG_ABORT_OPTION, 1,
2729                 [Define if your assembler supports the -no-mul-bug-abort option.])])
2730     ;;
2731
2732   sparc*-*-*)
2733     gcc_GAS_CHECK_FEATURE([.register], gcc_cv_as_sparc_register_op,,,
2734       [.register %g2, #scratch],,
2735       [AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
2736                 [Define if your assembler supports .register.])])
2737
2738     gcc_GAS_CHECK_FEATURE([-relax option], gcc_cv_as_sparc_relax,,
2739       [-relax], [.text],,
2740       [AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
2741                 [Define if your assembler supports -relax option.])])
2742
2743     gcc_GAS_CHECK_FEATURE([unaligned pcrel relocs],
2744       gcc_cv_as_sparc_ua_pcrel,,
2745       [-K PIC],
2746 [.text
2747 foo:
2748         nop
2749 .data
2750 .align 4
2751 .byte 0
2752 .uaword %r_disp32(foo)],
2753       [if test x$gcc_cv_ld != x \
2754        && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
2755          gcc_cv_as_sparc_ua_pcrel=yes
2756        fi
2757        rm -f conftest],
2758       [AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
2759                 [Define if your assembler and linker support unaligned PC relative relocs.])
2760
2761       gcc_GAS_CHECK_FEATURE([unaligned pcrel relocs against hidden symbols],
2762         gcc_cv_as_sparc_ua_pcrel_hidden,,
2763         [-K PIC],
2764 [.data
2765 .align 4
2766 .byte 0x31
2767 .uaword %r_disp32(foo)
2768 .byte 0x32, 0x33, 0x34
2769 .global foo
2770 .hidden foo
2771 foo:
2772 .skip 4],
2773         [if test x$gcc_cv_ld != x && test x$gcc_cv_objdump != x \
2774          && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
2775          && $gcc_cv_objdump -s -j .data conftest 2> /dev/null \
2776             | grep ' 31000000 07323334' > /dev/null 2>&1; then
2777             if $gcc_cv_objdump -R conftest 2> /dev/null \
2778                | grep 'DISP32' > /dev/null 2>&1; then
2779                 :
2780             else
2781                 gcc_cv_as_sparc_ua_pcrel_hidden=yes
2782             fi
2783          fi
2784          rm -f conftest],
2785          [AC_DEFINE(HAVE_AS_SPARC_UA_PCREL_HIDDEN, 1,
2786                    [Define if your assembler and linker support unaligned PC relative relocs against hidden symbols.])])
2787     ]) # unaligned pcrel relocs
2788
2789     gcc_GAS_CHECK_FEATURE([offsetable %lo()],
2790       gcc_cv_as_sparc_offsetable_lo10,,
2791       [-xarch=v9],
2792 [.text
2793         or %g1, %lo(ab) + 12, %g1
2794         or %g1, %lo(ab + 12), %g1],
2795       [if test x$gcc_cv_objdump != x \
2796        && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \
2797           | grep ' 82106000 82106000' > /dev/null 2>&1; then
2798          gcc_cv_as_sparc_offsetable_lo10=yes
2799        fi],
2800        [AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
2801                  [Define if your assembler supports offsetable %lo().])])
2802     ;;
2803
2804 changequote(,)dnl
2805   i[34567]86-*-* | x86_64-*-*)
2806 changequote([,])dnl
2807     case $target_os in
2808       cygwin* | pe | mingw32*)
2809         # Used for DWARF 2 in PE
2810         gcc_GAS_CHECK_FEATURE([.secrel32 relocs],
2811           gcc_cv_as_ix86_pe_secrel32,
2812           [2,15,91],,
2813 [.text
2814 foo:    nop
2815 .data
2816         .secrel32 foo],
2817           [if test x$gcc_cv_ld != x \
2818            && $gcc_cv_ld -o conftest conftest.o > /dev/null 2>&1; then
2819              gcc_cv_as_ix86_pe_secrel32=yes
2820            fi
2821            rm -f conftest],
2822           [AC_DEFINE(HAVE_GAS_PE_SECREL32_RELOC, 1,
2823             [Define if your assembler and linker support 32-bit section relative relocs via '.secrel32 label'.])])
2824         ;;
2825     esac
2826
2827     gcc_GAS_CHECK_FEATURE([filds and fists mnemonics],
2828        gcc_cv_as_ix86_filds_fists,
2829       [2,9,0],, [filds mem; fists mem],,
2830       [AC_DEFINE(HAVE_GAS_FILDS_FISTS, 1,
2831         [Define if your assembler uses the new HImode fild and fist notation.])])
2832
2833     gcc_GAS_CHECK_FEATURE([cmov syntax],
2834       gcc_cv_as_ix86_cmov_sun_syntax,,,
2835       [cmovl.l %edx, %eax],,
2836       [AC_DEFINE(HAVE_AS_IX86_CMOV_SUN_SYNTAX, 1,
2837         [Define if your assembler supports the Sun syntax for cmov.])])
2838
2839     gcc_GAS_CHECK_FEATURE([ffreep mnemonic],
2840       gcc_cv_as_ix86_ffreep,,,
2841       [ffreep %st(1)],,
2842       [AC_DEFINE(HAVE_AS_IX86_FFREEP, 1,
2843         [Define if your assembler supports the ffreep mnemonic.])])
2844
2845     gcc_GAS_CHECK_FEATURE([sahf mnemonic],
2846       gcc_cv_as_ix86_sahf,,,
2847       [sahf],,
2848       [AC_DEFINE(HAVE_AS_IX86_SAHF, 1,
2849         [Define if your assembler supports the sahf mnemonic.])])
2850
2851     gcc_GAS_CHECK_FEATURE([different section symbol subtraction],
2852       gcc_cv_as_ix86_diff_sect_delta,,,
2853       [.section .rodata
2854 .L1:
2855         .long .L2-.L1
2856         .long .L3-.L1
2857         .text
2858 .L3:    nop
2859 .L2:    nop],,
2860       [AC_DEFINE(HAVE_AS_IX86_DIFF_SECT_DELTA, 1,
2861         [Define if your assembler supports the subtraction of symbols in different sections.])])
2862
2863     # This one is used unconditionally by i386.[ch]; it is to be defined
2864     # to 1 if the feature is present, 0 otherwise.
2865     gcc_GAS_CHECK_FEATURE([GOTOFF in data],
2866         gcc_cv_as_ix86_gotoff_in_data, [2,11,0],,
2867 [       .text
2868 .L0:
2869         nop
2870         .data
2871         .long .L0@GOTOFF])
2872     AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
2873       [`if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
2874       [Define true if the assembler supports '.long foo@GOTOFF'.])
2875     ;;
2876
2877   ia64*-*-*)
2878     gcc_GAS_CHECK_FEATURE([ltoffx and ldxmov relocs],
2879         gcc_cv_as_ia64_ltoffx_ldxmov_relocs, [2,14,0],,
2880 [       .text
2881         addl r15 = @ltoffx(x#), gp
2882         ;;
2883         ld8.mov r16 = [[r15]], x#],,
2884     [AC_DEFINE(HAVE_AS_LTOFFX_LDXMOV_RELOCS, 1,
2885           [Define if your assembler supports ltoffx and ldxmov relocations.])])
2886
2887     ;;
2888
2889   powerpc*-*-*)
2890     case $target in
2891       *-*-aix*) conftest_s='    .machine "pwr5"
2892         .csect .text[[PR]]
2893         mfcr 3,128';;
2894       *-*-darwin*)
2895         gcc_GAS_CHECK_FEATURE([.machine directive support],
2896           gcc_cv_as_machine_directive,,,
2897           [     .machine ppc7400])
2898         if test x$gcc_cv_as_machine_directive != xyes; then
2899           echo "*** This target requires an assembler supporting \".machine\"" >&2
2900           echo you can get it from: ftp://gcc.gnu.org/pub/gcc/infrastructure/cctools-528.5.dmg >&2
2901           test x$build = x$target && exit 1
2902         fi
2903         conftest_s='    .text
2904         mfcr r3,128';;
2905       *) conftest_s='   .machine power4
2906         .text
2907         mfcr 3,128';;
2908     esac
2909
2910     gcc_GAS_CHECK_FEATURE([mfcr field support],
2911       gcc_cv_as_powerpc_mfcrf, [2,14,0],,
2912       [$conftest_s],,
2913       [AC_DEFINE(HAVE_AS_MFCRF, 1,
2914           [Define if your assembler supports mfcr field.])])
2915
2916     case $target in
2917       *-*-aix*) conftest_s='    .machine "pwr5"
2918         .csect .text[[PR]]
2919         popcntb 3,3';;
2920       *) conftest_s='   .machine power5
2921         .text
2922         popcntb 3,3';;
2923     esac
2924
2925     gcc_GAS_CHECK_FEATURE([popcntb support],
2926       gcc_cv_as_powerpc_popcntb, [2,17,0],,
2927       [$conftest_s],,
2928       [AC_DEFINE(HAVE_AS_POPCNTB, 1,
2929           [Define if your assembler supports popcntb field.])])
2930
2931     case $target in
2932       *-*-aix*) conftest_s='    .machine "pwr5x"
2933         .csect .text[[PR]]
2934         frin 1,1';;
2935       *) conftest_s='   .machine power5
2936         .text
2937         frin 1,1';;
2938     esac
2939
2940     gcc_GAS_CHECK_FEATURE([fp round support],
2941       gcc_cv_as_powerpc_fprnd, [2,17,0],,
2942       [$conftest_s],,
2943       [AC_DEFINE(HAVE_AS_FPRND, 1,
2944           [Define if your assembler supports fprnd.])])
2945
2946     case $target in
2947       *-*-aix*) conftest_s='    .machine "pwr6"
2948         .csect .text[[PR]]
2949         mffgpr 1,3';;
2950       *) conftest_s='   .machine power6
2951         .text
2952         mffgpr 1,3';;
2953     esac
2954
2955     gcc_GAS_CHECK_FEATURE([move fp gpr support],
2956       gcc_cv_as_powerpc_mfpgpr, [9,99,0],,
2957       [$conftest_s],,
2958       [AC_DEFINE(HAVE_AS_MFPGPR, 1,
2959           [Define if your assembler supports mffgpr and mftgpr.])])
2960
2961     case $target in
2962       *-*-aix*) conftest_s='    .csect .text[[PR]]
2963 LCF..0:
2964         addis 11,30,_GLOBAL_OFFSET_TABLE_-LCF..0@ha';;
2965       *-*-darwin*)
2966         conftest_s='    .text
2967 LCF0:
2968         addis r11,r30,_GLOBAL_OFFSET_TABLE_-LCF0@ha';;
2969       *) conftest_s='   .text
2970 .LCF0:
2971         addis 11,30,_GLOBAL_OFFSET_TABLE_-.LCF0@ha';;
2972     esac
2973
2974     gcc_GAS_CHECK_FEATURE([rel16 relocs],
2975       gcc_cv_as_powerpc_rel16, [2,17,0], -a32,
2976       [$conftest_s],,
2977       [AC_DEFINE(HAVE_AS_REL16, 1,
2978           [Define if your assembler supports R_PPC_REL16 relocs.])])
2979
2980     case $target in
2981       *-*-aix*) conftest_s='    .machine "pwr6"
2982         .csect .text[[PR]]
2983         cmpb 3,4,5';;
2984       *) conftest_s='   .machine power6
2985         .text
2986         cmpb 3,4,5';;
2987     esac
2988
2989     gcc_GAS_CHECK_FEATURE([compare bytes support],
2990       gcc_cv_as_powerpc_cmpb, [9,99,0], -a32,
2991       [$conftest_s],,
2992       [AC_DEFINE(HAVE_AS_CMPB, 1,
2993           [Define if your assembler supports cmpb.])])
2994
2995     case $target in
2996       *-*-aix*) conftest_s='    .machine "pwr6"
2997         .csect .text[[PR]]
2998         dadd 1,2,3';;
2999       *) conftest_s='   .machine power6
3000         .text
3001         dadd 1,2,3';;
3002     esac
3003
3004     gcc_GAS_CHECK_FEATURE([decimal float support],
3005       gcc_cv_as_powerpc_dfp, [9,99,0], -a32,
3006       [$conftest_s],,
3007       [AC_DEFINE(HAVE_AS_DFP, 1,
3008           [Define if your assembler supports DFP instructions.])])
3009
3010     gcc_GAS_CHECK_FEATURE([.gnu_attribute support],
3011       gcc_cv_as_powerpc_gnu_attribute, [2,18,0],,
3012       [.gnu_attribute 4,1],,
3013       [AC_DEFINE(HAVE_AS_GNU_ATTRIBUTE, 1,
3014           [Define if your assembler supports .gnu_attribute.])])
3015     ;;
3016
3017   mips*-*-*)
3018     gcc_GAS_CHECK_FEATURE([explicit relocation support],
3019       gcc_cv_as_mips_explicit_relocs, [2,14,0],,
3020 [       lw $4,%gp_rel(foo)($4)],,
3021       [if test x$target_cpu_default = x
3022        then target_cpu_default=MASK_EXPLICIT_RELOCS
3023        else target_cpu_default="($target_cpu_default)|MASK_EXPLICIT_RELOCS"
3024        fi])
3025     gcc_GAS_CHECK_FEATURE([-mno-shared support],
3026       gcc_cv_as_mips_no_shared, [2,16,0], [-mno-shared], [nop],,
3027       [AC_DEFINE(HAVE_AS_NO_SHARED, 1,
3028                  [Define if the assembler understands -mno-shared.])])
3029
3030     gcc_GAS_CHECK_FEATURE([.gnu_attribute support],
3031       gcc_cv_as_mips_gnu_attribute, [2,18,0],,
3032       [.gnu_attribute 4,1],,
3033       [AC_DEFINE(HAVE_AS_GNU_ATTRIBUTE, 1,
3034           [Define if your assembler supports .gnu_attribute.])])
3035
3036     gcc_GAS_CHECK_FEATURE([.dtprelword support],
3037       gcc_cv_as_mips_dtprelword, [2,18,0],,
3038       [.section .tdata,"awT",@progbits
3039 x:
3040         .word 2
3041         .text
3042         .dtprelword x+0x8000],,
3043       [AC_DEFINE(HAVE_AS_DTPRELWORD, 1,
3044           [Define if your assembler supports .dtprelword.])])
3045     ;;
3046 esac
3047
3048 # Mips and HP-UX need the GNU assembler.
3049 # Linux on IA64 might be able to use the Intel assembler.
3050
3051 case "$target" in
3052   mips*-*-* | *-*-hpux* )
3053     if test x$gas_flag = xyes \
3054        || test x"$host" != x"$build" \
3055        || test ! -x "$gcc_cv_as" \
3056        || "$gcc_cv_as" -v < /dev/null 2>&1 | grep GNU > /dev/null; then
3057       :
3058     else
3059       echo "*** This configuration requires the GNU assembler" >&2
3060       exit 1
3061     fi
3062     ;;
3063 esac
3064
3065 # ??? Not all targets support dwarf2 debug_line, even within a version
3066 # of gas.  Moreover, we need to emit a valid instruction to trigger any
3067 # info to the output file.  So, as supported targets are added to gas 2.11,
3068 # add some instruction here to (also) show we expect this might work.
3069 # ??? Once 2.11 is released, probably need to add first known working
3070 # version to the per-target configury.
3071 case "$target" in
3072   i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
3073   | x86_64*-*-* | hppa*-*-* | arm*-*-* \
3074   | xstormy16*-*-* | cris-*-* | xtensa-*-* | bfin-*-* | score*-*-* \
3075   | spu-*-* | fido*-*-*)
3076     insn="nop"
3077     ;;
3078   ia64*-*-* | s390*-*-*)
3079     insn="nop 0"
3080     ;;
3081   mmix-*-*)
3082     insn="swym 0"
3083     ;;
3084 esac
3085 if test x"$insn" != x; then
3086  conftest_s="\
3087         .file 1 \"conftest.s\"
3088         .loc 1 3 0
3089         $insn"
3090  gcc_GAS_CHECK_FEATURE([dwarf2 debug_line support],
3091   gcc_cv_as_dwarf2_debug_line,
3092   [elf,2,11,0],, [$conftest_s],
3093   [if test x$gcc_cv_objdump != x \
3094    && $gcc_cv_objdump -h conftest.o 2> /dev/null \
3095       | grep debug_line > /dev/null 2>&1; then
3096      gcc_cv_as_dwarf2_debug_line=yes
3097    fi])
3098
3099 # The .debug_line file table must be in the exact order that
3100 # we specified the files, since these indices are also used
3101 # by DW_AT_decl_file.  Approximate this test by testing if
3102 # the assembler bitches if the same index is assigned twice.
3103  gcc_GAS_CHECK_FEATURE([buggy dwarf2 .file directive],
3104   gcc_cv_as_dwarf2_file_buggy,,,
3105 [       .file 1 "foo.s"
3106         .file 1 "bar.s"])
3107
3108  if test $gcc_cv_as_dwarf2_debug_line = yes \
3109  && test $gcc_cv_as_dwarf2_file_buggy = no; then
3110         AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
3111   [Define if your assembler supports dwarf2 .file/.loc directives,
3112    and preserves file table indices exactly as given.])
3113  fi
3114
3115  gcc_GAS_CHECK_FEATURE([--gdwarf2 option],
3116   gcc_cv_as_gdwarf2_flag,
3117   [elf,2,11,0], [--gdwarf2], [$insn],,
3118   [AC_DEFINE(HAVE_AS_GDWARF2_DEBUG_FLAG, 1,
3119 [Define if your assembler supports the --gdwarf2 option.])])
3120
3121  gcc_GAS_CHECK_FEATURE([--gstabs option],
3122   gcc_cv_as_gstabs_flag,
3123   [elf,2,11,0], [--gstabs], [$insn],
3124   [# The native Solaris 9/Intel assembler doesn't understand --gstabs
3125    # and warns about it, but still exits successfully.  So check for
3126    # this.
3127    if AC_TRY_COMMAND([$gcc_cv_as --gstabs -o conftest.o conftest.s 2>&1 | grep -i warning > /dev/null])
3128    then :
3129    else gcc_cv_as_gstabs_flag=yes
3130    fi],
3131   [AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1,
3132 [Define if your assembler supports the --gstabs option.])])
3133
3134  gcc_GAS_CHECK_FEATURE([--debug-prefix-map option],
3135   gcc_cv_as_debug_prefix_map_flag,
3136   [2,18,0], [--debug-prefix-map /a=/b], [$insn],,
3137   [AC_DEFINE(HAVE_AS_DEBUG_PREFIX_MAP, 1,
3138 [Define if your assembler supports the --debug-prefix-map option.])])
3139 fi
3140
3141 AC_CACHE_CHECK([assembler for tolerance to line number 0],
3142  [gcc_cv_as_line_zero],
3143  [gcc_cv_as_line_zero=no
3144   if test $in_tree_gas = yes; then
3145     gcc_GAS_VERSION_GTE_IFELSE(2, 16, 91, [gcc_cv_as_line_zero=yes])
3146   elif test "x$gcc_cv_as" != x; then
3147     { echo '# 1 "test.s" 1'; echo '# 0 "" 2'; } > conftest.s
3148     if AC_TRY_COMMAND([$gcc_cv_as -o conftest.o conftest.s >&AS_MESSAGE_LOG_FD 2>conftest.out]) &&
3149        test "x`cat conftest.out`" = x
3150     then
3151       gcc_cv_as_line_zero=yes
3152     else
3153       echo "configure: failed program was" >&AS_MESSAGE_LOG_FD
3154       cat conftest.s >&AS_MESSAGE_LOG_FD
3155       echo "configure: error output was" >&AS_MESSAGE_LOG_FD
3156       cat conftest.out >&AS_MESSAGE_LOG_FD
3157     fi
3158     rm -f conftest.o conftest.s conftest.out
3159   fi])
3160 if test "x$gcc_cv_as_line_zero" = xyes; then
3161   AC_DEFINE([HAVE_AS_LINE_ZERO], 1,
3162 [Define if the assembler won't complain about a line such as # 0 "" 2.])
3163 fi
3164
3165 AC_MSG_CHECKING(linker read-only and read-write section mixing)
3166 gcc_cv_ld_ro_rw_mix=unknown
3167 if test $in_tree_ld = yes ; then
3168   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 \
3169      && test $in_tree_ld_is_elf = yes; then
3170     gcc_cv_ld_ro_rw_mix=read-write
3171   fi
3172 elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
3173   echo '.section myfoosect, "a"' > conftest1.s
3174   echo '.section myfoosect, "aw"' > conftest2.s
3175   echo '.byte 1' >> conftest2.s
3176   echo '.section myfoosect, "a"' > conftest3.s
3177   echo '.byte 0' >> conftest3.s
3178   if $gcc_cv_as -o conftest1.o conftest1.s > /dev/null 2>&1 \
3179      && $gcc_cv_as -o conftest2.o conftest2.s > /dev/null 2>&1 \
3180      && $gcc_cv_as -o conftest3.o conftest3.s > /dev/null 2>&1 \
3181      && $gcc_cv_ld -shared -o conftest1.so conftest1.o \
3182         conftest2.o conftest3.o > /dev/null 2>&1; then
3183     gcc_cv_ld_ro_rw_mix=`$gcc_cv_objdump -h conftest1.so \
3184                          | sed -e '/myfoosect/!d' -e N`
3185     if echo "$gcc_cv_ld_ro_rw_mix" | grep CONTENTS > /dev/null; then
3186       if echo "$gcc_cv_ld_ro_rw_mix" | grep READONLY > /dev/null; then
3187         gcc_cv_ld_ro_rw_mix=read-only
3188       else
3189         gcc_cv_ld_ro_rw_mix=read-write
3190       fi
3191     fi
3192   fi
3193 changequote(,)dnl
3194   rm -f conftest.* conftest[123].*
3195 changequote([,])dnl
3196 fi
3197 if test x$gcc_cv_ld_ro_rw_mix = xread-write; then
3198         AC_DEFINE(HAVE_LD_RO_RW_SECTION_MIXING, 1,
3199   [Define if your linker links a mix of read-only
3200    and read-write sections into a read-write section.])
3201 fi
3202 AC_MSG_RESULT($gcc_cv_ld_ro_rw_mix)
3203
3204 AC_MSG_CHECKING(linker PT_GNU_EH_FRAME support)
3205 gcc_cv_ld_eh_frame_hdr=no
3206 if test $in_tree_ld = yes ; then
3207   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 \
3208      && test $in_tree_ld_is_elf = yes; then
3209     gcc_cv_ld_eh_frame_hdr=yes
3210   fi
3211 elif test x$gcc_cv_ld != x; then
3212         # Check if linker supports --eh-frame-hdr option
3213         if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then
3214                 gcc_cv_ld_eh_frame_hdr=yes
3215         fi
3216 fi
3217 GCC_TARGET_TEMPLATE([HAVE_LD_EH_FRAME_HDR])
3218 if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then
3219         AC_DEFINE(HAVE_LD_EH_FRAME_HDR, 1,
3220 [Define if your linker supports --eh-frame-hdr option.])
3221 fi
3222 AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr)
3223
3224 AC_MSG_CHECKING(linker position independent executable support)
3225 gcc_cv_ld_pie=no
3226 if test $in_tree_ld = yes ; then
3227   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 15 -o "$gcc_cv_gld_major_version" -gt 2 \
3228      && test $in_tree_ld_is_elf = yes; then
3229     gcc_cv_ld_pie=yes
3230   fi
3231 elif test x$gcc_cv_ld != x; then
3232         # Check if linker supports -pie option
3233         if $gcc_cv_ld --help 2>/dev/null | grep -- -pie > /dev/null; then
3234                 gcc_cv_ld_pie=yes
3235         fi
3236 fi
3237 if test x"$gcc_cv_ld_pie" = xyes; then
3238         AC_DEFINE(HAVE_LD_PIE, 1,
3239 [Define if your linker supports -pie option.])
3240 fi
3241 AC_MSG_RESULT($gcc_cv_ld_pie)
3242
3243 AC_MSG_CHECKING(linker EH-compatible garbage collection of sections)
3244 gcc_cv_ld_eh_gc_sections=no
3245 if test $in_tree_ld = yes ; then
3246   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 17 -o "$gcc_cv_gld_major_version" -gt 2 \
3247      && test $in_tree_ld_is_elf = yes; then
3248     gcc_cv_ld_eh_gc_sections=yes
3249   fi
3250 elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
3251   cat > conftest.s <<EOF
3252         .section        .text
3253 .globl _start
3254         .type _start, @function
3255 _start:
3256         .long foo
3257         .size _start, .-_start
3258         .section        .text.foo,"ax",@progbits
3259         .type foo, @function
3260 foo:
3261         .long 0
3262         .size foo, .-foo
3263         .section        .gcc_except_table.foo,"a",@progbits
3264 .L0:
3265         .long 0
3266         .section        .eh_frame,"a",@progbits
3267         .long .L0
3268 EOF
3269   if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
3270     if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
3271          | grep "gc-sections option ignored" > /dev/null; then
3272       gcc_cv_ld_eh_gc_sections=no
3273     elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
3274       gcc_cv_ld_eh_gc_sections=yes
3275       # If no COMDAT groups, the compiler will emit .gnu.linkonce.t. sections.
3276       if test x$gcc_cv_as_comdat_group != xyes; then
3277         gcc_cv_ld_eh_gc_sections=no
3278         cat > conftest.s <<EOF
3279         .section        .text
3280 .globl _start
3281         .type _start, @function
3282 _start:
3283         .long foo
3284         .size _start, .-_start
3285         .section        .gnu.linkonce.t.foo,"ax",@progbits
3286         .type foo, @function
3287 foo:
3288         .long 0
3289         .size foo, .-foo
3290         .section        .gcc_except_table.foo,"a",@progbits
3291 .L0:
3292         .long 0
3293         .section        .eh_frame,"a",@progbits
3294         .long .L0
3295 EOF
3296         if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
3297           if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
3298                | grep "gc-sections option ignored" > /dev/null; then
3299             gcc_cv_ld_eh_gc_sections=no
3300           elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
3301             gcc_cv_ld_eh_gc_sections=yes
3302           fi
3303         fi
3304       fi
3305     fi
3306   fi
3307   rm -f conftest.s conftest.o conftest
3308 fi
3309 case "$target" in
3310   hppa*-*-linux*)
3311     # ??? This apparently exposes a binutils bug with PC-relative relocations.
3312     gcc_cv_ld_eh_gc_sections=no
3313     ;;
3314 esac
3315 if test x$gcc_cv_ld_eh_gc_sections = xyes; then
3316         AC_DEFINE(HAVE_LD_EH_GC_SECTIONS, 1,
3317   [Define if your linker supports garbage collection of
3318    sections in presence of EH frames.])
3319 fi
3320 AC_MSG_RESULT($gcc_cv_ld_eh_gc_sections)
3321
3322 # --------
3323 # UNSORTED
3324 # --------
3325
3326 AC_CACHE_CHECK(linker --as-needed support,
3327 gcc_cv_ld_as_needed,
3328 [gcc_cv_ld_as_needed=no
3329 if test $in_tree_ld = yes ; then
3330   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
3331      && test $in_tree_ld_is_elf = yes; then
3332     gcc_cv_ld_as_needed=yes
3333   fi
3334 elif test x$gcc_cv_ld != x; then
3335         # Check if linker supports --as-needed and --no-as-needed options
3336         if $gcc_cv_ld --help 2>/dev/null | grep as-needed > /dev/null; then
3337                 gcc_cv_ld_as_needed=yes
3338         fi
3339 fi
3340 ])
3341 if test x"$gcc_cv_ld_as_needed" = xyes; then
3342         AC_DEFINE(HAVE_LD_AS_NEEDED, 1,
3343 [Define if your linker supports --as-needed and --no-as-needed options.])
3344 fi
3345
3346 case "$target:$tm_file" in
3347   powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
3348     AC_CACHE_CHECK(linker support for omitting dot symbols,
3349     gcc_cv_ld_no_dot_syms,
3350     [gcc_cv_ld_no_dot_syms=no
3351     if test $in_tree_ld = yes ; then
3352       if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2; then
3353         gcc_cv_ld_no_dot_syms=yes
3354       fi
3355     elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x ; then
3356       cat > conftest1.s <<EOF
3357         .text
3358         bl .foo
3359 EOF
3360       cat > conftest2.s <<EOF
3361         .section ".opd","aw"
3362         .align 3
3363         .globl foo
3364         .type foo,@function
3365 foo:
3366         .quad .LEfoo,.TOC.@tocbase,0
3367         .text
3368 .LEfoo:
3369         blr
3370         .size foo,.-.LEfoo
3371 EOF
3372       if $gcc_cv_as -a64 -o conftest1.o conftest1.s > /dev/null 2>&1 \
3373          && $gcc_cv_as -a64 -o conftest2.o conftest2.s > /dev/null 2>&1 \
3374          && $gcc_cv_ld -melf64ppc -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then
3375         gcc_cv_ld_no_dot_syms=yes
3376       fi
3377       rm -f conftest conftest1.o conftest2.o conftest1.s conftest2.s
3378     fi
3379     ])
3380     if test x"$gcc_cv_ld_no_dot_syms" = xyes; then
3381       AC_DEFINE(HAVE_LD_NO_DOT_SYMS, 1,
3382     [Define if your PowerPC64 linker only needs function descriptor syms.])
3383     fi
3384     ;;
3385 esac
3386
3387 AC_CACHE_CHECK(linker --sysroot support,
3388   gcc_cv_ld_sysroot,
3389   [gcc_cv_ld_sysroot=no
3390   if test $in_tree_ld = yes ; then
3391       if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 ; then
3392         gcc_cv_ld_sysroot=yes
3393       fi
3394   elif test x$gcc_cv_ld != x; then 
3395     if $gcc_cv_ld --help 2>/dev/null | grep sysroot > /dev/null; then
3396       gcc_cv_ld_sysroot=yes
3397     fi
3398   fi])
3399 if test x"$gcc_cv_ld_sysroot" = xyes; then
3400   AC_DEFINE(HAVE_LD_SYSROOT, 1,
3401   [Define if your linker supports --sysroot.])
3402 fi        
3403
3404 if test x$with_sysroot = x && test x$host = x$target \
3405    && test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" \
3406    && test "$prefix" != "NONE"; then
3407   AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include",
3408 [Define to PREFIX/include if cpp should also search that directory.])
3409 fi
3410
3411 # Test for stack protector support in target C library.
3412 AC_CACHE_CHECK(__stack_chk_fail in target C library,
3413       gcc_cv_libc_provides_ssp,
3414       [gcc_cv_libc_provides_ssp=no
3415     case "$target" in
3416        *-*-linux*)
3417       if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
3418         if test "x$with_sysroot" = x; then
3419           glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include"
3420         elif test "x$with_build_sysroot" != "x"; then
3421           glibc_header_dir="${with_build_sysroot}/usr/include"
3422         elif test "x$with_sysroot" = xyes; then
3423           glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include"
3424         else
3425           glibc_header_dir="${with_sysroot}/usr/include"
3426         fi
3427       else
3428         glibc_header_dir=/usr/include
3429       fi
3430       # glibc 2.4 and later provides __stack_chk_fail and
3431       # either __stack_chk_guard, or TLS access to stack guard canary.
3432       if test -f $glibc_header_dir/features.h \
3433          && $EGREP '^@<:@       @:>@*#[         ]*define[       ]+__GNU_LIBRARY__[      ]+([1-9][0-9]|[6-9])' \
3434             $glibc_header_dir/features.h > /dev/null; then
3435         if $EGREP '^@<:@        @:>@*#[         ]*define[       ]+__GLIBC__[    ]+([1-9][0-9]|[3-9])' \
3436            $glibc_header_dir/features.h > /dev/null; then
3437           gcc_cv_libc_provides_ssp=yes
3438         elif $EGREP '^@<:@      @:>@*#[         ]*define[       ]+__GLIBC__[    ]+2' \
3439              $glibc_header_dir/features.h > /dev/null \
3440              && $EGREP '^@<:@   @:>@*#[         ]*define[       ]+__GLIBC_MINOR__[      ]+([1-9][0-9]|[4-9])' \
3441              $glibc_header_dir/features.h > /dev/null; then
3442           gcc_cv_libc_provides_ssp=yes
3443         elif $EGREP '^@<:@      @:>@*#[         ]*define[       ]+__UCLIBC__[   ]+1' \
3444              $glibc_header_dir/features.h > /dev/null && \
3445              test -f $glibc_header_dir/bits/uClibc_config.h && \
3446              $EGREP '^@<:@      @:>@*#[         ]*define[       ]+__UCLIBC_HAS_SSP__[   ]+1' \
3447              $glibc_header_dir/bits/uClibc_config.h > /dev/null; then
3448           gcc_cv_libc_provides_ssp=yes
3449         fi
3450       fi
3451         ;;
3452        *-*-darwin*)
3453          AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes],
3454            [echo "no __stack_chk_fail on this target"])
3455         ;;
3456   *) gcc_cv_libc_provides_ssp=no ;;
3457     esac])
3458
3459 if test x$gcc_cv_libc_provides_ssp = xyes; then
3460   AC_DEFINE(TARGET_LIBC_PROVIDES_SSP, 1,
3461             [Define if your target C library provides stack protector support])
3462 fi
3463
3464 # Check if TFmode long double should be used by default or not.
3465 # Some glibc targets used DFmode long double, but with glibc 2.4
3466 # and later they can use TFmode.
3467 case "$target" in
3468   powerpc*-*-linux* | \
3469   powerpc*-*-gnu* | \
3470   sparc*-*-linux* | \
3471   s390*-*-linux* | \
3472   alpha*-*-linux*)
3473     AC_ARG_WITH(long-double-128,
3474 [  --with-long-double-128  Use 128-bit long double by default.],
3475       gcc_cv_target_ldbl128="$with_long_double_128",
3476       [gcc_cv_target_ldbl128=no
3477       if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
3478         if test "x$with_sysroot" = x; then
3479           glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include"
3480         elif test "x$with_build_sysroot" != "x"; then
3481           glibc_header_dir="${with_build_sysroot}/usr/include"
3482         elif test "x$with_sysroot" = xyes; then
3483           glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include"
3484         else
3485           glibc_header_dir="${with_sysroot}/usr/include"
3486         fi
3487       else
3488         glibc_header_dir=/usr/include
3489       fi
3490 changequote(,)dnl
3491       grep '^[  ]*#[    ]*define[       ][      ]*__LONG_DOUBLE_MATH_OPTIONAL' \
3492         $glibc_header_dir/bits/wordsize.h > /dev/null 2>&1 \
3493       && gcc_cv_target_ldbl128=yes
3494 changequote([,])dnl
3495       ])
3496     ;;
3497 esac
3498 if test x$gcc_cv_target_ldbl128 = xyes; then
3499   AC_DEFINE(TARGET_DEFAULT_LONG_DOUBLE_128, 1,
3500             [Define if TFmode long double should be the default])
3501 fi
3502
3503 # Find out what GC implementation we want, or may, use.
3504 AC_ARG_WITH(gc,
3505 [  --with-gc={page,zone}   choose the garbage collection mechanism to use
3506                           with the compiler],
3507 [case "$withval" in
3508   page)
3509     GGC=ggc-$withval
3510     ;;
3511   zone)
3512     GGC=ggc-$withval
3513     AC_DEFINE(GGC_ZONE, 1, [Define if the zone collector is in use])
3514     ;;
3515   *)
3516     AC_MSG_ERROR([$withval is an invalid option to --with-gc])
3517     ;;
3518 esac],
3519 [GGC=ggc-page])
3520 AC_SUBST(GGC)
3521 echo "Using $GGC for garbage collection."
3522
3523 # Use the system's zlib library.
3524 zlibdir=-L../zlib
3525 zlibinc="-I\$(srcdir)/../zlib"
3526 AC_ARG_WITH(system-zlib,
3527 [  --with-system-zlib      use installed libz],
3528 zlibdir=
3529 zlibinc=
3530 )
3531 AC_SUBST(zlibdir)
3532 AC_SUBST(zlibinc)
3533
3534 dnl Very limited version of automake's enable-maintainer-mode
3535
3536 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
3537   dnl maintainer-mode is disabled by default
3538   AC_ARG_ENABLE(maintainer-mode,
3539 [  --enable-maintainer-mode
3540                           enable make rules and dependencies not useful
3541                           (and sometimes confusing) to the casual installer],
3542       maintainer_mode=$enableval,
3543       maintainer_mode=no)
3544
3545 AC_MSG_RESULT($maintainer_mode)
3546
3547 if test "$maintainer_mode" = "yes"; then
3548   MAINT=''
3549 else
3550   MAINT='#'
3551 fi
3552 AC_SUBST(MAINT)dnl
3553
3554 # --------------
3555 # Language hooks
3556 # --------------
3557
3558 # Make empty files to contain the specs and options for each language.
3559 # Then add #include lines to for a compiler that has specs and/or options.
3560
3561 subdirs=
3562 lang_opt_files=
3563 lang_specs_files=
3564 lang_tree_files=
3565 # These (without "all_") are set in each config-lang.in.
3566 # `language' must be a single word so is spelled singularly.
3567 all_languages=
3568 all_compilers=
3569 all_outputs='Makefile gccbug libada-mk'
3570 # List of language makefile fragments.
3571 all_lang_makefrags=
3572 # List of language subdirectory makefiles.  Deprecated.
3573 all_lang_makefiles=
3574 # Additional files for gengtype
3575 all_gtfiles="$target_gtfiles"
3576
3577 # These are the languages that are set in --enable-languages,
3578 # and are available in the GCC tree.
3579 all_selected_languages=
3580
3581 # Add the language fragments.
3582 # Languages are added via two mechanisms.  Some information must be
3583 # recorded in makefile variables, these are defined in config-lang.in.
3584 # We accumulate them and plug them into the main Makefile.
3585 # The other mechanism is a set of hooks for each of the main targets
3586 # like `clean', `install', etc.
3587
3588 language_hooks="Make-hooks"
3589
3590 for lang in ${srcdir}/*/config-lang.in
3591 do
3592 changequote(,)dnl
3593         test "$lang" = "${srcdir}/*/config-lang.in" && continue
3594
3595         lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^   ]*\).*$,\1,p' $lang`
3596         if test "x$lang_alias" = x
3597         then
3598               echo "$lang doesn't set \$language." 1>&2
3599               exit 1
3600         fi
3601         subdir="`echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
3602         subdirs="$subdirs $subdir"
3603
3604         # $gcc_subdir is where the gcc integration files are to be found
3605         # for a language, both for internal compiler purposes (compiler
3606         # sources implementing front-end to GCC tree converters), and for
3607         # build infrastructure purposes (Make-lang.in, etc.)
3608         #
3609         # This will be <subdir> (relative to $srcdir) if a line like 
3610         # gcc_subdir="<subdir>" or gcc_subdir=<subdir>
3611         # is found in <langdir>/config-lang.in, and will remain <langdir>
3612         # otherwise.
3613         #
3614         # Except for the language alias (fetched above), the regular
3615         # "config-lang.in" contents are always retrieved from $gcc_subdir,
3616         # so a <langdir>/config-lang.in setting gcc_subdir typically sets
3617         # only this and the language alias.
3618
3619         gcc_subdir=`sed -n -e 's,^gcc_subdir=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^gcc_subdir=\([^   ]*\).*$,\1,p' $lang`
3620         if [ "$gcc_subdir" = "" ]; then
3621            gcc_subdir="$subdir"
3622         fi
3623
3624         case ",$enable_languages," in
3625         *,$lang_alias,*)
3626             all_selected_languages="$all_selected_languages $lang_alias"
3627             if test -f $srcdir/$gcc_subdir/lang-specs.h; then
3628                 lang_specs_files="$lang_specs_files $srcdir/$gcc_subdir/lang-specs.h"
3629             fi
3630             ;;
3631         esac
3632 changequote([,])dnl
3633
3634         language=
3635         boot_language=
3636         compilers=
3637         outputs=
3638         gtfiles=
3639         subdir_requires=
3640         . ${srcdir}/$gcc_subdir/config-lang.in
3641         if test "x$language" = x
3642         then
3643                 echo "${srcdir}/$gcc_subdir/config-lang.in doesn't set \$language." 1>&2
3644                 exit 1
3645         fi
3646
3647         ok=:
3648         case ",$enable_languages," in
3649                 *,$lang_alias,*) ;;
3650                 *)
3651                         for i in $subdir_requires; do
3652                                 test -f "${srcdir}/$i/config-lang.in" && continue
3653                                 ok=false
3654                                 break
3655                         done
3656                 ;;
3657         esac
3658         $ok || continue
3659
3660         all_lang_makefrags="$all_lang_makefrags \$(srcdir)/$gcc_subdir/Make-lang.in"
3661         if test -f $srcdir/$gcc_subdir/lang.opt; then
3662             lang_opt_files="$lang_opt_files $srcdir/$gcc_subdir/lang.opt"
3663         fi
3664         if test -f $srcdir/$gcc_subdir/$subdir-tree.def; then
3665             lang_tree_files="$lang_tree_files $srcdir/$gcc_subdir/$subdir-tree.def"
3666         fi
3667         if test -f ${srcdir}/$gcc_subdir/Makefile.in
3668                 then all_lang_makefiles="$gcc_subdir/Makefile"
3669         fi
3670         all_languages="$all_languages $language"
3671         all_compilers="$all_compilers $compilers"
3672         all_outputs="$all_outputs $outputs"
3673         all_gtfiles="$all_gtfiles [[$subdir]] $gtfiles"
3674 done
3675
3676 # Pick up gtfiles for c
3677 gtfiles=
3678 . ${srcdir}/c-config-lang.in
3679 all_gtfiles="$all_gtfiles [[c]] $gtfiles"
3680
3681 check_languages=
3682 for language in $all_selected_languages
3683 do
3684         check_languages="$check_languages check-$language"
3685 done
3686
3687 # We link each language in with a set of hooks, reached indirectly via
3688 # lang.${target}.  Only do so for selected languages.
3689
3690 rm -f Make-hooks
3691 touch Make-hooks
3692 target_list="all.cross start.encap rest.encap tags \
3693         install-common install-man install-info install-pdf dvi pdf \
3694         html uninstall info man srcextra srcman srcinfo \
3695         mostlyclean clean distclean maintainer-clean"
3696
3697 for t in $target_list
3698 do
3699         x=
3700         for lang in $all_selected_languages
3701         do
3702                 x="$x $lang.$t"
3703         done
3704         echo "lang.$t: $x" >> Make-hooks
3705 done
3706
3707 # --------
3708 # UNSORTED
3709 # --------
3710
3711 # Create .gdbinit.
3712
3713 echo "dir ." > .gdbinit
3714 echo "dir ${srcdir}" >> .gdbinit
3715 if test x$gdb_needs_out_file_path = xyes
3716 then
3717         echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
3718 fi
3719 if test "x$subdirs" != x; then
3720         for s in $subdirs
3721         do
3722                 echo "dir ${srcdir}/$s" >> .gdbinit
3723         done
3724 fi
3725 echo "source ${srcdir}/gdbinit.in" >> .gdbinit
3726
3727 gcc_tooldir='$(libsubdir)/$(libsubdir_to_prefix)$(target_noncanonical)'
3728 AC_SUBST(gcc_tooldir)
3729 AC_SUBST(dollar)
3730
3731 # Find a directory in which to install a shared libgcc.
3732
3733 AC_ARG_ENABLE(version-specific-runtime-libs,
3734 [  --enable-version-specific-runtime-libs
3735                           specify that runtime libraries should be
3736                           installed in a compiler-specific directory])
3737
3738 AC_ARG_WITH(slibdir,
3739 [  --with-slibdir=DIR      shared libraries in DIR [[LIBDIR]]],
3740 slibdir="$with_slibdir",
3741 if test "${enable_version_specific_runtime_libs+set}" = set; then
3742   slibdir='$(libsubdir)'
3743 elif test "$host" != "$target"; then
3744   slibdir='$(build_tooldir)/lib'
3745 else
3746   slibdir='$(libdir)'
3747 fi)
3748 AC_SUBST(slibdir)
3749
3750 AC_ARG_WITH(datarootdir,
3751 [  --with-datarootdir=DIR  Use DIR as the data root [[PREFIX/share]]],
3752 datarootdir="\${prefix}/$with_datarootdir",
3753 datarootdir='$(prefix)/share')
3754 AC_SUBST(datarootdir)
3755
3756 AC_ARG_WITH(docdir,
3757 [  --with-docdir=DIR       Install documentation in DIR [[DATAROOTDIR]]],
3758 docdir="\${prefix}/$with_docdir",
3759 docdir='$(datarootdir)')
3760 AC_SUBST(docdir)
3761
3762 AC_ARG_WITH(htmldir,
3763 [  --with-htmldir=DIR      html documentation in in DIR [[DOCDIR]]],
3764 htmldir="\${prefix}/$with_htmldir",
3765 htmldir='$(docdir)')
3766 AC_SUBST(htmldir)
3767
3768 # Substitute configuration variables
3769 AC_SUBST(subdirs)
3770 AC_SUBST(srcdir)
3771 AC_SUBST(all_compilers)
3772 AC_SUBST(all_gtfiles)
3773 AC_SUBST(all_lang_makefrags)
3774 AC_SUBST(all_lang_makefiles)
3775 AC_SUBST(all_languages)
3776 AC_SUBST(all_selected_languages)
3777 AC_SUBST(build_exeext)
3778 AC_SUBST(build_install_headers_dir)
3779 AC_SUBST(build_xm_file_list)
3780 AC_SUBST(build_xm_include_list)
3781 AC_SUBST(build_xm_defines)
3782 AC_SUBST(build_file_translate)
3783 AC_SUBST(check_languages)
3784 AC_SUBST(cpp_install_dir)
3785 AC_SUBST(xmake_file)
3786 AC_SUBST(tmake_file)
3787 AC_SUBST(extra_gcc_objs)
3788 AC_SUBST(extra_headers_list)
3789 AC_SUBST(extra_objs)
3790 AC_SUBST(extra_parts)
3791 AC_SUBST(extra_passes)
3792 AC_SUBST(extra_programs)
3793 AC_SUBST(float_h_file)
3794 AC_SUBST(gcc_config_arguments)
3795 AC_SUBST(gcc_gxx_include_dir)
3796 AC_SUBST(host_exeext)
3797 AC_SUBST(host_xm_file_list)
3798 AC_SUBST(host_xm_include_list)
3799 AC_SUBST(host_xm_defines)
3800 AC_SUBST(out_host_hook_obj)
3801 AC_SUBST(install)
3802 AC_SUBST(lang_opt_files)
3803 AC_SUBST(lang_specs_files)
3804 AC_SUBST(lang_tree_files)
3805 AC_SUBST(local_prefix)
3806 AC_SUBST(md_file)
3807 AC_SUBST(objc_boehm_gc)
3808 AC_SUBST(out_file)
3809 AC_SUBST(out_object_file)
3810 AC_SUBST(thread_file)
3811 AC_SUBST(tm_file_list)
3812 AC_SUBST(tm_include_list)
3813 AC_SUBST(tm_defines)
3814 AC_SUBST(tm_p_file_list)
3815 AC_SUBST(tm_p_include_list)
3816 AC_SUBST(xm_file_list)
3817 AC_SUBST(xm_include_list)
3818 AC_SUBST(xm_defines)
3819 AC_SUBST(c_target_objs)
3820 AC_SUBST(cxx_target_objs)
3821 AC_SUBST(fortran_target_objs)
3822 AC_SUBST(target_cpu_default)
3823
3824 AC_SUBST_FILE(language_hooks)
3825
3826 # Echo link setup.
3827 if test x${build} = x${host} ; then
3828   if test x${host} = x${target} ; then
3829     echo "Links are now set up to build a native compiler for ${target}." 1>&2
3830   else
3831     echo "Links are now set up to build a cross-compiler" 1>&2
3832     echo " from ${host} to ${target}." 1>&2
3833   fi
3834 else
3835   if test x${host} = x${target} ; then
3836     echo "Links are now set up to build (on ${build}) a native compiler" 1>&2
3837     echo " for ${target}." 1>&2
3838   else
3839     echo "Links are now set up to build (on ${build}) a cross-compiler" 1>&2
3840     echo " from ${host} to ${target}." 1>&2
3841   fi
3842 fi
3843
3844 AC_ARG_VAR(GMPLIBS,[How to link GMP])
3845 AC_ARG_VAR(GMPINC,[How to find GMP include files])
3846
3847 # Configure the subdirectories
3848 # AC_CONFIG_SUBDIRS($subdirs)
3849
3850 # Create the Makefile
3851 # and configure language subdirectories
3852 AC_CONFIG_FILES($all_outputs)
3853
3854 AC_CONFIG_COMMANDS([default],
3855 [
3856 case ${CONFIG_HEADERS} in
3857   *auto-host.h:config.in*)
3858   echo > cstamp-h ;;
3859 esac
3860 # Make sure all the subdirs exist.
3861 for d in $subdirs doc build
3862 do
3863     test -d $d || mkdir $d
3864 done
3865 ], 
3866 [subdirs='$subdirs'])
3867 AC_OUTPUT