Makefile.in (PREPROCESSOR_DEFINES): Add @TARGET_SYSTEM_ROOT_DEFINE@.
[gcc.git] / gcc / configure.in
1 # configure.in for GCC
2 # Process this file with autoconf to generate a configuration script.
3
4 # Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003
5 # 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 2, 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 COPYING. If not, write to the Free
21 #Software Foundation, 59 Temple Place - Suite 330, Boston, MA
22 #02111-1307, USA.
23
24 # Initialization and defaults
25 AC_PREREQ(2.13)
26 AC_INIT(tree.c)
27 AC_CONFIG_HEADER(auto-host.h:config.in)
28
29 remove=rm
30 hard_link=ln
31 symbolic_link='ln -s'
32 copy=cp
33
34 # Check for bogus environment variables.
35 # Test if LIBRARY_PATH contains the notation for the current directory
36 # since this would lead to problems installing/building glibc.
37 # LIBRARY_PATH contains the current directory if one of the following
38 # is true:
39 # - one of the terminals (":" and ";") is the first or last sign
40 # - two terminals occur directly after each other
41 # - the path contains an element with a dot in it
42 AC_MSG_CHECKING(LIBRARY_PATH variable)
43 changequote(,)dnl
44 case ${LIBRARY_PATH} in
45 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
46 library_path_setting="contains current directory"
47 ;;
48 *)
49 library_path_setting="ok"
50 ;;
51 esac
52 changequote([,])dnl
53 AC_MSG_RESULT($library_path_setting)
54 if test "$library_path_setting" != "ok"; then
55 AC_MSG_ERROR([
56 *** LIBRARY_PATH shouldn't contain the current directory when
57 *** building gcc. Please change the environment variable
58 *** and run configure again.])
59 fi
60
61 # Test if GCC_EXEC_PREFIX contains the notation for the current directory
62 # since this would lead to problems installing/building glibc.
63 # GCC_EXEC_PREFIX contains the current directory if one of the following
64 # is true:
65 # - one of the terminals (":" and ";") is the first or last sign
66 # - two terminals occur directly after each other
67 # - the path contains an element with a dot in it
68 AC_MSG_CHECKING(GCC_EXEC_PREFIX variable)
69 changequote(,)dnl
70 case ${GCC_EXEC_PREFIX} in
71 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
72 gcc_exec_prefix_setting="contains current directory"
73 ;;
74 *)
75 gcc_exec_prefix_setting="ok"
76 ;;
77 esac
78 changequote([,])dnl
79 AC_MSG_RESULT($gcc_exec_prefix_setting)
80 if test "$gcc_exec_prefix_setting" != "ok"; then
81 AC_MSG_ERROR([
82 *** GCC_EXEC_PREFIX shouldn't contain the current directory when
83 *** building gcc. Please change the environment variable
84 *** and run configure again.])
85 fi
86
87 # Check for additional parameters
88
89 # With GNU ld
90 AC_ARG_WITH(gnu-ld,
91 [ --with-gnu-ld arrange to work with GNU ld.],
92 gnu_ld_flag="$with_gnu_ld",
93 gnu_ld_flag=no)
94
95 # With pre-defined ld
96 AC_ARG_WITH(ld,
97 [ --with-ld arrange to use the specified ld (full pathname)],
98 DEFAULT_LINKER="$with_ld")
99 if test x"${DEFAULT_LINKER+set}" = x"set"; then
100 if test ! -x "$DEFAULT_LINKER"; then
101 AC_MSG_WARN([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
102 elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
103 gnu_ld_flag=yes
104 fi
105 AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER",
106 [Define to enable the use of a default linker.])
107 fi
108
109 # With GNU as
110 AC_ARG_WITH(gnu-as,
111 [ --with-gnu-as arrange to work with GNU as],
112 gas_flag="$with_gnu_as",
113 gas_flag=no)
114
115 AC_ARG_WITH(as,
116 [ --with-as arrange to use the specified as (full pathname)],
117 DEFAULT_ASSEMBLER="$with_as")
118 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
119 if test ! -x "$DEFAULT_ASSEMBLER"; then
120 AC_MSG_WARN([cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER])
121 elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
122 gas_flag=yes
123 fi
124 AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER",
125 [Define to enable the use of a default assembler.])
126 fi
127
128 # With stabs
129 AC_ARG_WITH(stabs,
130 [ --with-stabs arrange to use stabs instead of host debug format],
131 stabs="$with_stabs",
132 stabs=no)
133
134 # With ELF
135 AC_ARG_WITH(elf,
136 [ --with-elf arrange to use ELF instead of host debug format],
137 elf="$with_elf",
138 elf=no)
139
140 # Specify the local prefix
141 local_prefix=
142 AC_ARG_WITH(local-prefix,
143 [ --with-local-prefix=DIR specifies directory to put local include],
144 [case "${withval}" in
145 yes) AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;;
146 no) ;;
147 *) local_prefix=$with_local_prefix ;;
148 esac])
149
150 # Default local prefix if it is empty
151 if test x$local_prefix = x; then
152 local_prefix=/usr/local
153 fi
154
155 # Don't set gcc_gxx_include_dir to gxx_include_dir since that's only
156 # passed in by the toplevel make and thus we'd get different behavior
157 # depending on where we built the sources.
158 gcc_gxx_include_dir=
159 # Specify the g++ header file directory
160 AC_ARG_WITH(gxx-include-dir,
161 [ --with-gxx-include-dir=DIR
162 specifies directory to put g++ header files],
163 [case "${withval}" in
164 yes) AC_MSG_ERROR(bad value ${withval} given for g++ include directory) ;;
165 no) ;;
166 *) gcc_gxx_include_dir=$with_gxx_include_dir ;;
167 esac])
168
169 if test x${gcc_gxx_include_dir} = x; then
170 if test x${enable_version_specific_runtime_libs} = xyes; then
171 gcc_gxx_include_dir='${libsubdir}/include/c++'
172 else
173 topsrcdir=${srcdir}/.. . ${srcdir}/../config.if
174 changequote(<<, >>)dnl
175 gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/"${libstdcxx_incdir}
176 changequote([, ])dnl
177 fi
178 fi
179
180 # Determine the host, build, and target systems
181 AC_CANONICAL_SYSTEM
182
183 # Set program_transform_name
184 AC_ARG_PROGRAM
185
186 # Find the native compiler
187 AC_PROG_CC
188 AC_PROG_CC_C_O
189 # autoconf is lame and doesn't give us any substitution variable for this.
190 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
191 NO_MINUS_C_MINUS_O=yes
192 else
193 OUTPUT_OPTION='-o $@'
194 fi
195 AC_SUBST(NO_MINUS_C_MINUS_O)
196 AC_SUBST(OUTPUT_OPTION)
197
198 # See if GNAT has been installed
199 gcc_AC_PROG_GNAT
200
201 AC_CACHE_CHECK(whether ${CC-cc} accepts -Wno-long-long,
202 ac_cv_prog_cc_no_long_long,
203 [save_CFLAGS="$CFLAGS"
204 CFLAGS="-Wno-long-long"
205 AC_TRY_COMPILE(,,ac_cv_prog_cc_no_long_long=yes,
206 ac_cv_prog_cc_no_long_long=no)
207 CFLAGS="$save_CFLAGS"])
208
209 if test x$have_gnat != xno ; then
210 AC_CACHE_CHECK(whether ${ADAC} accepts -Wno-long-long,
211 ac_cv_prog_adac_no_long_long,
212 [cat >conftest.adb <<EOF
213 procedure conftest is begin null; end conftest;
214 EOF
215 if $ADAC -Wno-long-long -c conftest.adb 1>&5 2>&5 ; then
216 ac_cv_prog_adac_no_long_long=yes
217 else
218 ac_cv_prog_adac_no_long_long=no
219 fi
220 rm -f conftest*])
221 else
222 ac_cv_prog_adac_no_long_long=yes
223 fi
224
225 strict1_warn=
226 if test $ac_cv_prog_cc_no_long_long = yes && \
227 test $ac_cv_prog_adac_no_long_long = yes ; then
228 strict1_warn="-pedantic -Wno-long-long"
229 fi
230 AC_SUBST(strict1_warn)
231
232 AC_PROG_CPP
233 AC_C_INLINE
234 gcc_AC_C_VOLATILE
235
236 gcc_AC_C_LONG_DOUBLE
237 gcc_AC_C_LONG_LONG
238 gcc_AC_C__BOOL
239
240 # sizeof(char) is 1 by definition.
241 AC_COMPILE_CHECK_SIZEOF(short)
242 AC_COMPILE_CHECK_SIZEOF(int)
243 AC_COMPILE_CHECK_SIZEOF(long)
244 if test $ac_cv_c_long_long = yes; then
245 AC_COMPILE_CHECK_SIZEOF(long long)
246 fi
247 if test $ac_cv_c___int64 = yes; then
248 AC_COMPILE_CHECK_SIZEOF(__int64)
249 fi
250
251 gcc_AC_C_CHARSET
252
253 # If the native compiler is GCC, we can enable warnings even in stage1.
254 # That's useful for people building cross-compilers, or just running a
255 # quick `make'.
256 warn_cflags=
257 if test "x$GCC" = "xyes"; then
258 warn_cflags='$(GCC_WARN_CFLAGS)'
259 fi
260 AC_SUBST(warn_cflags)
261
262 # Determine whether or not multilibs are enabled.
263 AC_ARG_ENABLE(multilib,
264 [ --enable-multilib enable library support for multiple ABIs],
265 [], [enable_multilib=yes])
266 AC_SUBST(enable_multilib)
267
268 # Enable -Werror in bootstrap stage2 and later.
269 # Change the default to "no" on release branches.
270 AC_ARG_ENABLE(werror,
271 [ --enable-werror enable -Werror in bootstrap stage2 and later], [],
272 [enable_werror=yes])
273 if test x$enable_werror = xyes ; then
274 WERROR=-Werror
275 fi
276 AC_SUBST(WERROR)
277
278 # Enable expensive internal checks
279 AC_ARG_ENABLE(checking,
280 [ --enable-checking[=LIST]
281 enable expensive run-time checks. With LIST,
282 enable only specific categories of checks.
283 Categories are: misc,tree,rtl,rtlflag,gc,gcac;
284 default is misc,tree,gc,rtlflag],
285 [ac_checking=
286 ac_tree_checking=
287 ac_rtl_checking=
288 ac_rtlflag_checking=
289 ac_gc_checking=
290 ac_gc_always_collect=
291 case "${enableval}" in
292 yes) ac_checking=1 ; ac_tree_checking=1 ; ac_gc_checking=1 ;
293 ac_rtlflag_checking=1 ;;
294 no) ;;
295 *) IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
296 set fnord $enableval; shift
297 IFS="$ac_save_IFS"
298 for check
299 do
300 case $check in
301 misc) ac_checking=1 ;;
302 tree) ac_tree_checking=1 ;;
303 rtlflag) ac_rtlflag_checking=1 ;;
304 rtl) ac_rtl_checking=1 ;;
305 gc) ac_gc_checking=1 ;;
306 gcac) ac_gc_always_collect=1 ;;
307 valgrind) ac_checking_valgrind=1 ;;
308 *) AC_MSG_ERROR(unknown check category $check) ;;
309 esac
310 done
311 ;;
312 esac
313 ],
314 # Enable some checks by default for development versions of GCC
315 [ac_checking=1; ac_tree_checking=1; ac_gc_checking=1; ac_rtlflag_checking=1;])
316 nocommon_flag=""
317 if test x$ac_checking != x ; then
318 AC_DEFINE(ENABLE_CHECKING, 1,
319 [Define if you want more run-time sanity checks. This one gets a grab
320 bag of miscellaneous but relatively cheap checks.])
321 nocommon_flag=-fno-common
322 fi
323 AC_SUBST(nocommon_flag)
324 if test x$ac_tree_checking != x ; then
325 AC_DEFINE(ENABLE_TREE_CHECKING, 1,
326 [Define if you want all operations on trees (the basic data
327 structure of the front ends) to be checked for dynamic type safety
328 at runtime. This is moderately expensive.])
329 fi
330 if test x$ac_rtl_checking != x ; then
331 AC_DEFINE(ENABLE_RTL_CHECKING, 1,
332 [Define if you want all operations on RTL (the basic data structure
333 of the optimizer and back end) to be checked for dynamic type safety
334 at runtime. This is quite expensive.])
335 fi
336 if test x$ac_rtlflag_checking != x ; then
337 AC_DEFINE(ENABLE_RTL_FLAG_CHECKING, 1,
338 [Define if you want RTL flag accesses to be checked against the RTL
339 codes that are supported for each access macro. This is relatively
340 cheap.])
341 fi
342 if test x$ac_gc_checking != x ; then
343 AC_DEFINE(ENABLE_GC_CHECKING, 1,
344 [Define if you want the garbage collector to do object poisoning and
345 other memory allocation checks. This is quite expensive.])
346 fi
347 if test x$ac_gc_always_collect != x ; then
348 AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT, 1,
349 [Define if you want the garbage collector to operate in maximally
350 paranoid mode, validating the entire heap and collecting garbage at
351 every opportunity. This is extremely expensive.])
352 fi
353 valgrind_path_defines=
354 valgrind_command=
355 if test x$ac_checking_valgrind != x ; then
356 # It is certainly possible that there's valgrind but no valgrind.h.
357 # GCC relies on making annotations so we must have both.
358 AC_CHECK_HEADER(valgrind.h, have_valgrind_h=yes, have_valgrind_h=no)
359 AM_PATH_PROG_WITH_TEST(valgrind_path, valgrind,
360 [$ac_dir/$ac_word --version | grep valgrind- >/dev/null 2>&1])
361 if test "x$valgrind_path" = "x" || test $have_valgrind_h = no; then
362 AC_MSG_ERROR([*** Can't find both valgrind and valgrind.h])
363 fi
364 valgrind_path_defines=-DVALGRIND_PATH='\"'$valgrind_path'\"'
365 valgrind_command="$valgrind_path -q"
366 AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1,
367 [Define if you want to run subprograms and generated programs
368 through valgrind (a memory checker). This is extremely expensive.])
369 fi
370 AC_SUBST(valgrind_path_defines)
371 AC_SUBST(valgrind_command)
372
373 # Enable code coverage collection
374 AC_ARG_ENABLE(coverage,
375 [ --enable-coverage[=LEVEL]
376 enable compiler\'s code coverage collection.
377 Use to measure compiler performance and locate
378 unused parts of the compiler. With LEVEL, specify
379 optimization. Values are opt, noopt,
380 default is noopt],
381 [case "${enableval}" in
382 yes|noopt)
383 coverage_flags="-fprofile-arcs -ftest-coverage -O0 -DSELF_COVERAGE=1"
384 ;;
385 opt)
386 coverage_flags="-fprofile-arcs -ftest-coverage -O2 -DSELF_COVERAGE=2"
387 ;;
388 *)
389 AC_MSG_ERROR(unknown coverage setting $enableval)
390 ;;
391 esac],
392 [coverage_flags=""])
393 AC_SUBST(coverage_flags)
394
395 AC_ARG_WITH(cpp_install_dir,
396 [ --with-cpp-install-dir=DIR
397 install the user visible C preprocessor in DIR
398 (relative to PREFIX) as well as PREFIX/bin],
399 [if test x$withval = xyes; then
400 AC_MSG_ERROR([option --with-cpp-install-dir requires an argument])
401 elif test x$withval != xno; then
402 cpp_install_dir=$withval
403 fi])
404
405 # Enable __cxa_atexit for C++.
406 AC_ARG_ENABLE(__cxa_atexit,
407 [ --enable-__cxa_atexit enable __cxa_atexit for C++],
408 [], [])
409 if test x$enable___cxa_atexit = xyes; then
410 AC_DEFINE(DEFAULT_USE_CXA_ATEXIT, 1,
411 [Define if you want to use __cxa_atexit, rather than atexit, to
412 register C++ destructors for local statics and global objects.
413 This is essential for fully standards-compliant handling of
414 destructors, but requires __cxa_atexit in libc.])
415 fi
416
417 # Enable Multibyte Characters for C/C++
418 AC_ARG_ENABLE(c-mbchar,
419 [ --enable-c-mbchar enable multibyte characters for C and C++],
420 if test x$enable_c_mbchar != xno; then
421 AC_DEFINE(MULTIBYTE_CHARS, 1,
422 [Define if you want the C and C++ compilers to support multibyte
423 character sets for source code.])
424 fi)
425
426 # Enable threads
427 # Pass with no value to take the default
428 # Pass with a value to specify a thread package
429 AC_ARG_ENABLE(threads,
430 [ --enable-threads enable thread usage for target GCC
431 --enable-threads=LIB use LIB thread package for target GCC],,
432 enable_threads='')
433
434 enable_threads_flag=$enable_threads
435 # Check if a valid thread package
436 case x${enable_threads_flag} in
437 x | xno)
438 # No threads
439 target_thread_file='single'
440 ;;
441 xyes)
442 # default
443 target_thread_file=''
444 ;;
445 xdecosf1 | xirix | xmach | xos2 | xposix | xpthreads | xsingle | \
446 xsolaris | xwin32 | xdce | xrtems| xvxworks | xaix)
447 target_thread_file=$enable_threads_flag
448 ;;
449 *)
450 echo "$enable_threads is an unknown thread package" 1>&2
451 exit 1
452 ;;
453 esac
454
455 AC_ARG_ENABLE(objc-gc,
456 [ --enable-objc-gc enable the use of Boehm's garbage collector with
457 the GNU Objective-C runtime],
458 if test x$enable_objc_gc = xno; then
459 objc_boehm_gc=''
460 else
461 objc_boehm_gc=1
462 fi,
463 objc_boehm_gc='')
464
465 AC_ARG_WITH(dwarf2,
466 [ --with-dwarf2 force the default debug format to be DWARF 2],
467 dwarf2="$with_dwarf2",
468 dwarf2=no)
469
470 AC_ARG_ENABLE(shared,
471 [ --disable-shared don't provide a shared libgcc],
472 [
473 case $enable_shared in
474 yes | no) ;;
475 *)
476 enable_shared=no
477 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
478 for pkg in $enableval; do
479 if test "X$pkg" = "Xgcc" || test "X$pkg" = "Xlibgcc"; then
480 enable_shared=yes
481 fi
482 done
483 IFS="$ac_save_ifs"
484 ;;
485 esac
486 ], [enable_shared=yes])
487 AC_SUBST(enable_shared)
488
489 AC_ARG_WITH(sysroot,
490 [ --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR.],
491 [
492 case ${with_sysroot} in
493 yes) TARGET_SYSTEM_ROOT='${gcc_tooldir}/sys-root' ;;
494 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
495 esac
496
497 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
498 CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)'
499
500 if test "x$exec_prefix" = xNONE; then
501 if test "x$prefix" = xNONE; then
502 test_prefix=/usr/local
503 else
504 test_prefix=$prefix
505 fi
506 else
507 test_prefix=$exec_prefix
508 fi
509 case ${TARGET_SYSTEM_ROOT} in
510 ${test_prefix}*)
511 t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
512 TARGET_SYSTEM_ROOT_DEFINE="$t"
513 ;;
514 esac
515 ], [
516 TARGET_SYSTEM_ROOT=
517 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=0'
518 CROSS_SYSTEM_HEADER_DIR='$(gcc_tooldir)/sys-include'
519 ])
520 AC_SUBST(TARGET_SYSTEM_ROOT)
521 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
522 AC_SUBST(CROSS_SYSTEM_HEADER_DIR)
523
524 # Stage specific cflags for build.
525 stage1_cflags=
526 case $build in
527 vax-*-*)
528 if test x$GCC = xyes
529 then
530 stage1_cflags="-Wa,-J"
531 else
532 stage1_cflags="-J"
533 fi
534 ;;
535 powerpc-*-darwin*)
536 # The spiffy cpp-precomp chokes on some legitimate constructs in GCC
537 # sources; use -no-cpp-precomp to get to GNU cpp.
538 # Apple's GCC has bugs in designated initializer handling, so disable
539 # that too.
540 stage1_cflags="-no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0"
541 ;;
542 esac
543 AC_SUBST(stage1_cflags)
544
545 AC_PROG_MAKE_SET
546
547 AC_MSG_CHECKING([whether a default assembler was specified])
548 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
549 if test x"$gas_flag" = x"no"; then
550 AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
551 else
552 AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
553 fi
554 else
555 AC_MSG_RESULT(no)
556 fi
557
558 AC_MSG_CHECKING([whether a default linker was specified])
559 if test x"${DEFAULT_LINKER+set}" = x"set"; then
560 if test x"$gnu_ld_flag" = x"no"; then
561 AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
562 else
563 AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
564 fi
565 else
566 AC_MSG_RESULT(no)
567 fi
568
569 AC_MSG_CHECKING(for GNU C library)
570 AC_CACHE_VAL(gcc_cv_glibc,
571 [AC_TRY_COMPILE(
572 [#include <features.h>],[
573 #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
574 #error Not a GNU C library system
575 #endif],
576 [gcc_cv_glibc=yes],
577 gcc_cv_glibc=no)])
578 AC_MSG_RESULT($gcc_cv_glibc)
579 if test $gcc_cv_glibc = yes; then
580 AC_DEFINE(_GNU_SOURCE, 1, [Always define this when using the GNU C Library])
581 fi
582
583 # Find some useful tools
584 AC_PROG_AWK
585 gcc_AC_PROG_LN
586 gcc_AC_PROG_LN_S
587 AC_PROG_RANLIB
588 gcc_AC_PROG_INSTALL
589
590 AC_HEADER_STDC
591 AC_HEADER_TIME
592 gcc_AC_HEADER_STDBOOL
593 gcc_AC_HEADER_STRING
594 AC_HEADER_SYS_WAIT
595 AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h \
596 fcntl.h unistd.h sys/file.h sys/time.h \
597 sys/resource.h sys/param.h sys/times.h sys/stat.h \
598 direct.h malloc.h langinfo.h ldfcn.h)
599
600 # Check for thread headers.
601 AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
602 AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
603
604 # These tests can't be done till we know if we have limits.h.
605 gcc_AC_C_CHAR_BIT
606 AC_C_BIGENDIAN_CROSS
607 gcc_AC_C_FLOAT_FORMAT
608
609 # See if we have the mktemp command.
610 AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
611
612 # Do we have a single-tree copy of texinfo?
613 if test -f $srcdir/../texinfo/Makefile.in; then
614 MAKEINFO='$(objdir)/../texinfo/makeinfo/makeinfo'
615 gcc_cv_prog_makeinfo_modern=yes
616 AC_MSG_RESULT([Using makeinfo from the unified source tree.])
617 else
618 # See if makeinfo has been installed and is modern enough
619 # that we can use it.
620 gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
621 [GNU texinfo.* \([0-9][0-9.]*\)],
622 [4.[2-9]*])
623 fi
624
625 if test $gcc_cv_prog_makeinfo_modern = no; then
626 AC_MSG_WARN([
627 *** Makeinfo is missing or too old.
628 *** Info documentation will not be built.])
629 BUILD_INFO=
630 else
631 BUILD_INFO=info AC_SUBST(BUILD_INFO)
632 fi
633
634 # Is pod2man recent enough to regenerate manpages?
635 AC_MSG_CHECKING([for recent Pod::Man])
636 if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then
637 AC_MSG_RESULT(yes)
638 GENERATED_MANPAGES=generated-manpages AC_SUBST(GENERATED_MANPAGES)
639 else
640 AC_MSG_RESULT(no)
641 GENERATED_MANPAGES=
642 fi
643
644 # How about lex?
645 dnl Don't use AC_PROG_LEX; we insist on flex.
646 dnl LEXLIB is not useful in gcc.
647 if test -f $srcdir/../flex/skel.c; then
648 FLEX='$(objdir)/../flex/flex'
649 else
650 AC_CHECK_PROG(FLEX, flex, flex, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing flex)
651 fi
652
653 # Bison?
654 # The -L switch is so bison can find its skeleton file.
655 if test -f $srcdir/../bison/bison.simple; then
656 BISON='$(objdir)/../bison/bison -L $(srcdir)/../bison/'
657 else
658 AC_CHECK_PROG(BISON, bison, bison, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing bison)
659 fi
660
661 # These libraries may be used by collect2.
662 # We may need a special search path to get them linked.
663 AC_CACHE_CHECK(for collect2 libraries, gcc_cv_collect2_libs,
664 [save_LIBS="$LIBS"
665 for libs in '' -lld -lmld \
666 '-L/usr/lib/cmplrs/cc2.11 -lmld' \
667 '-L/usr/lib/cmplrs/cc3.11 -lmld'
668 do
669 LIBS="$libs"
670 AC_TRY_LINK_FUNC(ldopen,
671 [gcc_cv_collect2_libs="$libs"; break])
672 done
673 LIBS="$save_LIBS"
674 test -z "$gcc_cv_collect2_libs" && gcc_cv_collect2_libs='none required'])
675 case $gcc_cv_collect2_libs in
676 "none required") ;;
677 *) COLLECT2_LIBS=$gcc_cv_collect2_libs ;;
678 esac
679 AC_SUBST(COLLECT2_LIBS)
680
681 # When building Ada code on Alpha, we need exc_resume which is usually in
682 # -lexc. So test for it.
683 save_LIBS="$LIBS"
684 LIBS=
685 AC_SEARCH_LIBS(exc_resume, exc)
686 GNAT_LIBEXC="$LIBS"
687 LIBS="$save_LIBS"
688 AC_SUBST(GNAT_LIBEXC)
689
690 # See if the stage1 system preprocessor understands the ANSI C
691 # preprocessor stringification operator. (Used by symcat.h.)
692 AC_C_STRINGIZE
693
694 # Use <inttypes.h> only if it exists,
695 # doesn't clash with <sys/types.h>, and declares intmax_t.
696 AC_MSG_CHECKING(for inttypes.h)
697 AC_CACHE_VAL(gcc_cv_header_inttypes_h,
698 [AC_TRY_COMPILE(
699 [#include <sys/types.h>
700 #include <inttypes.h>],
701 [intmax_t i = -1;],
702 [gcc_cv_header_inttypes_h=yes],
703 gcc_cv_header_inttypes_h=no)])
704 AC_MSG_RESULT($gcc_cv_header_inttypes_h)
705 if test $gcc_cv_header_inttypes_h = yes; then
706 AC_DEFINE(HAVE_INTTYPES_H, 1,
707 [Define if you have a working <inttypes.h> header file.])
708 fi
709
710 dnl Disabled until we have a complete test for buggy enum bitfields.
711 dnl gcc_AC_C_ENUM_BF_UNSIGNED
712
713 AC_CHECK_FUNCS(times clock dup2 kill getrlimit setrlimit atoll atoq \
714 sysconf strsignal putc_unlocked fputc_unlocked fputs_unlocked \
715 fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat \
716 scandir alphasort)
717
718 AC_CHECK_TYPE(ssize_t, int)
719
720 # Try to determine the array type of the second argument of getgroups
721 # for the target system (int or gid_t).
722 AC_TYPE_GETGROUPS
723 if test "${target}" = "${build}"; then
724 TARGET_GETGROUPS_T=$ac_cv_type_getgroups
725 else
726 case "${target}" in
727 # This condition may need some tweaking. It should include all
728 # targets where the array type of the second argument of getgroups
729 # is int and the type of gid_t is not equivalent to int.
730 *-*-sunos* | *-*-ultrix*)
731 TARGET_GETGROUPS_T=int
732 ;;
733 *)
734 TARGET_GETGROUPS_T=gid_t
735 ;;
736 esac
737 fi
738 AC_SUBST(TARGET_GETGROUPS_T)
739
740 gcc_AC_FUNC_PRINTF_PTR
741
742 case "${host}" in
743 *-*-uwin*)
744 AC_MSG_ERROR([
745 *** UWIN may not be used as a host platform because
746 *** linking with posix.dll is not allowed by the GNU GPL])
747 ;;
748 *-*-*vms*)
749 # Under VMS, vfork works very different than on Unix. The standard test
750 # won't work, and it isn't easily adaptable. It makes more sense to
751 # just force it.
752 ac_cv_func_vfork_works=yes
753 ;;
754 esac
755 AC_FUNC_VFORK
756 AC_FUNC_MMAP_ANYWHERE
757 AC_FUNC_MMAP_FILE
758
759 AM_ICONV
760
761 # We will need to find libiberty.h and ansidecl.h
762 saved_CFLAGS="$CFLAGS"
763 CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
764 gcc_AC_CHECK_DECLS(getenv atol sbrk abort atof getcwd getwd \
765 strsignal putc_unlocked fputs_unlocked fwrite_unlocked \
766 fprintf_unlocked strstr errno vasprintf \
767 malloc realloc calloc free basename getopt clock, , ,[
768 #include "ansidecl.h"
769 #include "system.h"])
770
771 gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
772 #include "ansidecl.h"
773 #include "system.h"
774 #ifdef HAVE_SYS_RESOURCE_H
775 #include <sys/resource.h>
776 #endif
777 ])
778
779 gcc_AC_CHECK_DECLS(ldgetname, , ,[
780 #include "ansidecl.h"
781 #include "system.h"
782 #ifdef HAVE_LDFCN_H
783 #include <ldfcn.h>
784 #endif
785 ])
786
787 gcc_AC_CHECK_DECLS(times, , ,[
788 #include "ansidecl.h"
789 #include "system.h"
790 #ifdef HAVE_SYS_TIMES_H
791 #include <sys/times.h>
792 #endif
793 ])
794
795 # More time-related stuff.
796 AC_CACHE_CHECK(for struct tms, ac_cv_struct_tms, [
797 AC_TRY_COMPILE([
798 #include "ansidecl.h"
799 #include "system.h"
800 #ifdef HAVE_SYS_TIMES_H
801 #include <sys/times.h>
802 #endif
803 ], [struct tms tms;], ac_cv_struct_tms=yes, ac_cv_struct_tms=no)])
804 if test $ac_cv_struct_tms = yes; then
805 AC_DEFINE(HAVE_STRUCT_TMS, 1,
806 [Define if <sys/times.h> defines struct tms.])
807 fi
808
809 # use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE.
810 # revisit after autoconf 2.50.
811 AC_CACHE_CHECK(for clock_t, gcc_cv_type_clock_t, [
812 AC_TRY_COMPILE([
813 #include "ansidecl.h"
814 #include "system.h"
815 ], [clock_t x;], gcc_cv_type_clock_t=yes, gcc_cv_type_clock_t=no)])
816 if test $gcc_cv_type_clock_t = yes; then
817 AC_DEFINE(HAVE_CLOCK_T, 1,
818 [Define if <time.h> defines clock_t.])
819 fi
820
821 AC_CACHE_CHECK(for uchar, gcc_cv_type_uchar,
822 [AC_TRY_COMPILE([
823 #include "ansidecl.h"
824 #include "system.h"
825 ],
826 [if ((uchar *)0) return 0;
827 if (sizeof(uchar)) return 0;],
828 ac_cv_type_uchar=yes, ac_cv_type_uchar=no)])
829 if test $ac_cv_type_uchar = yes; then
830 AC_DEFINE(HAVE_UCHAR, 1,
831 [Define if <sys/types.h> defines \`uchar'.])
832 fi
833
834 # Restore CFLAGS from before the gcc_AC_NEED_DECLARATIONS tests.
835 CFLAGS="$saved_CFLAGS"
836
837 gcc_AC_INITFINI_ARRAY
838
839 # mkdir takes a single argument on some systems.
840 gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
841
842 # File extensions
843 manext='.1'
844 objext='.o'
845 AC_SUBST(manext)
846 AC_SUBST(objext)
847
848 # With Setjmp/Longjmp based exception handling.
849 AC_ARG_ENABLE(sjlj-exceptions,
850 [ --enable-sjlj-exceptions
851 arrange to use setjmp/longjmp exception handling],
852 [sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
853 AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
854 [Define 0/1 to force the choice for exception handling model.])])
855
856 AC_CHECK_LIB(unwind, main, use_libunwind_default=yes, use_libunwind_default=no)
857 # Use libunwind based exception handling.
858 AC_ARG_ENABLE(libunwind-exceptions,
859 [ --enable-libunwind-exceptions force use libunwind for exceptions],
860 use_libunwind_exceptions=$enableval,
861 use_libunwind_exceptions=$use_libunwind_default)
862 if test x"$use_libunwind_exceptions" = xyes; then
863 AC_DEFINE(USE_LIBUNWIND_EXCEPTIONS, 1,
864 [Define if gcc should use -lunwind.])
865 fi
866
867 target_gtfiles=
868 build_xm_file=
869 build_xm_defines=
870 build_install_headers_dir=install-headers-tar
871 build_exeext=
872 host_xm_file=
873 host_xm_defines=
874 host_xmake_file=
875 host_truncate_target=
876 host_exeext=
877
878 # Decode the host machine, then the target machine.
879 # For the host machine, we save the xm_file variable as host_xm_file;
880 # then we decode the target machine and forget everything else
881 # that came from the host machine.
882 for machine in $build $host $target; do
883 . ${srcdir}/config.gcc
884 done
885
886 extra_objs="${host_extra_objs} ${extra_objs}"
887
888 # Default the target-machine variables that were not explicitly set.
889 if test x"$tm_file" = x
890 then tm_file=$cpu_type/$cpu_type.h; fi
891
892 if test x"$extra_headers" = x
893 then extra_headers=; fi
894
895 if test x$md_file = x
896 then md_file=$cpu_type/$cpu_type.md; fi
897
898 if test x$out_file = x
899 then out_file=$cpu_type/$cpu_type.c; fi
900
901 if test x"$tmake_file" = x
902 then tmake_file=$cpu_type/t-$cpu_type
903 fi
904
905 if test x"$dwarf2" = xyes
906 then tm_file="$tm_file tm-dwarf2.h"
907 fi
908
909 # Say what files are being used for the output code and MD file.
910 echo "Using \`$srcdir/config/$out_file' for machine-specific logic."
911 echo "Using \`$srcdir/config/$md_file' as machine description file."
912
913 # If any of the xm_file variables contain nonexistent files, warn
914 # about them and drop them.
915
916 bx=
917 for x in $build_xm_file; do
918 if test -f $srcdir/config/$x
919 then bx="$bx $x"
920 else AC_MSG_WARN($srcdir/config/$x does not exist.)
921 fi
922 done
923 build_xm_file="$bx"
924
925 hx=
926 for x in $host_xm_file; do
927 if test -f $srcdir/config/$x
928 then hx="$hx $x"
929 else AC_MSG_WARN($srcdir/config/$x does not exist.)
930 fi
931 done
932 host_xm_file="$hx"
933
934 tx=
935 for x in $xm_file; do
936 if test -f $srcdir/config/$x
937 then tx="$tx $x"
938 else AC_MSG_WARN($srcdir/config/$x does not exist.)
939 fi
940 done
941 xm_file="$tx"
942
943 count=a
944 for f in $tm_file; do
945 count=${count}x
946 done
947 if test $count = ax; then
948 echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
949 else
950 echo "Using the following target machine macro files:"
951 for f in $tm_file; do
952 echo " $srcdir/config/$f"
953 done
954 fi
955
956 if test x$need_64bit_hwint = xyes; then
957 AC_DEFINE(NEED_64BIT_HOST_WIDE_INT, 1,
958 [Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h).])
959 fi
960
961 count=a
962 for f in $host_xm_file; do
963 count=${count}x
964 done
965 if test $count = a; then
966 :
967 elif test $count = ax; then
968 echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
969 else
970 echo "Using the following host machine macro files:"
971 for f in $host_xm_file; do
972 echo " $srcdir/config/$f"
973 done
974 fi
975 echo "Using ${out_host_hook_obj} for host machine hooks."
976
977 if test "$host_xm_file" != "$build_xm_file"; then
978 count=a
979 for f in $build_xm_file; do
980 count=${count}x
981 done
982 if test $count = a; then
983 :
984 elif test $count = ax; then
985 echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
986 else
987 echo "Using the following build machine macro files:"
988 for f in $build_xm_file; do
989 echo " $srcdir/config/$f"
990 done
991 fi
992 fi
993
994 if test x$thread_file = x; then
995 if test x$target_thread_file != x; then
996 thread_file=$target_thread_file
997 else
998 thread_file='single'
999 fi
1000 fi
1001
1002 # Look for a file containing extra machine modes.
1003 if test -n "$extra_modes" && test -f $srcdir/config/$extra_modes; then
1004 extra_modes_file='$(srcdir)'/config/${extra_modes}
1005 AC_SUBST(extra_modes_file)
1006 AC_DEFINE_UNQUOTED(EXTRA_MODES_FILE, "$extra_modes",
1007 [Define to the name of a file containing a list of extra machine modes
1008 for this architecture.])
1009 AC_DEFINE(EXTRA_CC_MODES, 1,
1010 [Define if the target architecture needs extra machine modes to represent
1011 the results of comparisons.])
1012 fi
1013
1014 # auto-host.h is the file containing items generated by autoconf and is
1015 # the first file included by config.h.
1016 # If host=build, it is correct to have bconfig include auto-host.h
1017 # as well. If host!=build, we are in error and need to do more
1018 # work to find out the build config parameters.
1019 if test x$host = x$build
1020 then
1021 build_auto=auto-host.h
1022 FORBUILD=..
1023 else
1024 # We create a subdir, then run autoconf in the subdir.
1025 # To prevent recursion we set host and build for the new
1026 # invocation of configure to the build for this invocation
1027 # of configure.
1028 tempdir=build.$$
1029 rm -rf $tempdir
1030 mkdir $tempdir
1031 cd $tempdir
1032 case ${srcdir} in
1033 /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
1034 *) realsrcdir=../${srcdir};;
1035 esac
1036 saved_CFLAGS="${CFLAGS}"
1037 CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
1038 ${realsrcdir}/configure \
1039 --target=$target_alias --host=$build_alias --build=$build_alias
1040 CFLAGS="${saved_CFLAGS}"
1041
1042 # We just finished tests for the build machine, so rename
1043 # the file auto-build.h in the gcc directory.
1044 mv auto-host.h ../auto-build.h
1045 cd ..
1046 rm -rf $tempdir
1047 build_auto=auto-build.h
1048 FORBUILD=../build-$build_alias
1049 fi
1050 AC_SUBST(FORBUILD)
1051
1052 tm_file="${tm_file} defaults.h"
1053 tm_p_file="${tm_p_file} tm-preds.h"
1054 host_xm_file="auto-host.h ansidecl.h ${host_xm_file}"
1055 build_xm_file="${build_auto} ansidecl.h ${build_xm_file}"
1056 # We don't want ansidecl.h in target files, write code there in ISO/GNU C.
1057 # put this back in temporarily.
1058 xm_file="ansidecl.h ${xm_file}"
1059
1060 # Truncate the target if necessary
1061 if test x$host_truncate_target != x; then
1062 target=`echo $target | sed -e 's/\(..............\).*/\1/'`
1063 fi
1064
1065 # Get the version trigger filename from the toplevel
1066 if test "${with_gcc_version_trigger+set}" = set; then
1067 gcc_version_trigger=$with_gcc_version_trigger
1068 else
1069 gcc_version_trigger=${srcdir}/version.c
1070 fi
1071 changequote(,)dnl
1072 gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*"\([^"]*\)".*/\1/'`
1073 gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
1074
1075 # Compile in configure arguments.
1076 if test -f configargs.h ; then
1077 # Being re-configured.
1078 gcc_config_arguments=`grep configuration_arguments configargs.h | sed -e 's/.*"\([^"]*\)".*/\1/'`
1079 gcc_config_arguments="$gcc_config_arguments : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS"
1080 else
1081 gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS"
1082 fi
1083 cat > configargs.h <<EOF
1084 /* Generated automatically. */
1085 static const char configuration_arguments[] = "$gcc_config_arguments";
1086 static const char thread_model[] = "$thread_file";
1087 EOF
1088 changequote([,])dnl
1089
1090 # Internationalization
1091 PACKAGE=gcc
1092 VERSION="$gcc_version"
1093 AC_SUBST(PACKAGE)
1094 AC_SUBST(VERSION)
1095
1096 # Enable NLS support by default
1097 AC_ARG_ENABLE(nls,
1098 [ --enable-nls use Native Language Support (default)],
1099 , enable_nls=yes)
1100
1101 # if cross compiling, disable NLS support.
1102 # It's not worth the trouble, at least for now.
1103
1104 if test "${build}" != "${host}" && test "x$enable_nls" = "xyes"; then
1105 AC_MSG_WARN(Disabling NLS support for canadian cross compiler.)
1106 enable_nls=no
1107 fi
1108
1109 AM_GNU_GETTEXT
1110
1111 # Windows32 Registry support for specifying GCC installation paths.
1112 AC_ARG_ENABLE(win32-registry,
1113 [ --disable-win32-registry
1114 disable lookup of installation paths in the
1115 Registry on Windows hosts
1116 --enable-win32-registry enable registry lookup (default)
1117 --enable-win32-registry=KEY
1118 use KEY instead of GCC version as the last portion
1119 of the registry key],,)
1120 case $host_os in
1121 win32 | pe | cygwin* | mingw32* | uwin*)
1122 AC_MSG_CHECKING(whether windows registry support is requested)
1123 if test "x$enable_win32_registry" != xno; then
1124 AC_DEFINE(ENABLE_WIN32_REGISTRY, 1,
1125 [Define to 1 if installation paths should be looked up in Windows32
1126 Registry. Ignored on non windows32 hosts.])
1127 AC_MSG_RESULT(yes)
1128 AC_SEARCH_LIBS(RegOpenKeyExA, advapi32)
1129 else
1130 AC_MSG_RESULT(no)
1131 fi
1132
1133 # Check if user specified a different registry key.
1134 case "x${enable_win32_registry}" in
1135 x | xyes)
1136 # default.
1137 gcc_cv_win32_registry_key="$VERSION"
1138 ;;
1139 xno)
1140 # no registry lookup.
1141 gcc_cv_win32_registry_key=''
1142 ;;
1143 *)
1144 # user-specified key.
1145 gcc_cv_win32_registry_key="$enable_win32_registry"
1146 ;;
1147 esac
1148
1149 if test "x$enable_win32_registry" != xno; then
1150 AC_MSG_CHECKING(registry key on windows hosts)
1151 AC_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$gcc_cv_win32_registry_key",
1152 [Define to be the last portion of registry key on windows hosts.])
1153 AC_MSG_RESULT($gcc_cv_win32_registry_key)
1154 fi
1155 ;;
1156 esac
1157
1158 # Get an absolute path to the GCC top-level source directory
1159 holddir=`${PWDCMD-pwd}`
1160 cd $srcdir
1161 topdir=`${PWDCMD-pwd}`
1162 cd $holddir
1163
1164 # Conditionalize the makefile for this host machine.
1165 # Make-host contains the concatenation of all host makefile fragments
1166 # [there can be more than one]. This file is built by configure.frag.
1167 host_overrides=Make-host
1168 dep_host_xmake_file=
1169 for f in .. ${host_xmake_file}
1170 do
1171 if test -f ${srcdir}/config/$f
1172 then
1173 dep_host_xmake_file="${dep_host_xmake_file} ${srcdir}/config/$f"
1174 fi
1175 done
1176
1177 # Conditionalize the makefile for this target machine.
1178 # Make-target contains the concatenation of all host makefile fragments
1179 # [there can be more than one]. This file is built by configure.frag.
1180 target_overrides=Make-target
1181 dep_tmake_file=
1182 for f in .. ${tmake_file}
1183 do
1184 if test -f ${srcdir}/config/$f
1185 then
1186 dep_tmake_file="${dep_tmake_file} ${srcdir}/config/$f"
1187 fi
1188 done
1189
1190 # If the host doesn't support symlinks, modify CC in
1191 # FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works.
1192 # Otherwise, we can use "CC=$(CC)".
1193 rm -f symtest.tem
1194 if $symbolic_link $srcdir/gcc.c symtest.tem 2>/dev/null
1195 then
1196 cc_set_by_configure="\$(CC)"
1197 quoted_cc_set_by_configure="\$(CC)"
1198 stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
1199 quoted_stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
1200 else
1201 rm -f symtest.tem
1202 if cp -p $srcdir/gcc.c symtest.tem 2>/dev/null
1203 then
1204 symbolic_link="cp -p"
1205 else
1206 symbolic_link="cp"
1207 fi
1208 cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`"
1209 quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`"
1210 stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`"
1211 quoted_stage_prefix_set_by_configure="\\\`case '\\\$(STAGE_PREFIX)' in stage*) echo '\\\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(STAGE_PREFIX)';; esac\\\`"
1212 fi
1213 rm -f symtest.tem
1214
1215 out_object_file=`basename $out_file .c`.o
1216
1217 tm_file_list=
1218 for f in $tm_file; do
1219 case $f in
1220 ansidecl.h )
1221 tm_file_list="${tm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1222 defaults.h )
1223 tm_file_list="${tm_file_list} \$(srcdir)/$f" ;;
1224 *) tm_file_list="${tm_file_list} \$(srcdir)/config/$f" ;;
1225 esac
1226 done
1227
1228 tm_p_file_list=
1229 for f in $tm_p_file; do
1230 case $f in
1231 tm-preds.h )
1232 tm_p_file_list="${tm_p_file_list} $f" ;;
1233 *) tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f" ;;
1234 esac
1235 done
1236
1237 host_xm_file_list=
1238 for f in $host_xm_file; do
1239 case $f in
1240 ansidecl.h )
1241 host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1242 auto-host.h )
1243 host_xm_file_list="${host_xm_file_list} $f" ;;
1244 defaults.h )
1245 host_xm_file_list="${host_xm_file_list} \$(srcdir)/$f" ;;
1246 *) host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f" ;;
1247 esac
1248 done
1249
1250 build_xm_file_list=
1251 for f in $build_xm_file; do
1252 case $f in
1253 ansidecl.h )
1254 build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
1255 auto-build.h | auto-host.h )
1256 build_xm_file_list="${build_xm_file_list} $f" ;;
1257 defaults.h )
1258 host_xm_file_list="${host_xm_file_list} \$(srcdir)/$f" ;;
1259 *) build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f" ;;
1260 esac
1261 done
1262
1263 # Define macro CROSS_COMPILE in compilation if this is a cross-compiler.
1264 # Also use all.cross instead of all.internal and adjust SYSTEM_HEADER_DIR.
1265 CROSS= AC_SUBST(CROSS)
1266 ALL=all.internal AC_SUBST(ALL)
1267 SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' AC_SUBST(SYSTEM_HEADER_DIR)
1268 if test x$host != x$target
1269 then
1270 CROSS="-DCROSS_COMPILE"
1271 ALL=all.cross
1272 SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)'
1273 case "$host","$target" in
1274 i?86-*-*,x86_64-*-* \
1275 | powerpc*-*-*,powerpc64*-*-*)
1276 CROSS="$CROSS -DNATIVE_CROSS" ;;
1277 esac
1278 fi
1279
1280 # If this is a cross-compiler that does not
1281 # have its own set of headers then define
1282 # inhibit_libc
1283
1284 # If this is using newlib, then define inhibit_libc in LIBGCC2_CFLAGS.
1285 # This prevents libgcc2 from containing any code which requires libc
1286 # support.
1287 inhibit_libc=
1288 if { test x$host != x$target && test "x$with_headers" = x &&
1289 test "x$with_sysroot" = x ; } || test x$with_newlib = xyes ; then
1290 inhibit_libc=-Dinhibit_libc
1291 fi
1292 AC_SUBST(inhibit_libc)
1293
1294 # When building gcc with a cross-compiler, we need to adjust things so
1295 # that the generator programs are still built with the native compiler.
1296 # Also, we cannot run fixincludes or fix-header.
1297
1298 # These are the normal (build=host) settings:
1299 BUILD_PREFIX= AC_SUBST(BUILD_PREFIX)
1300 BUILD_PREFIX_1=ignore- AC_SUBST(BUILD_PREFIX_1)
1301 BUILD_CC='$(CC)' AC_SUBST(BUILD_CC)
1302 BUILD_CFLAGS='$(ALL_CFLAGS)' AC_SUBST(BUILD_CFLAGS)
1303
1304 STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC)
1305 STMP_FIXPROTO=stmp-fixproto AC_SUBST(STMP_FIXPROTO)
1306
1307 # And these apply if build != host.
1308 if test x$build != x$host
1309 then
1310 BUILD_PREFIX=build-
1311 BUILD_PREFIX_1=build-
1312 BUILD_CC='$(CC_FOR_BUILD)'
1313 BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD) $(XCFLAGS)'
1314
1315 STMP_FIXINC=
1316 STMP_FIXPROTO=
1317 fi
1318
1319 # Expand extra_headers to include complete path.
1320 # This substitutes for lots of t-* files.
1321 extra_headers_list=
1322 if test "x$extra_headers" = x
1323 then true
1324 else
1325 # Prepend ${srcdir}/config/${cpu_type}/ to every entry in extra_headers.
1326 for file in $extra_headers;
1327 do
1328 extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
1329 done
1330 fi
1331
1332 if test x$use_collect2 = xno; then
1333 use_collect2=
1334 fi
1335
1336 # Add a definition of USE_COLLECT2 if system wants one.
1337 if test x$use_collect2 != x
1338 then
1339 host_xm_defines="${host_xm_defines} USE_COLLECT2"
1340 xm_defines="${xm_defines} USE_COLLECT2"
1341 fi
1342
1343 # If we have gas in the build tree, make a link to it.
1344 if test -f ../gas/Makefile; then
1345 rm -f as; $symbolic_link ../gas/as-new$host_exeext as$host_exeext 2>/dev/null
1346 fi
1347
1348 # If we have nm and objdump in the build tree, make a link to them.
1349 if test -f ../binutils/Makefile; then
1350 rm -f nm; $symbolic_link ../binutils/nm-new$host_exeext nm$host_exeext 2>/dev/null
1351 rm -f objdump; $symbolic_link ../binutils/objdump$host_exeext objdump$host_exeext 2>/dev/null
1352 fi
1353
1354 # If we have ld in the build tree, make a link to it.
1355 if test -f ../ld/Makefile; then
1356 rm -f collect-ld; $symbolic_link ../ld/ld-new$host_exeext collect-ld$host_exeext 2>/dev/null
1357 fi
1358
1359 # Figure out what assembler we will be using.
1360 AC_MSG_CHECKING(what assembler to use)
1361 gcc_cv_as=
1362 gcc_cv_gas_major_version=
1363 gcc_cv_gas_minor_version=
1364 gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
1365 gcc_cv_as_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
1366 if test -x "$DEFAULT_ASSEMBLER"; then
1367 gcc_cv_as="$DEFAULT_ASSEMBLER"
1368 elif test -x "$AS"; then
1369 gcc_cv_as="$AS"
1370 elif test -x as$host_exeext; then
1371 # Build using assembler in the current directory.
1372 gcc_cv_as=./as$host_exeext
1373 elif test -f $gcc_cv_as_gas_srcdir/configure.in -a -f ../gas/Makefile; then
1374 # Single tree build which includes gas.
1375 for f in $gcc_cv_as_bfd_srcdir/configure $gcc_cv_as_gas_srcdir/configure $gcc_cv_as_gas_srcdir/configure.in $gcc_cv_as_gas_srcdir/Makefile.in
1376 do
1377 changequote(,)dnl
1378 gcc_cv_gas_version=`grep '^VERSION=[0-9]*\.[0-9]*' $f`
1379 changequote([,])dnl
1380 if test x$gcc_cv_gas_version != x; then
1381 break
1382 fi
1383 done
1384 changequote(,)dnl
1385 gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([0-9]*\)"`
1386 gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
1387 gcc_cv_gas_patch_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.[0-9]*\.\([0-9]*\)"`
1388 changequote([,])dnl
1389 fi
1390
1391 if test "x$gcc_cv_as" = x; then
1392 # Search the same directories that the installed compiler will
1393 # search. Else we may find the wrong assembler and lose. If we
1394 # do not find a suitable assembler binary, then try the user's
1395 # path.
1396 #
1397 # Also note we have to check MD_EXEC_PREFIX before checking the
1398 # user's path. Unfortunately, there is no good way to get at the
1399 # value of MD_EXEC_PREFIX here. So we do a brute force search
1400 # through all the known MD_EXEC_PREFIX values. Ugh. This needs
1401 # to be fixed as part of the make/configure rewrite too.
1402
1403 if test "x$exec_prefix" = xNONE; then
1404 if test "x$prefix" = xNONE; then
1405 test_prefix=/usr/local
1406 else
1407 test_prefix=$prefix
1408 fi
1409 else
1410 test_prefix=$exec_prefix
1411 fi
1412
1413 # If the loop below does not find an assembler, then use whatever
1414 # one we can find in the users's path.
1415 # user's path.
1416 if test "x$program_prefix" != xNONE; then
1417 gcc_cv_as=${program_prefix}as$host_exeext
1418 else
1419 gcc_cv_as=`echo as | sed ${program_transform_name}`$host_exeext
1420 fi
1421
1422 test_dirs="$test_prefix/lib/gcc-lib/$target_alias/$gcc_version \
1423 $test_prefix/lib/gcc-lib/$target_alias \
1424 /usr/lib/gcc/$target_alias/$gcc_version \
1425 /usr/lib/gcc/$target_alias \
1426 $test_prefix/$target_alias/bin/$target_alias/$gcc_version \
1427 $test_prefix/$target_alias/bin"
1428
1429 if test x$host = x$target; then
1430 test_dirs="$test_dirs \
1431 /usr/libexec \
1432 /usr/ccs/gcc \
1433 /usr/ccs/bin \
1434 /udk/usr/ccs/bin \
1435 /bsd43/usr/lib/cmplrs/cc \
1436 /usr/cross64/usr/bin \
1437 /usr/lib/cmplrs/cc \
1438 /sysv/usr/lib/cmplrs/cc \
1439 /svr4/usr/lib/cmplrs/cc \
1440 /usr/bin"
1441 fi
1442
1443 for dir in $test_dirs; do
1444 if test -x $dir/as$host_exeext; then
1445 gcc_cv_as=$dir/as$host_exeext
1446 break;
1447 fi
1448 done
1449 fi
1450 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1451 AC_MSG_RESULT("newly built gas")
1452 else
1453 AC_MSG_RESULT($gcc_cv_as)
1454 fi
1455
1456 # Figure out what linker we will be using.
1457 AC_MSG_CHECKING(what linker to use)
1458 gcc_cv_ld=
1459 gcc_cv_gld_major_version=
1460 gcc_cv_gld_minor_version=
1461 gcc_cv_ld_gld_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/ld
1462 gcc_cv_ld_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
1463 if test -x "$DEFAULT_LINKER"; then
1464 gcc_cv_ld="$DEFAULT_LINKER"
1465 elif test -x "$LD"; then
1466 gcc_cv_ld="$LD"
1467 elif test -x ld$host_exeext; then
1468 # Build using linker in the current directory.
1469 gcc_cv_ld=./ld$host_exeext
1470 elif test -f $gcc_cv_ld_gld_srcdir/configure.in -a -f ../ld/Makefile; then
1471 # Single tree build which includes ld.
1472 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
1473 do
1474 changequote(,)dnl
1475 gcc_cv_gld_version=`grep '^VERSION=[0-9]*\.[0-9]*' $f`
1476 changequote([,])dnl
1477 if test x$gcc_cv_gld_version != x; then
1478 break
1479 fi
1480 done
1481 changequote(,)dnl
1482 gcc_cv_gld_major_version=`expr "$gcc_cv_gld_version" : "VERSION=\([0-9]*\)"`
1483 gcc_cv_gld_minor_version=`expr "$gcc_cv_gld_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
1484 changequote([,])dnl
1485 fi
1486
1487 if test "x$gcc_cv_ld" = x; then
1488 # Search the same directories that the installed compiler will
1489 # search. Else we may find the wrong linker and lose. If we
1490 # do not find a suitable linker binary, then try the user's
1491 # path.
1492 #
1493 # Also note we have to check MD_EXEC_PREFIX before checking the
1494 # user's path. Unfortunately, there is no good way to get at the
1495 # value of MD_EXEC_PREFIX here. So we do a brute force search
1496 # through all the known MD_EXEC_PREFIX values. Ugh. This needs
1497 # to be fixed as part of the make/configure rewrite too.
1498
1499 if test "x$exec_prefix" = xNONE; then
1500 if test "x$prefix" = xNONE; then
1501 test_prefix=/usr/local
1502 else
1503 test_prefix=$prefix
1504 fi
1505 else
1506 test_prefix=$exec_prefix
1507 fi
1508
1509 # If the loop below does not find an linker, then use whatever
1510 # one we can find in the users's path.
1511 # user's path.
1512 if test "x$program_prefix" != xNONE; then
1513 gcc_cv_ld=${program_prefix}ld$host_exeext
1514 else
1515 gcc_cv_ld=`echo ld | sed ${program_transform_name}`$host_exeext
1516 fi
1517
1518 test_dirs="$test_prefix/lib/gcc-lib/$target_alias/$gcc_version \
1519 $test_prefix/lib/gcc-lib/$target_alias \
1520 /usr/lib/gcc/$target_alias/$gcc_version \
1521 /usr/lib/gcc/$target_alias \
1522 $test_prefix/$target_alias/bin/$target_alias/$gcc_version \
1523 $test_prefix/$target_alias/bin"
1524
1525 if test x$host = x$target; then
1526 test_dirs="$test_dirs \
1527 /usr/libexec \
1528 /usr/ccs/gcc \
1529 /usr/ccs/bin \
1530 /udk/usr/ccs/bin \
1531 /bsd43/usr/lib/cmplrs/cc \
1532 /usr/cross64/usr/bin \
1533 /usr/lib/cmplrs/cc \
1534 /sysv/usr/lib/cmplrs/cc \
1535 /svr4/usr/lib/cmplrs/cc \
1536 /usr/bin"
1537 fi
1538
1539 for dir in $test_dirs; do
1540 if test -x $dir/ld$host_exeext; then
1541 gcc_cv_ld=$dir/ld$host_exeext
1542 break;
1543 fi
1544 done
1545 fi
1546 if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
1547 AC_MSG_RESULT("newly built ld")
1548 else
1549 AC_MSG_RESULT($gcc_cv_ld)
1550 fi
1551
1552 # Figure out what nm we will be using.
1553 AC_MSG_CHECKING(what nm to use)
1554 if test -x nm$host_exeext; then
1555 gcc_cv_nm=./nm$host_exeext
1556 elif test "x$program_prefix" != xNONE; then
1557 gcc_cv_nm=${program_prefix}nm$host_exeext
1558 else
1559 gcc_cv_nm=`echo nm | sed ${program_transform_name}`$host_exeext
1560 fi
1561 AC_MSG_RESULT($gcc_cv_nm)
1562
1563 # Figure out what objdump we will be using.
1564 AC_MSG_CHECKING(what objdump to use)
1565 if test -x objdump$host_exeext; then
1566 gcc_cv_objdump=./objdump$host_exeext
1567 elif test "x$program_prefix" != xNONE; then
1568 gcc_cv_objdump=${program_prefix}objdump$host_exeext
1569 else
1570 gcc_cv_objdump=`echo objdump | sed ${program_transform_name}`$host_exeext
1571 fi
1572 AC_MSG_RESULT($gcc_cv_objdump)
1573
1574 # Figure out what assembler alignment features are present.
1575 AC_MSG_CHECKING(assembler alignment features)
1576 gcc_cv_as_alignment_features=none
1577 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1578 # Gas version 2.6 and later support for .balign and .p2align.
1579 # bytes to skip when using .p2align.
1580 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 6 -o "$gcc_cv_gas_major_version" -gt 2; then
1581 gcc_cv_as_alignment_features=".balign and .p2align"
1582 AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
1583 fi
1584 # Gas version 2.8 and later support specifying the maximum
1585 # bytes to skip when using .p2align.
1586 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 8 -o "$gcc_cv_gas_major_version" -gt 2; then
1587 gcc_cv_as_alignment_features=".p2align including maximum skip"
1588 AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
1589 fi
1590 elif test x$gcc_cv_as != x; then
1591 # Check if we have .balign and .p2align
1592 echo ".balign 4" > conftest.s
1593 echo ".p2align 2" >> conftest.s
1594 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1595 gcc_cv_as_alignment_features=".balign and .p2align"
1596 AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
1597 fi
1598 rm -f conftest.s conftest.o
1599 # Check if specifying the maximum bytes to skip when
1600 # using .p2align is supported.
1601 echo ".p2align 4,,7" > conftest.s
1602 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1603 gcc_cv_as_alignment_features=".p2align including maximum skip"
1604 AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
1605 fi
1606 rm -f conftest.s conftest.o
1607 fi
1608 AC_MSG_RESULT($gcc_cv_as_alignment_features)
1609
1610 AC_MSG_CHECKING(assembler subsection support)
1611 gcc_cv_as_subsections=no
1612 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1613 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1614 gcc_cv_as_subsections="working .subsection -1"
1615 fi
1616 elif test x$gcc_cv_as != x; then
1617 # Check if we have .subsection
1618 echo ".subsection 1" > conftest.s
1619 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1620 gcc_cv_as_subsections=".subsection"
1621 if test x$gcc_cv_nm != x; then
1622 cat > conftest.s <<EOF
1623 conftest_label1: .word 0
1624 .subsection -1
1625 conftest_label2: .word 0
1626 .previous
1627 EOF
1628 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1629 $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
1630 $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
1631 if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1; then
1632 :
1633 else
1634 gcc_cv_as_subsections="working .subsection -1"
1635 fi
1636 fi
1637 fi
1638 fi
1639 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1640 fi
1641 if test x"$gcc_cv_as_subsections" = x"working .subsection -1"; then
1642 AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING, 1,
1643 [Define if your assembler supports .subsection and .subsection -1 starts
1644 emitting at the beginning of your section.])
1645 fi
1646 AC_MSG_RESULT($gcc_cv_as_subsections)
1647
1648 AC_MSG_CHECKING(assembler weak support)
1649 gcc_cv_as_weak=no
1650 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1651 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 2 -o "$gcc_cv_gas_major_version" -gt 2; then
1652 gcc_cv_as_weak="yes"
1653 fi
1654 elif test x$gcc_cv_as != x; then
1655 # Check if we have .weak
1656 echo " .weak foobar" > conftest.s
1657 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1658 gcc_cv_as_weak="yes"
1659 fi
1660 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1661 fi
1662 if test x"$gcc_cv_as_weak" = xyes; then
1663 AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])
1664 fi
1665 AC_MSG_RESULT($gcc_cv_as_weak)
1666
1667 AC_MSG_CHECKING(assembler hidden support)
1668 gcc_cv_as_hidden=no
1669 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1670 if test "$gcc_cv_gas_major_version" -eq 2 \
1671 -a "$gcc_cv_gas_minor_version" -eq 12 \
1672 -a "$gcc_cv_gas_patch_version" -ge 1 \
1673 -o "$gcc_cv_gas_major_version" -eq 2 \
1674 -a "$gcc_cv_gas_minor_version" -gt 12 \
1675 -o "$gcc_cv_gas_major_version" -gt 2 \
1676 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1677 gcc_cv_as_hidden="yes"
1678 fi
1679 elif test x$gcc_cv_as != x; then
1680 # Check if we have .hidden
1681 echo " .hidden foobar" > conftest.s
1682 echo "foobar:" >> conftest.s
1683 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1684 gcc_cv_as_hidden="yes"
1685 fi
1686 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1687
1688 # GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN.
1689 # This is irritatingly difficult to feature test for. Look for
1690 # the date string after the version number.
1691 ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1`
1692 if echo "$ld_ver" | grep GNU > /dev/null; then
1693 changequote(,)dnl
1694 ld_vers=`echo $ld_ver | sed -n 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\([ ].*\|\)$,\1,p'`
1695 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'`
1696 if test 0"$ld_date" -lt 20020404; then
1697 if test -n "$ld_date"; then
1698 # If there was date string, but was earlier than 2002-04-04, fail
1699 gcc_cv_as_hidden="no"
1700 elif test -z "$ld_vers"; then
1701 # If there was no date string nor ld version number, something is wrong
1702 gcc_cv_as_hidden="no"
1703 else
1704 ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
1705 ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
1706 ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
1707 test -z "$ld_vers_patch" && ld_vers_patch=0
1708 if test "$ld_vers_major" -lt 2; then
1709 gcc_cv_as_hidden="no"
1710 elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then
1711 gcc_cv_as_hidden="no"
1712 elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 \
1713 -a "$ld_vers_patch" -eq 0; then
1714 gcc_cv_as_hidden="no"
1715 fi
1716 fi
1717 fi
1718 changequote([,])dnl
1719 fi
1720 fi
1721 if test x"$gcc_cv_as_hidden" = xyes; then
1722 AC_DEFINE(HAVE_GAS_HIDDEN, 1,
1723 [Define if your assembler supports .hidden.])
1724 fi
1725 AC_MSG_RESULT($gcc_cv_as_hidden)
1726 libgcc_visibility=$gcc_cv_as_hidden
1727 case "$target" in
1728 mips-sgi-irix6*)
1729 if test x"$gnu_ld_flag" = x"no"; then
1730 # Even if using gas with .hidden support, the resulting object files
1731 # cannot be linked with the IRIX 6 O32 linker. With the N32 and
1732 # N64 linkers, the problem is that the linker refuses to accept
1733 # -call_shared (passed by default to the linker) and -r (used to
1734 # link the object file generated without .hidden directives with
1735 # one that hides symbols), so we also lose.
1736 libgcc_visibility=no
1737 fi
1738 ;;
1739 esac
1740 AC_SUBST(libgcc_visibility)
1741
1742 AC_MSG_CHECKING(assembler leb128 support)
1743 gcc_cv_as_leb128=no
1744 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1745 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 11 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1746 gcc_cv_as_leb128="yes"
1747 fi
1748 elif test x$gcc_cv_as != x; then
1749 # Check if we have .[us]leb128, and support symbol arithmetic with it.
1750 cat > conftest.s <<EOF
1751 .data
1752 .uleb128 L2 - L1
1753 L1:
1754 .uleb128 1280
1755 .sleb128 -1010
1756 L2:
1757 EOF
1758 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
1759 gcc_cv_as_leb128="yes"
1760
1761 # GAS versions before 2.11 do not support uleb128,
1762 # despite appearing to.
1763 # ??? There exists an elf-specific test that will crash
1764 # the assembler. Perhaps it's better to figure out whether
1765 # arbitrary sections are supported and try the test.
1766 as_ver=`$gcc_cv_as --version 2>/dev/null | head -1`
1767 if echo "$as_ver" | grep GNU > /dev/null; then
1768 changequote(,)dnl
1769 as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'`
1770 as_major=`echo $as_ver | sed 's/\..*//'`
1771 as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'`
1772 changequote([,])dnl
1773 if test $as_major -eq 2 -a $as_minor -lt 11; then
1774 gcc_cv_as_leb128="no"
1775 fi
1776 fi
1777 fi
1778 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
1779 fi
1780 if test x"$gcc_cv_as_leb128" = xyes; then
1781 AC_DEFINE(HAVE_AS_LEB128, 1,
1782 [Define if your assembler supports .uleb128.])
1783 fi
1784 AC_MSG_RESULT($gcc_cv_as_leb128)
1785
1786 AC_MSG_CHECKING(assembler eh_frame optimization)
1787 gcc_cv_as_eh_frame=no
1788 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1789 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1790 gcc_cv_as_eh_frame="yes"
1791 fi
1792 elif test x$gcc_cv_as != x; then
1793 # Check if this is GAS.
1794 as_ver=`$gcc_cv_as --version < /dev/null 2> /dev/null | head -1`
1795 rm -f a.out 2> /dev/null
1796 if echo "$as_ver" | grep GNU > /dev/null; then
1797 # Versions up to and including 2.11.0 may mis-optimize
1798 # .eh_frame data. Try something.
1799 cat > conftest.s <<EOF
1800 .text
1801 .LFB1:
1802 .4byte 0
1803 .L1:
1804 .4byte 0
1805 .LFE1:
1806 .section .eh_frame,"aw",@progbits
1807 __FRAME_BEGIN__:
1808 .4byte .LECIE1-.LSCIE1
1809 .LSCIE1:
1810 .4byte 0x0
1811 .byte 0x1
1812 .ascii "z\0"
1813 .byte 0x1
1814 .byte 0x78
1815 .byte 0x1a
1816 .byte 0x0
1817 .byte 0x4
1818 .4byte 1
1819 .p2align 1
1820 .LECIE1:
1821 .LSFDE1:
1822 .4byte .LEFDE1-.LASFDE1
1823 .LASFDE1:
1824 .4byte .LASFDE1-__FRAME_BEGIN__
1825 .4byte .LFB1
1826 .4byte .LFE1-.LFB1
1827 .byte 0x4
1828 .4byte .LFE1-.LFB1
1829 .byte 0x4
1830 .4byte .L1-.LFB1
1831 .LEFDE1:
1832 EOF
1833 cat > conftest.lit <<EOF
1834 0000 10000000 00000000 017a0001 781a0004 .........z..x...
1835 0010 01000000 12000000 18000000 00000000 ................
1836 0020 08000000 04080000 0044 .........D
1837 EOF
1838 cat > conftest.big <<EOF
1839 0000 00000010 00000000 017a0001 781a0004 .........z..x...
1840 0010 00000001 00000012 00000018 00000000 ................
1841 0020 00000008 04000000 0844 .........D
1842 EOF
1843 # If the assembler didn't choke, and we can objdump,
1844 # and we got the correct data, then succeed.
1845 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
1846 && $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
1847 | tail -3 > conftest.got \
1848 && { cmp conftest.lit conftest.got > /dev/null 2>&1 \
1849 || cmp conftest.big conftest.got > /dev/null 2>&1; }
1850 then
1851 gcc_cv_as_eh_frame="yes"
1852 else
1853 gcc_cv_as_eh_frame="bad"
1854 if $gcc_cv_as -o conftest.o --traditional-format /dev/null; then
1855 AC_DEFINE(USE_AS_TRADITIONAL_FORMAT, 1,
1856 [Define if your assembler mis-optimizes .eh_frame data.])
1857 fi
1858 fi
1859 fi
1860 rm -f conftest.*
1861 fi
1862 AC_MSG_RESULT($gcc_cv_as_eh_frame)
1863
1864 AC_MSG_CHECKING(assembler section merging support)
1865 gcc_cv_as_shf_merge=no
1866 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
1867 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
1868 gcc_cv_as_shf_merge=yes
1869 fi
1870 elif test x$gcc_cv_as != x; then
1871 # Check if we support SHF_MERGE sections
1872 echo '.section .rodata.str, "aMS", @progbits, 1' > conftest.s
1873 if $gcc_cv_as --fatal-warnings -o conftest.o conftest.s > /dev/null 2>&1; then
1874 gcc_cv_as_shf_merge=yes
1875 fi
1876 rm -f conftest.s conftest.o
1877 fi
1878 if test x"$gcc_cv_as_shf_merge" = xyes; then
1879 AC_DEFINE(HAVE_GAS_SHF_MERGE, 1,
1880 [Define if your assembler supports marking sections with SHF_MERGE flag.])
1881 fi
1882 AC_MSG_RESULT($gcc_cv_as_shf_merge)
1883
1884 AC_MSG_CHECKING(assembler thread-local storage support)
1885 gcc_cv_as_tls=no
1886 conftest_s=
1887 tls_first_major=
1888 tls_first_minor=
1889 case "$target" in
1890 changequote(,)dnl
1891 alpha*-*-*)
1892 conftest_s='
1893 .section ".tdata","awT",@progbits
1894 foo: .long 25
1895 .text
1896 ldq $27,__tls_get_addr($29) !literal!1
1897 lda $16,foo($29) !tlsgd!1
1898 jsr $26,($27),__tls_get_addr !lituse_tlsgd!1
1899 ldq $27,__tls_get_addr($29) !literal!2
1900 lda $16,foo($29) !tlsldm!2
1901 jsr $26,($27),__tls_get_addr !lituse_tlsldm!2
1902 ldq $1,foo($29) !gotdtprel
1903 ldah $2,foo($29) !dtprelhi
1904 lda $3,foo($2) !dtprello
1905 lda $4,foo($29) !dtprel
1906 ldq $1,foo($29) !gottprel
1907 ldah $2,foo($29) !tprelhi
1908 lda $3,foo($2) !tprello
1909 lda $4,foo($29) !tprel'
1910 tls_first_major=2
1911 tls_first_minor=13
1912 ;;
1913 i[34567]86-*-*)
1914 changequote([,])dnl
1915 conftest_s='
1916 .section ".tdata","awT",@progbits
1917 foo: .long 25
1918 .text
1919 movl %gs:0, %eax
1920 leal foo@TLSGD(,%ebx,1), %eax
1921 leal foo@TLSLDM(%ebx), %eax
1922 leal foo@DTPOFF(%eax), %edx
1923 movl foo@GOTTPOFF(%ebx), %eax
1924 subl foo@GOTTPOFF(%ebx), %eax
1925 addl foo@GOTNTPOFF(%ebx), %eax
1926 movl foo@INDNTPOFF, %eax
1927 movl $foo@TPOFF, %eax
1928 subl $foo@TPOFF, %eax
1929 leal foo@NTPOFF(%ecx), %eax'
1930 tls_first_major=2
1931 tls_first_minor=14
1932 ;;
1933 x86_64-*-*)
1934 conftest_s='
1935 .section ".tdata","awT",@progbits
1936 foo: .long 25
1937 .text
1938 movq %fs:0, %rax
1939 leaq foo@TLSGD(%rip), %rdi
1940 leaq foo@TLSLD(%rip), %rdi
1941 leaq foo@DTPOFF(%rax), %rdx
1942 movq foo@GOTTPOFF(%rip), %rax
1943 movq $foo@TPOFF, %rax'
1944 tls_first_major=2
1945 tls_first_minor=14
1946 ;;
1947 ia64-*-*)
1948 conftest_s='
1949 .section ".tdata","awT",@progbits
1950 foo: data8 25
1951 .text
1952 addl r16 = @ltoff(@dtpmod(foo#)), gp
1953 addl r17 = @ltoff(@dtprel(foo#)), gp
1954 addl r18 = @ltoff(@tprel(foo#)), gp
1955 addl r19 = @dtprel(foo#), gp
1956 adds r21 = @dtprel(foo#), r13
1957 movl r23 = @dtprel(foo#)
1958 addl r20 = @tprel(foo#), gp
1959 adds r22 = @tprel(foo#), r13
1960 movl r24 = @tprel(foo#)'
1961 tls_first_major=2
1962 tls_first_minor=13
1963 ;;
1964 s390-*-*)
1965 conftest_s='
1966 .section ".tdata","awT",@progbits
1967 foo: .long 25
1968 .text
1969 .long foo@TLSGD
1970 .long foo@TLSLDM
1971 .long foo@DTPOFF
1972 .long foo@NTPOFF
1973 .long foo@GOTNTPOFF
1974 .long foo@INDNTPOFF
1975 l %r1,foo@GOTNTPOFF(%r12)
1976 l %r1,0(%r1):tls_load:foo
1977 bas %r14,0(%r1,%r13):tls_gdcall:foo
1978 bas %r14,0(%r1,%r13):tls_ldcall:foo'
1979 tls_first_major=2
1980 tls_first_minor=14
1981 ;;
1982 s390x-*-*)
1983 conftest_s='
1984 .section ".tdata","awT",@progbits
1985 foo: .long 25
1986 .text
1987 .quad foo@TLSGD
1988 .quad foo@TLSLDM
1989 .quad foo@DTPOFF
1990 .quad foo@NTPOFF
1991 .quad foo@GOTNTPOFF
1992 lg %r1,foo@GOTNTPOFF(%r12)
1993 larl %r1,foo@INDNTPOFF
1994 brasl %r14,__tls_get_offset@PLT:tls_gdcall:foo
1995 brasl %r14,__tls_get_offset@PLT:tls_ldcall:foo'
1996 tls_first_major=2
1997 tls_first_minor=14
1998 ;;
1999 esac
2000 if test -z "$tls_first_major"; then
2001 :
2002 elif test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x
2003 then
2004 if test "$gcc_cv_gas_major_version" -eq "$tls_first_major" \
2005 -a "$gcc_cv_gas_minor_version" -ge "$tls_first_minor" \
2006 -o "$gcc_cv_gas_major_version" -gt "$tls_first_major"; then
2007 gcc_cv_as_tls=yes
2008 fi
2009 elif test x$gcc_cv_as != x; then
2010 echo "$conftest_s" > conftest.s
2011 if $gcc_cv_as --fatal-warnings -o conftest.o conftest.s > /dev/null 2>&1
2012 then
2013 gcc_cv_as_tls=yes
2014 fi
2015 rm -f conftest.s conftest.o
2016 fi
2017 if test "$gcc_cv_as_tls" = yes; then
2018 AC_DEFINE(HAVE_AS_TLS, 1,
2019 [Define if your assembler supports thread-local storage.])
2020 fi
2021 AC_MSG_RESULT($gcc_cv_as_tls)
2022
2023 case "$target" in
2024 # All TARGET_ABI_OSF targets.
2025 alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
2026 AC_CACHE_CHECK([assembler supports explicit relocations],
2027 gcc_cv_as_explicit_relocs, [
2028 gcc_cv_as_explicit_relocs=unknown
2029 if test x$gcc_cv_gas_major_version != x \
2030 -a x$gcc_cv_gas_minor_version != x
2031 then
2032 if test "$gcc_cv_gas_major_version" -eq 2 \
2033 -a "$gcc_cv_gas_minor_version" -ge 12 \
2034 -o "$gcc_cv_gas_major_version" -gt 2; then
2035 gcc_cv_as_explicit_relocs=yes
2036 fi
2037 elif test x$gcc_cv_as != x; then
2038 cat > conftest.s << 'EOF'
2039 .set nomacro
2040 .text
2041 extbl $3, $2, $3 !lituse_bytoff!1
2042 ldq $2, a($29) !literal!1
2043 ldq $4, b($29) !literal!2
2044 ldq_u $3, 0($2) !lituse_base!1
2045 ldq $27, f($29) !literal!5
2046 jsr $26, ($27), f !lituse_jsr!5
2047 ldah $29, 0($26) !gpdisp!3
2048 lda $0, c($29) !gprel
2049 ldah $1, d($29) !gprelhigh
2050 lda $1, d($1) !gprellow
2051 lda $29, 0($29) !gpdisp!3
2052 EOF
2053 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2054 gcc_cv_as_explicit_relocs=yes
2055 else
2056 gcc_cv_as_explicit_relocs=no
2057 fi
2058 rm -f conftest.s conftest.o
2059 fi
2060 ])
2061 if test "x$gcc_cv_as_explicit_relocs" = xyes; then
2062 AC_DEFINE(HAVE_AS_EXPLICIT_RELOCS, 1,
2063 [Define if your assembler supports explicit relocations.])
2064 fi
2065 ;;
2066 sparc*-*-*)
2067 AC_CACHE_CHECK([assembler .register pseudo-op support],
2068 gcc_cv_as_register_pseudo_op, [
2069 gcc_cv_as_register_pseudo_op=unknown
2070 if test x$gcc_cv_as != x; then
2071 # Check if we have .register
2072 echo ".register %g2, #scratch" > conftest.s
2073 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2074 gcc_cv_as_register_pseudo_op=yes
2075 else
2076 gcc_cv_as_register_pseudo_op=no
2077 fi
2078 rm -f conftest.s conftest.o
2079 fi
2080 ])
2081 if test "x$gcc_cv_as_register_pseudo_op" = xyes; then
2082 AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
2083 [Define if your assembler supports .register.])
2084 fi
2085
2086 AC_CACHE_CHECK([assembler supports -relax],
2087 gcc_cv_as_relax_opt, [
2088 gcc_cv_as_relax_opt=unknown
2089 if test x$gcc_cv_as != x; then
2090 # Check if gas supports -relax
2091 echo ".text" > conftest.s
2092 if $gcc_cv_as -relax -o conftest.o conftest.s > /dev/null 2>&1; then
2093 gcc_cv_as_relax_opt=yes
2094 else
2095 gcc_cv_as_relax_opt=no
2096 fi
2097 rm -f conftest.s conftest.o
2098 fi
2099 ])
2100 if test "x$gcc_cv_as_relax_opt" = xyes; then
2101 AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
2102 [Define if your assembler supports -relax option.])
2103 fi
2104
2105 AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs],
2106 gcc_cv_as_sparc_ua_pcrel, [
2107 gcc_cv_as_sparc_ua_pcrel=unknown
2108 if test x$gcc_cv_as != x -a x$gcc_cv_ld != x; then
2109 gcc_cv_as_sparc_ua_pcrel=no
2110 echo ".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo)" > conftest.s
2111 if $gcc_cv_as -K PIC -o conftest.o conftest.s > /dev/null 2>&1 \
2112 && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
2113 gcc_cv_as_sparc_ua_pcrel=yes
2114 fi
2115 rm -f conftest.s conftest.o conftest
2116 fi
2117 ])
2118 if test "x$gcc_cv_as_sparc_ua_pcrel" = xyes; then
2119 AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
2120 [Define if your assembler and linker support unaligned PC relative relocs.])
2121 fi
2122
2123 AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs against hidden symbols],
2124 gcc_cv_as_sparc_ua_pcrel_hidden, [
2125 if test "x$gcc_cv_as_sparc_ua_pcrel" = xyes; then
2126 gcc_cv_as_sparc_ua_pcrel_hidden=unknown
2127 if test x$gcc_cv_objdump != x; then
2128 gcc_cv_as_sparc_ua_pcrel_hidden=no
2129 echo ".data; .align 4; .byte 0x31; .uaword %r_disp32(foo)" > conftest.s
2130 echo ".byte 0x32, 0x33, 0x34; .global foo; .hidden foo" >> conftest.s
2131 echo "foo: .skip 4" >> conftest.s
2132 if $gcc_cv_as -K PIC -o conftest.o conftest.s > /dev/null 2>&1 \
2133 && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
2134 && $gcc_cv_objdump -s -j .data conftest 2> /dev/null \
2135 | grep ' 31000000 07323334' > /dev/null 2>&1; then
2136 if $gcc_cv_objdump -R conftest 2> /dev/null \
2137 | grep 'DISP32' > /dev/null 2>&1; then
2138 :
2139 else
2140 gcc_cv_as_sparc_ua_pcrel_hidden=yes
2141 fi
2142 fi
2143 fi
2144 rm -f conftest.s conftest.o conftest
2145 else
2146 gcc_cv_as_sparc_ua_pcrel_hidden="$gcc_cv_as_sparc_ua_pcrel"
2147 fi
2148 ])
2149 if test "x$gcc_cv_as_sparc_ua_pcrel_hidden" = xyes; then
2150 AC_DEFINE(HAVE_AS_SPARC_UA_PCREL_HIDDEN, 1,
2151 [Define if your assembler and linker support unaligned PC relative relocs against hidden symbols.])
2152 fi
2153
2154 AC_CACHE_CHECK([for assembler offsetable %lo() support],
2155 gcc_cv_as_offsetable_lo10, [
2156 gcc_cv_as_offsetable_lo10=unknown
2157 if test "x$gcc_cv_as" != x; then
2158 # Check if assembler has offsetable %lo()
2159 echo "or %g1, %lo(ab) + 12, %g1" > conftest.s
2160 echo "or %g1, %lo(ab + 12), %g1" > conftest1.s
2161 if $gcc_cv_as -xarch=v9 -o conftest.o conftest.s \
2162 > /dev/null 2>&1 &&
2163 $gcc_cv_as -xarch=v9 -o conftest1.o conftest1.s \
2164 > /dev/null 2>&1; then
2165 if cmp conftest.o conftest1.o > /dev/null 2>&1; then
2166 gcc_cv_as_offsetable_lo10=no
2167 else
2168 gcc_cv_as_offsetable_lo10=yes
2169 fi
2170 else
2171 gcc_cv_as_offsetable_lo10=no
2172 fi
2173 rm -f conftest.s conftest.o conftest1.s conftest1.o
2174 fi
2175 ])
2176 if test "x$gcc_cv_as_offsetable_lo10" = xyes; then
2177 AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
2178 [Define if your assembler supports offsetable %lo().])
2179 fi
2180
2181 ;;
2182
2183 changequote(,)dnl
2184 i[34567]86-*-* | x86_64-*-*)
2185 changequote([,])dnl
2186 AC_MSG_CHECKING(assembler instructions)
2187 gcc_cv_as_instructions=
2188 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
2189 if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then
2190 gcc_cv_as_instructions="filds fists"
2191 fi
2192 elif test x$gcc_cv_as != x; then
2193 set "filds fists" "filds mem; fists mem"
2194 while test $# -gt 0
2195 do
2196 echo "$2" > conftest.s
2197 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2198 gcc_cv_as_instructions=${gcc_cv_as_instructions}$1" "
2199 fi
2200 shift 2
2201 done
2202 rm -f conftest.s conftest.o
2203 fi
2204 if test x"$gcc_cv_as_instructions" != x; then
2205 AC_DEFINE_UNQUOTED(HAVE_GAS_`echo "$gcc_cv_as_instructions" | sed -e 's/ $//' | tr '[a-z ]' '[A-Z_]'`)
2206 fi
2207 AC_MSG_RESULT($gcc_cv_as_instructions)
2208
2209 AC_MSG_CHECKING(assembler GOTOFF in data directives)
2210 gcc_cv_as_gotoff_in_data=no
2211 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x
2212 then
2213 if test "$gcc_cv_gas_major_version" -eq 2 \
2214 -a "$gcc_cv_gas_minor_version" -ge 11 \
2215 -o "$gcc_cv_gas_major_version" -gt 2; then
2216 gcc_cv_as_gotoff_in_data=yes
2217 fi
2218 elif test x$gcc_cv_as != x; then
2219 cat > conftest.s <<EOF
2220 .text
2221 .L0:
2222 nop
2223 .data
2224 .long .L0@GOTOFF
2225 EOF
2226 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
2227 gcc_cv_as_gotoff_in_data=yes
2228 fi
2229 fi
2230 AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
2231 [`if test $gcc_cv_as_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
2232 [Define true if the assembler supports '.long foo@GOTOFF'.])
2233 AC_MSG_RESULT($gcc_cv_as_gotoff_in_data)
2234 ;;
2235 esac
2236
2237 AC_MSG_CHECKING(assembler dwarf2 debug_line support)
2238 gcc_cv_as_dwarf2_debug_line=no
2239 # ??? Not all targets support dwarf2 debug_line, even within a version
2240 # of gas. Moreover, we need to emit a valid instruction to trigger any
2241 # info to the output file. So, as supported targets are added to gas 2.11,
2242 # add some instruction here to (also) show we expect this might work.
2243 # ??? Once 2.11 is released, probably need to add first known working
2244 # version to the per-target configury.
2245 case "$target" in
2246 i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
2247 | x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-*)
2248 insn="nop"
2249 ;;
2250 ia64*-*-*)
2251 insn="nop 0"
2252 ;;
2253 esac
2254 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
2255 then
2256 if test "$gcc_cv_gas_major_version" -eq 2 \
2257 -a "$gcc_cv_gas_minor_version" -ge 11 \
2258 -o "$gcc_cv_gas_major_version" -gt 2 \
2259 && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
2260 && test x"$insn" != x ; then
2261 gcc_cv_as_dwarf2_debug_line="yes"
2262 fi
2263 elif test x$gcc_cv_as != x -a x"$insn" != x ; then
2264 echo ' .file 1 "conftest.s"' > conftest.s
2265 echo ' .loc 1 3 0' >> conftest.s
2266 echo " $insn" >> conftest.s
2267 # ??? This fails with non-gnu grep.
2268 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
2269 && grep debug_line conftest.o > /dev/null 2>&1 ; then
2270 # The .debug_line file table must be in the exact order that
2271 # we specified the files, since these indices are also used
2272 # by DW_AT_decl_file. Approximate this test by testing if
2273 # the assembler bitches if the same index is assigned twice.
2274 echo ' .file 1 "foo.s"' > conftest.s
2275 echo ' .file 1 "bar.s"' >> conftest.s
2276 if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1
2277 then
2278 gcc_cv_as_dwarf2_debug_line="no"
2279 else
2280 gcc_cv_as_dwarf2_debug_line="yes"
2281 fi
2282 fi
2283 rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
2284 fi
2285 if test x"$gcc_cv_as_dwarf2_debug_line" = xyes; then
2286 AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
2287 [Define if your assembler supports dwarf2 .file/.loc directives,
2288 and preserves file table indices exactly as given.])
2289 fi
2290 AC_MSG_RESULT($gcc_cv_as_dwarf2_debug_line)
2291
2292 AC_MSG_CHECKING(assembler --gdwarf2 support)
2293 gcc_cv_as_gdwarf2_flag=no
2294 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
2295 then
2296 if test "$gcc_cv_gas_major_version" -eq 2 \
2297 -a "$gcc_cv_gas_minor_version" -ge 11 \
2298 -o "$gcc_cv_gas_major_version" -gt 2 \
2299 && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
2300 && test x"$insn" != x ; then
2301 gcc_cv_as_gdwarf2_flag="yes"
2302 fi
2303 elif test x$gcc_cv_as != x -a x"$insn" != x ; then
2304 echo '' > conftest.s
2305 # ??? This fails with non-gnu grep.
2306 if $gcc_cv_as --gdwarf2 -o conftest.o conftest.s > /dev/null 2>&1
2307 then
2308 gcc_cv_as_gdwarf2_flag="yes"
2309 fi
2310 rm -f conftest.s conftest.o
2311 fi
2312 if test x"$gcc_cv_as_gdwarf2_flag" = xyes; then
2313 AC_DEFINE(HAVE_AS_GDWARF2_DEBUG_FLAG, 1,
2314 [Define if your assembler supports the --gdwarf2 option.])
2315 fi
2316 AC_MSG_RESULT($gcc_cv_as_gdwarf2_flag)
2317
2318 AC_MSG_CHECKING(assembler --gstabs support)
2319 gcc_cv_as_gstabs_flag=no
2320 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
2321 then
2322 if test "$gcc_cv_gas_major_version" -eq 2 \
2323 -a "$gcc_cv_gas_minor_version" -ge 11 \
2324 -o "$gcc_cv_gas_major_version" -gt 2 \
2325 && grep 'obj_format = elf' ../gas/Makefile > /dev/null \
2326 && test x"$insn" != x ; then
2327 gcc_cv_as_gstabs_flag="yes"
2328 fi
2329 elif test x$gcc_cv_as != x -a x"$insn" != x ; then
2330 echo '' > conftest.s
2331 # ??? This fails with non-gnu grep.
2332 if $gcc_cv_as --gstabs -o conftest.o conftest.s > /dev/null 2>&1 ; then
2333 gcc_cv_as_gstabs_flag="yes"
2334 fi
2335 rm -f conftest.s conftest.o
2336 fi
2337 if test x"$gcc_cv_as_gstabs_flag" = xyes; then
2338 AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1,
2339 [Define if your assembler supports the --gstabs option.])
2340 fi
2341 AC_MSG_RESULT($gcc_cv_as_gstabs_flag)
2342
2343 AC_MSG_CHECKING(linker read-only and read-write section mixing)
2344 gcc_cv_ld_ro_rw_mix=unknown
2345 if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
2346 if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then
2347 gcc_cv_ld_ro_rw_mix=read-write
2348 fi
2349 elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
2350 echo '.section "myfoosect", "a"' > conftest1.s
2351 echo '.section "myfoosect", "aw"' > conftest2.s
2352 echo '.byte 1' >> conftest2.s
2353 echo '.section "myfoosect", "a"' > conftest3.s
2354 echo '.byte 0' >> conftest3.s
2355 if $gcc_cv_as -o conftest1.o conftest1.s > /dev/null 2>&1 \
2356 && $gcc_cv_as -o conftest2.o conftest2.s > /dev/null 2>&1 \
2357 && $gcc_cv_as -o conftest3.o conftest3.s > /dev/null 2>&1 \
2358 && $gcc_cv_ld -shared -o conftest1.so conftest1.o \
2359 conftest2.o conftest3.o; then
2360 gcc_cv_ld_ro_rw_mix=`$gcc_cv_objdump -h conftest1.so \
2361 | grep -A1 myfoosect`
2362 if echo "$gcc_cv_ld_ro_rw_mix" | grep CONTENTS > /dev/null; then
2363 if echo "$gcc_cv_ld_ro_rw_mix" | grep READONLY > /dev/null; then
2364 gcc_cv_ld_ro_rw_mix=read-only
2365 else
2366 gcc_cv_ld_ro_rw_mix=read-write
2367 fi
2368 fi
2369 fi
2370 changequote(,)dnl
2371 rm -f conftest.* conftest[123].*
2372 changequote([,])dnl
2373 fi
2374 if test x$gcc_cv_ld_ro_rw_mix = xread-write; then
2375 AC_DEFINE(HAVE_LD_RO_RW_SECTION_MIXING, 1,
2376 [Define if your linker links a mix of read-only
2377 and read-write sections into a read-write section.])
2378 fi
2379 AC_MSG_RESULT($gcc_cv_ld_ro_rw_mix)
2380
2381 AC_MSG_CHECKING(linker PT_GNU_EH_FRAME support)
2382 gcc_cv_ld_eh_frame_hdr=no
2383 if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
2384 if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then
2385 gcc_cv_ld_eh_frame_hdr=yes
2386 fi
2387 elif test x$gcc_cv_ld != x; then
2388 # Check if linker supports --eh-frame-hdr option
2389 if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then
2390 gcc_cv_ld_eh_frame_hdr=yes
2391 fi
2392 fi
2393 if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then
2394 AC_DEFINE(HAVE_LD_EH_FRAME_HDR, 1,
2395 [Define if your linker supports --eh-frame-hdr option.])
2396 fi
2397 AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr)
2398
2399 # Miscellaneous target-specific checks.
2400 case "$target" in
2401 mips*-*-*)
2402 AC_MSG_CHECKING(whether libgloss uses STARTUP directives consistently)
2403 gcc_cv_mips_libgloss_startup=no
2404 gcc_cv_libgloss_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/libgloss
2405 if test "x$exec_prefix" = xNONE; then
2406 if test "x$prefix" = xNONE; then
2407 test_prefix=/usr/local
2408 else
2409 test_prefix=$prefix
2410 fi
2411 else
2412 test_prefix=$exec_prefix
2413 fi
2414 for f in $gcc_cv_libgloss_srcdir/mips/idt.ld $test_prefix/$target_alias/lib/idt.ld
2415 do
2416 if grep '^STARTUP' $f > /dev/null 2>&1; then
2417 gcc_cv_mips_libgloss_startup=yes
2418 break
2419 fi
2420 done
2421 if test x"$gcc_cv_mips_libgloss_startup" = xyes; then
2422 AC_DEFINE(HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES, 1,
2423 [Define if your MIPS libgloss linker scripts consistently include STARTUP directives.])
2424 fi
2425 AC_MSG_RESULT($gcc_cv_mips_libgloss_startup)
2426 ;;
2427 esac
2428
2429 if test x$with_sysroot = x && x$host = x$target \
2430 && test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" ; then
2431 AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include")
2432 fi
2433
2434 # Figure out what language subdirectories are present.
2435 # Look if the user specified --enable-languages="..."; if not, use
2436 # the environment variable $LANGUAGES if defined. $LANGUAGES might
2437 # go away some day.
2438 # NB: embedded tabs in this IF block -- do not untabify
2439 if test x"${enable_languages+set}" != xset; then
2440 if test x"${LANGUAGES+set}" = xset; then
2441 enable_languages="${LANGUAGES}"
2442 AC_MSG_WARN([setting LANGUAGES is deprecated, use --enable-languages instead])
2443
2444 else
2445 enable_languages=all
2446 fi
2447 else
2448 if test x"${enable_languages}" = x \
2449 || test x"${enable_languages}" = xyes;
2450 then
2451 AC_MSG_ERROR([--enable-languages needs at least one language argument])
2452 fi
2453 fi
2454 enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
2455
2456 # First scan to see if an enabled language requires some other language.
2457 # We assume that a given config-lang.in will list all the language
2458 # front ends it requires, even if some are required indirectly.
2459 for lang in ${srcdir}/*/config-lang.in ..
2460 do
2461 case $lang in
2462 ..)
2463 ;;
2464 # The odd quoting in the next line works around
2465 # an apparent bug in bash 1.12 on linux.
2466 changequote(,)dnl
2467 ${srcdir}/[*]/config-lang.in)
2468 ;;
2469 *)
2470 lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
2471 this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^ ]*\).*$,\1,p' $lang`
2472 for other in $this_lang_requires
2473 do
2474 case ,${enable_languages}, in
2475 *,$other,*)
2476 ;;
2477 *,all,*)
2478 ;;
2479 *,$lang_alias,*)
2480 enable_languages="$enable_languages,$other"
2481 ;;
2482 esac
2483 done
2484 ;;
2485 changequote([,])dnl
2486 esac
2487 done
2488
2489 expected_languages=`echo ,${enable_languages}, | sed -e 's:,: :g' -e 's: *: :g' -e 's: *: :g' -e 's:^ ::' -e 's: $::'`
2490 found_languages=
2491 subdirs=
2492 for lang in ${srcdir}/*/config-lang.in ..
2493 do
2494 case $lang in
2495 ..) ;;
2496 # The odd quoting in the next line works around
2497 # an apparent bug in bash 1.12 on linux.
2498 changequote(,)dnl
2499 ${srcdir}/[*]/config-lang.in) ;;
2500 *)
2501 lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
2502 this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^ ]*\).*$,\1,p' $lang`
2503 build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^ ]*\).*$,\1,p' $lang`
2504 if test "x$lang_alias" = x
2505 then
2506 echo "$lang doesn't set \$language." 1>&2
2507 exit 1
2508 fi
2509 case ${build_by_default},${enable_languages}, in
2510 *,$lang_alias,*) add_this_lang=yes ;;
2511 no,*) add_this_lang=no ;;
2512 *,all,*) add_this_lang=yes ;;
2513 *) add_this_lang=no ;;
2514 esac
2515 found_languages="${found_languages} ${lang_alias}"
2516 if test x"${add_this_lang}" = xyes; then
2517 case $lang in
2518 ${srcdir}/ada/config-lang.in)
2519 if test x$have_gnat = xyes ; then
2520 subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
2521 fi
2522 ;;
2523 *)
2524 subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
2525 ;;
2526 esac
2527 fi
2528 ;;
2529 changequote([,])dnl
2530 esac
2531 done
2532
2533 missing_languages=
2534 for expected_language in ${expected_languages} ..
2535 do
2536 if test "${expected_language}" != ..; then
2537 missing_language="${expected_language}"
2538 if test "${expected_language}" = "c" \
2539 || test "${expected_language}" = "all"; then
2540 missing_language=
2541 fi
2542 for found_language in ${found_languages} ..
2543 do
2544 if test "${found_language}" != ..; then
2545 if test "${expected_language}" = "${found_language}"; then
2546 missing_language=
2547 fi
2548 fi
2549 done
2550 if test "x${missing_language}" != x; then
2551 missing_languages="${missing_languages} ${missing_language}"
2552 fi
2553 fi
2554 done
2555
2556 if test "x$missing_languages" != x; then
2557 AC_MSG_ERROR([
2558 The following requested languages were not found:${missing_languages}
2559 The following languages were available: c${found_languages}])
2560 fi
2561
2562 # Make gthr-default.h if we have a thread file.
2563 gthread_flags=
2564 if test $thread_file != single; then
2565 rm -f gthr-default.h
2566 echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h
2567 gthread_flags=-DHAVE_GTHR_DEFAULT
2568 fi
2569 AC_SUBST(gthread_flags)
2570
2571 # Find out what GC implementation we want, or may, use.
2572 AC_ARG_WITH(gc,
2573 [ --with-gc={simple,page} choose the garbage collection mechanism to use
2574 with the compiler],
2575 [case "$withval" in
2576 simple | page)
2577 GGC=ggc-$withval
2578 ;;
2579 *)
2580 AC_MSG_ERROR([$withval is an invalid option to --with-gc])
2581 ;;
2582 esac],
2583 [GGC=ggc-page])
2584 AC_SUBST(GGC)
2585 echo "Using $GGC for garbage collection."
2586
2587 # Use the system's zlib library.
2588 zlibdir=-L../zlib
2589 zlibinc="-I\$(srcdir)/../zlib"
2590 AC_ARG_WITH(system-zlib,
2591 [ --with-system-zlib use installed libz],
2592 zlibdir=
2593 zlibinc=
2594 )
2595 AC_SUBST(zlibdir)
2596 AC_SUBST(zlibinc)
2597
2598 dnl Very limited version of automake's enable-maintainer-mode
2599
2600 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2601 dnl maintainer-mode is disabled by default
2602 AC_ARG_ENABLE(maintainer-mode,
2603 [ --enable-maintainer-mode
2604 enable make rules and dependencies not useful
2605 (and sometimes confusing) to the casual installer],
2606 maintainer_mode=$enableval,
2607 maintainer_mode=no)
2608
2609 AC_MSG_RESULT($maintainer_mode)
2610
2611 if test "$maintainer_mode" = "yes"; then
2612 MAINT=''
2613 else
2614 MAINT='#'
2615 fi
2616 AC_SUBST(MAINT)dnl
2617
2618 # Make empty files to contain the specs and options for each language.
2619 # Then add #include lines to for a compiler that has specs and/or options.
2620
2621 lang_specs_files=
2622 lang_options_files=
2623 lang_tree_files=
2624 for subdir in . $subdirs
2625 do
2626 if test -f $srcdir/$subdir/lang-specs.h; then
2627 lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
2628 fi
2629 if test -f $srcdir/$subdir/lang-options.h; then
2630 lang_options_files="$lang_options_files $srcdir/$subdir/lang-options.h"
2631 fi
2632 if test -f $srcdir/$subdir/$subdir-tree.def; then
2633 lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
2634 fi
2635 done
2636
2637 # These (without "all_") are set in each config-lang.in.
2638 # `language' must be a single word so is spelled singularly.
2639 all_languages=
2640 all_boot_languages=
2641 all_compilers=
2642 all_stagestuff=
2643 all_outputs='Makefile intl/Makefile fixinc/Makefile gccbug mklibgcc mkheaders'
2644 # List of language makefile fragments.
2645 all_lang_makefiles=
2646 # Files for gengtype
2647 all_gtfiles="$target_gtfiles"
2648 # Files for gengtype with language
2649 all_gtfiles_files_langs=
2650 all_gtfiles_files_files=
2651
2652 # Add the language fragments.
2653 # Languages are added via two mechanisms. Some information must be
2654 # recorded in makefile variables, these are defined in config-lang.in.
2655 # We accumulate them and plug them into the main Makefile.
2656 # The other mechanism is a set of hooks for each of the main targets
2657 # like `clean', `install', etc.
2658
2659 language_fragments="Make-lang"
2660 language_hooks="Make-hooks"
2661
2662 for s in .. $subdirs
2663 do
2664 if test $s != ".."
2665 then
2666 language=
2667 boot_language=
2668 compilers=
2669 stagestuff=
2670 outputs=
2671 gtfiles=
2672 . ${srcdir}/$s/config-lang.in
2673 if test "x$language" = x
2674 then
2675 echo "${srcdir}/$s/config-lang.in doesn't set \$language." 1>&2
2676 exit 1
2677 fi
2678 all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Make-lang.in"
2679 if test -f ${srcdir}/$s/Makefile.in
2680 then all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Makefile.in"
2681 fi
2682 all_languages="$all_languages $language"
2683 if test "x$boot_language" = xyes
2684 then
2685 all_boot_languages="$all_boot_languages $language"
2686 fi
2687 all_compilers="$all_compilers $compilers"
2688 all_stagestuff="$all_stagestuff $stagestuff"
2689 all_outputs="$all_outputs $outputs"
2690 all_gtfiles="$all_gtfiles $gtfiles"
2691 for f in .. $gtfiles
2692 do
2693 if test $f != ".."
2694 then
2695 all_gtfiles_files_langs="$all_gtfiles_files_langs ${s} "
2696 all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
2697 fi
2698 done
2699 fi
2700 done
2701
2702 # Pick up gtfiles for c
2703 gtfiles=
2704 s="c"
2705 . ${srcdir}/c-config-lang.in
2706 all_gtfiles="$all_gtfiles $gtfiles"
2707 for f in .. $gtfiles
2708 do
2709 if test $f != ".."
2710 then
2711 all_gtfiles_files_langs="$all_gtfiles_files_langs ${s} "
2712 all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
2713 fi
2714 done
2715
2716 check_languages=
2717 for language in .. $all_languages
2718 do
2719 if test $language != ".."
2720 then
2721 check_languages="$check_languages check-$language"
2722 fi
2723 done
2724
2725 # Since we can't use `::' targets, we link each language in
2726 # with a set of hooks, reached indirectly via lang.${target}.
2727
2728 rm -f Make-hooks
2729 touch Make-hooks
2730 target_list="all.build all.cross start.encap rest.encap \
2731 info dvi generated-manpages \
2732 install-normal install-common install-info install-man \
2733 uninstall \
2734 mostlyclean clean distclean extraclean maintainer-clean \
2735 stage1 stage2 stage3 stage4"
2736 for t in $target_list
2737 do
2738 x=
2739 for lang in .. $all_languages
2740 do
2741 if test $lang != ".."; then
2742 x="$x $lang.$t"
2743 fi
2744 done
2745 echo "lang.$t: $x" >> Make-hooks
2746 done
2747
2748 # Create .gdbinit.
2749
2750 echo "dir ." > .gdbinit
2751 echo "dir ${srcdir}" >> .gdbinit
2752 if test x$gdb_needs_out_file_path = xyes
2753 then
2754 echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
2755 fi
2756 if test "x$subdirs" != x; then
2757 for s in $subdirs
2758 do
2759 echo "dir ${srcdir}/$s" >> .gdbinit
2760 done
2761 fi
2762 echo "source ${srcdir}/gdbinit.in" >> .gdbinit
2763
2764 # Define variables host_canonical and build_canonical
2765 # because some Cygnus local changes in the Makefile depend on them.
2766 build_canonical=${build}
2767 host_canonical=${host}
2768 target_subdir=
2769 if test "${host}" != "${target}" ; then
2770 target_subdir=${target_alias}/
2771 fi
2772 AC_SUBST(build_canonical)
2773 AC_SUBST(host_canonical)
2774 AC_SUBST(target_subdir)
2775
2776 # If $(exec_prefix) exists and is not the same as $(prefix), then compute an
2777 # absolute path for gcc_tooldir based on inserting the number of up-directory
2778 # movements required to get from $(exec_prefix) to $(prefix) into the basic
2779 # $(libsubdir)/@(unlibsubdir) based path.
2780 # Don't set gcc_tooldir to tooldir since that's only passed in by the toplevel
2781 # make and thus we'd get different behavior depending on where we built the
2782 # sources.
2783 if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then
2784 gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_alias)'
2785 else
2786 changequote(<<, >>)dnl
2787 # An explanation of the sed strings:
2788 # -e 's|^\$(prefix)||' matches and eliminates 'prefix' from 'exec_prefix'
2789 # -e 's|/$||' match a trailing forward slash and eliminates it
2790 # -e 's|^[^/]|/|' forces the string to start with a forward slash (*)
2791 # -e 's|/[^/]*|../|g' replaces each occurrence of /<directory> with ../
2792 #
2793 # (*) Note this pattern overwrites the first character of the string
2794 # with a forward slash if one is not already present. This is not a
2795 # problem because the exact names of the sub-directories concerned is
2796 # unimportant, just the number of them matters.
2797 #
2798 # The practical upshot of these patterns is like this:
2799 #
2800 # prefix exec_prefix result
2801 # ------ ----------- ------
2802 # /foo /foo/bar ../
2803 # /foo/ /foo/bar ../
2804 # /foo /foo/bar/ ../
2805 # /foo/ /foo/bar/ ../
2806 # /foo /foo/bar/ugg ../../
2807 #
2808 dollar='$$'
2809 gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_alias)"
2810 changequote([, ])dnl
2811 fi
2812 AC_SUBST(gcc_tooldir)
2813 AC_SUBST(dollar)
2814
2815 # Find a directory in which to install a shared libgcc.
2816
2817 AC_ARG_ENABLE(version-specific-runtime-libs,
2818 [ --enable-version-specific-runtime-libs
2819 specify that runtime libraries should be
2820 installed in a compiler-specific directory])
2821
2822 AC_ARG_WITH(slibdir,
2823 [ --with-slibdir=DIR shared libraries in DIR [LIBDIR]],
2824 slibdir="$with_slibdir",
2825 if test "${enable_version_specific_runtime_libs+set}" = set; then
2826 slibdir='$(libsubdir)'
2827 elif test "$host" != "$target"; then
2828 slibdir='$(build_tooldir)/lib'
2829 else
2830 slibdir='$(libdir)'
2831 fi)
2832 AC_SUBST(slibdir)
2833
2834 objdir=`${PWDCMD-pwd}`
2835 AC_SUBST(objdir)
2836
2837 # Process the language and host/target makefile fragments.
2838 ${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xmake_file" "$dep_tmake_file"
2839
2840 # Substitute configuration variables
2841 AC_SUBST(subdirs)
2842 AC_SUBST(srcdir)
2843 AC_SUBST(all_boot_languages)
2844 AC_SUBST(all_compilers)
2845 AC_SUBST(all_gtfiles)
2846 AC_SUBST(all_gtfiles_files_langs)
2847 AC_SUBST(all_gtfiles_files_files)
2848 AC_SUBST(all_lang_makefiles)
2849 AC_SUBST(all_languages)
2850 AC_SUBST(all_stagestuff)
2851 AC_SUBST(build_exeext)
2852 AC_SUBST(build_install_headers_dir)
2853 AC_SUBST(build_xm_file_list)
2854 AC_SUBST(build_xm_file)
2855 AC_SUBST(build_xm_defines)
2856 AC_SUBST(check_languages)
2857 AC_SUBST(cc_set_by_configure)
2858 AC_SUBST(quoted_cc_set_by_configure)
2859 AC_SUBST(cpp_install_dir)
2860 AC_SUBST(dep_host_xmake_file)
2861 AC_SUBST(dep_tmake_file)
2862 AC_SUBST(extra_headers_list)
2863 AC_SUBST(extra_objs)
2864 AC_SUBST(extra_parts)
2865 AC_SUBST(extra_passes)
2866 AC_SUBST(extra_programs)
2867 AC_SUBST(float_h_file)
2868 AC_SUBST(gcc_config_arguments)
2869 AC_SUBST(gcc_gxx_include_dir)
2870 AC_SUBST(libstdcxx_incdir)
2871 AC_SUBST(gcc_version)
2872 AC_SUBST(gcc_version_full)
2873 AC_SUBST(gcc_version_trigger)
2874 AC_SUBST(host_exeext)
2875 AC_SUBST(host_extra_gcc_objs)
2876 AC_SUBST(host_xm_file_list)
2877 AC_SUBST(host_xm_file)
2878 AC_SUBST(host_xm_defines)
2879 AC_SUBST(out_host_hook_obj)
2880 AC_SUBST(install)
2881 AC_SUBST(lang_options_files)
2882 AC_SUBST(lang_specs_files)
2883 AC_SUBST(lang_tree_files)
2884 AC_SUBST(local_prefix)
2885 AC_SUBST(md_file)
2886 AC_SUBST(objc_boehm_gc)
2887 AC_SUBST(out_file)
2888 AC_SUBST(out_object_file)
2889 AC_SUBST(stage_prefix_set_by_configure)
2890 AC_SUBST(quoted_stage_prefix_set_by_configure)
2891 AC_SUBST(symbolic_link)
2892 AC_SUBST(thread_file)
2893 AC_SUBST(tm_file_list)
2894 AC_SUBST(tm_file)
2895 AC_SUBST(tm_defines)
2896 AC_SUBST(tm_p_file_list)
2897 AC_SUBST(tm_p_file)
2898 AC_SUBST(xm_file)
2899 AC_SUBST(xm_defines)
2900 AC_SUBST(target_alias)
2901 AC_SUBST(c_target_objs)
2902 AC_SUBST(cxx_target_objs)
2903 AC_SUBST(target_cpu_default)
2904
2905 AC_SUBST_FILE(target_overrides)
2906 AC_SUBST_FILE(host_overrides)
2907 AC_SUBST_FILE(language_fragments)
2908 AC_SUBST_FILE(language_hooks)
2909
2910 # Echo that links are built
2911 if test x$host = x$target
2912 then
2913 str1="native "
2914 else
2915 str1="cross-"
2916 str2=" from $host"
2917 fi
2918
2919 if test x$host != x$build
2920 then
2921 str3=" on a $build system"
2922 fi
2923
2924 if test "x$str2" != x || test "x$str3" != x
2925 then
2926 str4=
2927 fi
2928
2929 echo "Links are now set up to build a ${str1}compiler for ${target}$str4" 1>&2
2930
2931 if test "x$str2" != x || test "x$str3" != x
2932 then
2933 echo " ${str2}${str3}." 1>&2
2934 fi
2935
2936 # Truncate the target if necessary
2937 if test x$host_truncate_target != x; then
2938 target=`echo $target | sed -e 's/\(..............\).*/\1/'`
2939 fi
2940
2941 # Configure the subdirectories
2942 # AC_CONFIG_SUBDIRS($subdirs)
2943
2944 # Create the Makefile
2945 # and configure language subdirectories
2946 AC_OUTPUT($all_outputs,
2947 [
2948 case x$CONFIG_HEADERS in
2949 xauto-host.h:config.in)
2950 echo > cstamp-h ;;
2951 esac
2952 # If the host supports symlinks, point stage[1234] at ../stage[1234] so
2953 # bootstrapping and the installation procedure can still use
2954 # CC="stage1/xgcc -Bstage1/". If the host doesn't support symlinks,
2955 # FLAGS_TO_PASS has been modified to solve the problem there.
2956 # This is virtually a duplicate of what happens in configure.lang; we do
2957 # an extra check to make sure this only happens if ln -s can be used.
2958 if test "$symbolic_link" = "ln -s"; then
2959 for d in .. ${subdirs} fixinc ; do
2960 if test $d != ..; then
2961 STARTDIR=`${PWDCMD-pwd}`
2962 cd $d
2963 for t in stage1 stage2 stage3 stage4 include
2964 do
2965 rm -f $t
2966 $symbolic_link ../$t $t 2>/dev/null
2967 done
2968 cd $STARTDIR
2969 fi
2970 done
2971 else true ; fi
2972 # Avoid having to add intl to our include paths.
2973 if test -f intl/libintl.h; then
2974 echo creating libintl.h
2975 echo '#include "intl/libintl.h"' >libintl.h
2976 fi
2977 ],
2978 [subdirs='$subdirs'
2979 symbolic_link='$symbolic_link'
2980 ])