X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fconfigure.in;h=02a7ce27fb5a0c14d51d30b6d2e0988dbc5adf35;hb=648298e892dac93092649dbe92a8865adbe51748;hp=d3b906b357d91be607fa68250c65bd5f8e38bcec;hpb=99fc085e0c12c2e815d2e5421780f87d91dfcfef;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/configure.in b/gcc/configure.in index d3b906b357d..02a7ce27fb5 100644 --- a/gcc/configure.in +++ b/gcc/configure.in @@ -32,6 +32,9 @@ AC_CONFIG_HEADER(auto-host.h:config.in) # Determine the host, build, and target systems AC_CANONICAL_SYSTEM +# Determine the noncanonical target name, for directory use. +_GCC_TOPLEV_NONCANONICAL_TARGET + # Determine the target- and build-specific subdirectories GCC_TOPLEV_SUBDIRS @@ -145,6 +148,20 @@ elif test x$withval != xno; then cpp_install_dir=$withval fi]) +# We would like to our source tree to be readonly. However when releases or +# pre-releases are generated, the flex/bison generated files as well as the +# various formats of manuals need to be included along with the rest of the +# sources. Therefore we have --enable-generated-files-in-srcdir to do +# just that. + +AC_ARG_ENABLE(generated-files-in-srcdir, +[ --enable-generated-files-in-srcdir Put generated files in source dir], +[case ${enableval} in + no) parsedir='$(objdir)'; docobjdir='$(objdir)/doc';; + *) parsedir='$(srcdir)'; docobjdir='$(srcdir)/doc';; +esac], +[parsedir='$(objdir)'; docobjdir='$(objdir)/doc';]) + # ------------------- # Find default linker # ------------------- @@ -267,29 +284,12 @@ fi # See if GNAT has been installed gcc_AC_PROG_GNAT -if test x$have_gnat != xno ; then -AC_CACHE_CHECK(whether ${ADAC} accepts -Wno-long-long, -ac_cv_prog_adac_no_long_long, -[cat >conftest.adb <&5 2>&5 ; then - ac_cv_prog_adac_no_long_long=yes -else - ac_cv_prog_adac_no_long_long=no -fi -rm -f conftest*]) -else - ac_cv_prog_adac_no_long_long=yes -fi - # --------------------- # Warnings and checking # --------------------- strict1_warn= -if test $ac_cv_prog_cc_no_long_long = yes && \ - test $ac_cv_prog_adac_no_long_long = yes ; then +if test $ac_cv_prog_cc_no_long_long = yes ; then strict1_warn="-pedantic -Wno-long-long" fi AC_SUBST(strict1_warn) @@ -397,9 +397,24 @@ if test x$ac_fold_checking != x ; then fi valgrind_path_defines= valgrind_command= + +dnl # This check AC_REQUIREs various stuff, so it *must not* be inside +dnl # an if statement. This was the source of very frustrating bugs +dnl # in converting to autoconf 2.5x! +AC_CHECK_HEADER(valgrind.h, have_valgrind_h=yes, have_valgrind_h=no) + if test x$ac_checking_valgrind != x ; then # It is certainly possible that there's valgrind but no valgrind.h. # GCC relies on making annotations so we must have both. + AC_MSG_CHECKING(for VALGRIND_DISCARD in ) + AC_TRY_CPP( + [#include +#ifndef VALGRIND_DISCARD +#error VALGRIND_DISCARD not defined +#endif], + [gcc_cv_header_valgrind_memcheck_h=yes], + [gcc_cv_header_valgrind_memcheck_h=no]) + AC_MSG_RESULT($gcc_cv_header_valgrind_memcheck_h) AC_MSG_CHECKING(for VALGRIND_DISCARD in ) AC_TRY_CPP( [#include @@ -409,17 +424,23 @@ if test x$ac_checking_valgrind != x ; then [gcc_cv_header_memcheck_h=yes], gcc_cv_header_memcheck_h=no) AC_MSG_RESULT($gcc_cv_header_memcheck_h) - AC_CHECK_HEADER(valgrind.h, have_valgrind_h=yes, have_valgrind_h=no) AM_PATH_PROG_WITH_TEST(valgrind_path, valgrind, [$ac_dir/$ac_word --version | grep valgrind- >/dev/null 2>&1]) - if test "x$valgrind_path" = "x" || (test $have_valgrind_h = no && test $gcc_cv_header_memcheck_h = no); then - AC_MSG_ERROR([*** Can't find both valgrind and valgrind.h/memcheck.h]) + if test "x$valgrind_path" = "x" \ + || (test $have_valgrind_h = no \ + && test $gcc_cv_header_memcheck_h = no \ + && test $gcc_cv_header_valgrind_memcheck_h = no); then + AC_MSG_ERROR([*** Can't find both valgrind and valgrind/memcheck.h, memcheck.h or valgrind.h]) fi valgrind_path_defines=-DVALGRIND_PATH='\"'$valgrind_path'\"' valgrind_command="$valgrind_path -q" AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1, [Define if you want to run subprograms and generated programs through valgrind (a memory checker). This is extremely expensive.]) + if test $gcc_cv_header_valgrind_memcheck_h = yes; then + AC_DEFINE(HAVE_VALGRIND_MEMCHECK_H, 1, + [Define if valgrind's valgrind/memcheck.h header is installed.]) + fi if test $gcc_cv_header_memcheck_h = yes; then AC_DEFINE(HAVE_MEMCHECK_H, 1, [Define if valgrind's memcheck.h header is installed.]) @@ -460,12 +481,6 @@ AC_ARG_WITH(stabs, stabs="$with_stabs", stabs=no) -# With ELF -AC_ARG_WITH(elf, -[ --with-elf arrange to use ELF instead of host debug format], -elf="$with_elf", -elf=no) - # Determine whether or not multilibs are enabled. AC_ARG_ENABLE(multilib, [ --enable-multilib enable library support for multiple ABIs], @@ -484,27 +499,8 @@ AC_ARG_ENABLE(threads, [ --enable-threads enable thread usage for target GCC --enable-threads=LIB use LIB thread package for target GCC],, enable_threads='') - +# Save in case it gets overwritten in config.gcc enable_threads_flag=$enable_threads -# Check if a valid thread package -case x${enable_threads_flag} in - x | xno) - # No threads - target_thread_file='single' - ;; - xyes) - # default - target_thread_file='' - ;; - xdecosf1 | xirix | xmach | xos2 | xposix | xpthreads | xsingle | \ - xsolaris | xwin32 | xdce | xrtems| xvxworks | xaix | xgnat) - target_thread_file=$enable_threads_flag - ;; - *) - echo "$enable_threads is an unknown thread package" 1>&2 - exit 1 - ;; -esac AC_ARG_ENABLE(objc-gc, [ --enable-objc-gc enable the use of Boehm's garbage collector with @@ -544,7 +540,7 @@ AC_ARG_WITH(sysroot, [ --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR.], [ case ${with_sysroot} in - yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;; + yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_noncanonical}/sys-root' ;; *) TARGET_SYSTEM_ROOT=$with_sysroot ;; esac @@ -594,6 +590,12 @@ AC_PROG_MAKE_SET # Find some useful tools AC_PROG_AWK +# We need awk to run opts.sh (to create options.c and options.h). +# Bail out if it's missing. +case ${AWK} in + "") AC_MSG_ERROR([can't build without awk, bailing out]) ;; +esac + gcc_AC_PROG_LN gcc_AC_PROG_LN_S AC_PROG_RANLIB @@ -822,13 +824,8 @@ gcc_AC_FUNC_PRINTF_PTR gcc_AC_FUNC_MMAP_BLACKLIST case "${host}" in -*-*-uwin*) - AC_MSG_ERROR([ -*** UWIN may not be used as a host platform because -*** linking with posix.dll is not allowed by the GNU GPL]) - ;; *-*-*vms*) - # Under VMS, vfork works very different than on Unix. The standard test + # Under VMS, vfork works very differently than on Unix. The standard test # won't work, and it isn't easily adaptable. It makes more sense to # just force it. ac_cv_func_vfork_works=yes @@ -848,7 +845,7 @@ saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include" gcc_AC_CHECK_DECLS(getenv atol sbrk abort atof getcwd getwd \ strsignal putc_unlocked fputs_unlocked fwrite_unlocked \ - fprintf_unlocked strstr errno vasprintf \ + fprintf_unlocked strstr errno snprintf vasprintf \ malloc realloc calloc free basename getopt clock, , ,[ #include "ansidecl.h" #include "system.h"]) @@ -947,7 +944,11 @@ AC_ARG_ENABLE(sjlj-exceptions, AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj, [Define 0/1 to force the choice for exception handling model.])]) -AC_CHECK_LIB(unwind, main, use_libunwind_default=yes, use_libunwind_default=no) +if test x$host = x$target; then + AC_CHECK_LIB(unwind, main, use_libunwind_default=yes, use_libunwind_default=no) +else + use_libunwind_default=no +fi # Use libunwind based exception handling. AC_ARG_ENABLE(libunwind-exceptions, [ --enable-libunwind-exceptions force use libunwind for exceptions], @@ -956,6 +957,8 @@ use_libunwind_exceptions=$use_libunwind_default) if test x"$use_libunwind_exceptions" = xyes; then AC_DEFINE(USE_LIBUNWIND_EXCEPTIONS, 1, [Define if gcc should use -lunwind.]) + AC_CHECK_LIB(unwind, _Unwind_Resume, libunwind_has_eh_support=yes, + libunwind_has_eh_support=no) fi # -------------------------------------------------------- @@ -971,9 +974,7 @@ fi target_gtfiles= # Collect target-machine-specific information. -for machine in $target ; do - . ${srcdir}/config.gcc -done +. ${srcdir}/config.gcc extra_objs="${host_extra_objs} ${extra_objs}" @@ -1083,12 +1084,30 @@ if test "$host_xm_file" != "$build_xm_file"; then fi fi -if test x$thread_file = x; then - if test x$target_thread_file != x; then - thread_file=$target_thread_file - else - thread_file='single' - fi +# Check if a valid thread package +case ${enable_threads_flag} in + "" | no) + # No threads + target_thread_file='single' + ;; + yes) + # default + target_thread_file='single' + ;; + aix | dce | gnat | irix | posix | rtems | \ + single | solaris | vxworks | win32 ) + target_thread_file=${enable_threads_flag} + ;; + *) + echo "${enable_threads_flag} is an unknown thread package" 1>&2 + exit 1 + ;; +esac + +if test x${thread_file} = x; then + # No thread file set by target-specific clauses in config.gcc, + # so use file chosen by default logic above + thread_file=${target_thread_file} fi if test x$enable___cxa_atexit = xyes || \ @@ -1107,9 +1126,6 @@ if test -n "$extra_modes" && test -f $srcdir/config/$extra_modes; then AC_DEFINE_UNQUOTED(EXTRA_MODES_FILE, "config/$extra_modes", [Define to the name of a file containing a list of extra machine modes for this architecture.]) - AC_DEFINE(EXTRA_CC_MODES, 1, - [Define if the target architecture needs extra machine modes to represent - the results of comparisons.]) fi # auto-host.h is the file containing items generated by autoconf and is @@ -1464,7 +1480,17 @@ CC_FOR_BUILD='$(CC)' AC_SUBST(CC_FOR_BUILD) BUILD_CFLAGS='$(ALL_CFLAGS)' AC_SUBST(BUILD_CFLAGS) STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC) -STMP_FIXPROTO=stmp-fixproto AC_SUBST(STMP_FIXPROTO) + +# Possibly disable fixproto, on a per-target basis. +case ${use_fixproto} in + no) + STMP_FIXPROTO= + ;; + yes) + STMP_FIXPROTO=stmp-fixproto + ;; +esac +AC_SUBST(STMP_FIXPROTO) # And these apply if build != host, or we are generating coverage data if test x$build != x$host || test "x$coverage_flags" != x @@ -1482,15 +1508,10 @@ fi # Expand extra_headers to include complete path. # This substitutes for lots of t-* files. extra_headers_list= -if test "x$extra_headers" = x -then true -else - # Prepend ${srcdir}/config/${cpu_type}/ to every entry in extra_headers. - for file in $extra_headers; - do - extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}" - done -fi +# Prepend $(srcdir)/config/${cpu_type}/ to every entry in extra_headers. +for file in ${extra_headers} ; do + extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}" +done # Add a definition of USE_COLLECT2 if system wants one. case $use_collect2 in @@ -1569,12 +1590,12 @@ if test "x$gcc_cv_as" = x; then gcc_cv_as=`echo as | sed ${program_transform_name}`$host_exeext fi - test_dirs="$test_prefix/lib/gcc-lib/$target_alias/$gcc_version \ - $test_prefix/lib/gcc-lib/$target_alias \ - /usr/lib/gcc/$target_alias/$gcc_version \ - /usr/lib/gcc/$target_alias \ - $test_prefix/$target_alias/bin/$target_alias/$gcc_version \ - $test_prefix/$target_alias/bin" + test_dirs="$test_prefix/lib/gcc-lib/$target_noncanonical/$gcc_version \ + $test_prefix/lib/gcc-lib/$target_noncanonical \ + /usr/lib/gcc/$target_noncanonical/$gcc_version \ + /usr/lib/gcc/$target_noncanonical \ + $test_prefix/$target_noncanonical/bin/$target_noncanonical/$gcc_version \ + $test_prefix/$target_noncanonical/bin" if test x$host = x$target; then test_dirs="$test_dirs \ @@ -1685,12 +1706,12 @@ if test "x$gcc_cv_ld" = x; then gcc_cv_ld=`echo ld | sed ${program_transform_name}`$host_exeext fi - test_dirs="$test_prefix/lib/gcc-lib/$target_alias/$gcc_version \ - $test_prefix/lib/gcc-lib/$target_alias \ - /usr/lib/gcc/$target_alias/$gcc_version \ - /usr/lib/gcc/$target_alias \ - $test_prefix/$target_alias/bin/$target_alias/$gcc_version \ - $test_prefix/$target_alias/bin" + test_dirs="$test_prefix/lib/gcc-lib/$target_noncanonical/$gcc_version \ + $test_prefix/lib/gcc-lib/$target_noncanonical \ + /usr/lib/gcc/$target_noncanonical/$gcc_version \ + /usr/lib/gcc/$target_noncanonical \ + $test_prefix/$target_noncanonical/bin/$target_noncanonical/$gcc_version \ + $test_prefix/$target_noncanonical/bin" if test x$host = x$target; then test_dirs="$test_dirs \ @@ -1863,8 +1884,14 @@ changequote(,)dnl changequote([,])dnl fi else - # non-GNU linkers don't seem to support .hidden yet - gcc_cv_ld_hidden=no + case "${target}" in + hppa64*-*-hpux*) + gcc_cv_ld_hidden=yes + ;; + *) + gcc_cv_ld_hidden=no + ;; + esac fi fi]) libgcc_visibility=no @@ -1973,9 +2000,10 @@ fi gcc_GAS_CHECK_FEATURE(section merging support, gcc_cv_as_shf_merge, [elf,2,12,0], [--fatal-warnings], - [.section .rodata.str, "aMS", @progbits, 1],, - [AC_DEFINE(HAVE_GAS_SHF_MERGE, 1, -[Define if your assembler supports marking sections with SHF_MERGE flag.])]) + [.section .rodata.str, "aMS", @progbits, 1]) +AC_DEFINE_UNQUOTED(HAVE_GAS_SHF_MERGE, + [`if test $gcc_cv_as_shf_merge = yes; then echo 1; else echo 0; fi`], +[Define 0/1 if your assembler supports marking sections with SHF_MERGE flag.]) # Thread-local storage - the check is heavily parametrized. conftest_s= @@ -2153,6 +2181,19 @@ foo: .long 25 tls_first_minor=14 tls_as_opt="-m64 -Aesame" ;; + sh-*-* | sh[34]-*-*) + conftest_s=' + .section ".tdata","awT",@progbits +foo: .long 25 + .text + .long foo@TLSGD + .long foo@TLSLDM + .long foo@DTPOFF + .long foo@GOTTPOFF + .long foo@TPOFF' + tls_first_major=2 + tls_first_minor=13 + ;; sparc*-*-*) conftest_s=' .section ".tdata","awT",@progbits @@ -2364,7 +2405,7 @@ esac case "$target" in i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \ | x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-* \ - | xstormy16*-*-* | cris-*-*) + | xstormy16*-*-* | cris-*-* | xtensa-*-*) insn="nop" ;; ia64*-*-*) @@ -2515,7 +2556,7 @@ case "$target" in else test_prefix=$exec_prefix fi - for f in $gcc_cv_libgloss_srcdir/mips/idt.ld $test_prefix/$target_alias/lib/idt.ld + for f in $gcc_cv_libgloss_srcdir/mips/idt.ld $test_prefix/$target_noncanonical/lib/idt.ld do if grep '^STARTUP' $f > /dev/null 2>&1; then gcc_cv_mips_libgloss_startup=yes @@ -2672,10 +2713,10 @@ AC_SUBST(gthread_flags) # Find out what GC implementation we want, or may, use. AC_ARG_WITH(gc, -[ --with-gc={simple,page} choose the garbage collection mechanism to use +[ --with-gc={simple,page,zone} choose the garbage collection mechanism to use with the compiler], [case "$withval" in - simple | page) + simple | page | zone) GGC=ggc-$withval ;; *) @@ -2813,16 +2854,15 @@ do check_languages="$check_languages check-$language" done -# Since we can't use `::' targets, we link each language in -# with a set of hooks, reached indirectly via lang.${target}. +# We link each language in with a set of hooks, reached indirectly via +# lang.${target}. rm -f Make-hooks touch Make-hooks target_list="all.build all.cross start.encap rest.encap tags \ - info dvi generated-manpages \ - install-normal install-common install-info install-man \ + install-normal install-common install-man \ uninstall \ - mostlyclean clean distclean extraclean maintainer-clean \ + mostlyclean clean distclean maintainer-clean \ stage1 stage2 stage3 stage4 stageprofile stagefeedback" for t in $target_list do @@ -2858,7 +2898,7 @@ echo "source ${srcdir}/gdbinit.in" >> .gdbinit # make and thus we'd get different behavior depending on where we built the # sources. if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then - gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_alias)' + gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_noncanonical)' else changequote(<<, >>)dnl # An explanation of the sed strings: @@ -2883,7 +2923,7 @@ changequote(<<, >>)dnl # /foo /foo/bar/ugg ../../ # dollar='$$' - gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_alias)" + gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_noncanonical)" changequote([, ])dnl fi AC_SUBST(gcc_tooldir) @@ -2914,6 +2954,8 @@ AC_SUBST(objdir) # Substitute configuration variables AC_SUBST(subdirs) AC_SUBST(srcdir) +AC_SUBST(docobjdir) +AC_SUBST(parsedir) AC_SUBST(all_boot_languages) AC_SUBST(all_compilers) AC_SUBST(all_gtfiles) @@ -2973,37 +3015,29 @@ AC_SUBST(tm_p_include_list) AC_SUBST(xm_file_list) AC_SUBST(xm_include_list) AC_SUBST(xm_defines) -AC_SUBST(target_alias) +AC_SUBST(target_noncanonical) AC_SUBST(c_target_objs) AC_SUBST(cxx_target_objs) AC_SUBST(target_cpu_default) AC_SUBST_FILE(language_hooks) -# Echo that links are built -if test x$host = x$target -then - str1="native " +# Echo link setup. +if test x${build} = x${host} ; then + if test x${host} = x${target} ; then + echo "Links are now set up to build a native compiler for ${target}." 1>&2 + else + echo "Links are now set up to build a cross-compiler" 1>&2 + echo " from ${host} to ${target}." 1>&2 + fi else - str1="cross-" - str2=" from $host" -fi - -if test x$host != x$build -then - str3=" on a $build system" -fi - -if test "x$str2" != x || test "x$str3" != x -then - str4= -fi - -echo "Links are now set up to build a ${str1}compiler for ${target}$str4" 1>&2 - -if test "x$str2" != x || test "x$str3" != x -then - echo " ${str2}${str3}." 1>&2 + if test x${host} = x${target} ; then + echo "Links are now set up to build (on ${build}) a native compiler" 1>&2 + echo " for ${target}." 1>&2 + else + echo "Links are now set up to build (on ${build}) a cross-compiler" 1>&2 + echo " from ${host} to ${target}." 1>&2 + fi fi # Configure the subdirectories @@ -3013,9 +3047,9 @@ fi # and configure language subdirectories AC_OUTPUT($all_outputs, [ -case x$CONFIG_HEADERS in -xauto-host.h:config.in) -echo > cstamp-h ;; +case ${CONFIG_HEADERS} in + *auto-host.h:config.in*) + echo > cstamp-h ;; esac # Make sure all the subdirs exist. for d in $subdirs