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