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