From: Phil Edwards Date: Tue, 5 Aug 2003 23:32:23 +0000 (+0000) Subject: configure.in: Rename... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8b171e5587df1b4584ae445f7b7cbed86b868975;p=gcc.git configure.in: Rename... 2003-08-05 Phil Edwards * configure.in: Rename... * configure.ac: ...to this. * docs/html/17_intro/porting.texi: Update name. * docs/html/17_intro/porting.html: Regenerate. * config.h.in, Makefile.in, include/Makefile.in, libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in, testsuite/Makefile.in: Regenerate (picks up new dependancy). From-SVN: r70194 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 1effa8e7e8a..62440e989fb 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,14 @@ +2003-08-05 Phil Edwards + + * configure.in: Rename... + * configure.ac: ...to this. + * docs/html/17_intro/porting.texi: Update name. + + * docs/html/17_intro/porting.html: Regenerate. + * config.h.in, Makefile.in, include/Makefile.in, libmath/Makefile.in, + libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in, + testsuite/Makefile.in: Regenerate (picks up new dependancy). + 2003-08-05 Phil Edwards * acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Put down the crack diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in index 42206dd5c67..2c0922adb78 100644 --- a/libstdc++-v3/Makefile.in +++ b/libstdc++-v3/Makefile.in @@ -287,7 +287,7 @@ DIST_COMMON = README ../ABOUT-NLS ../COPYING ../COPYING.LIB \ ../ltcf-c.sh ../ltcf-cxx.sh ../ltcf-gcj.sh ../ltconfig \ ../ltmain.sh ../missing ../mkinstalldirs ../ylwrap ChangeLog \ Makefile.am Makefile.in acconfig.h acinclude.m4 aclocal.m4 \ - config.h.in configure configure.in + config.h.in configure configure.ac DIST_SUBDIRS = $(SUBDIRS) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive @@ -296,7 +296,7 @@ all: config.h am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status @@ -304,10 +304,10 @@ Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.s $(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck -$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4 +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.ac acinclude.m4 cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @@ -320,7 +320,7 @@ stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/acconfig.h +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.ac $(ACLOCAL_M4) $(top_srcdir)/acconfig.h cd $(top_srcdir) && $(AUTOHEADER) touch $(srcdir)/config.h.in diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in index fc21ca3d6e1..d61a5845989 100644 --- a/libstdc++-v3/config.h.in +++ b/libstdc++-v3/config.h.in @@ -1,4 +1,4 @@ -/* config.h.in. Generated from configure.in by autoheader. */ +/* config.h.in. Generated from configure.ac by autoheader. */ // acconfig.h symbols and macros for libstdc++ v3 -*- C++ -*- // Defines libstdc++ version. diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac new file mode 100644 index 00000000000..5450c534e2a --- /dev/null +++ b/libstdc++-v3/configure.ac @@ -0,0 +1,335 @@ +# Process this file with autoconf to produce a configure script, like so: +# aclocal && autoconf && autoheader && automake + +AC_PREREQ(2.57) +AC_INIT(libstdc++, version-unused) +AC_CONFIG_SRCDIR(src/ios.cc) +AC_CONFIG_HEADER(config.h) + +# This works around the fact that libtool configuration may change LD +# for this particular configuration, but some shells, instead of +# keeping the changes in LD private, export them just because LD is +# exported. Only used at the end of this file. +### am handles this now? ORIGINAL_LD_FOR_MULTILIBS=$LD + +# For libtool versioning info, format is CURRENT:REVISION:AGE +libtool_VERSION=6:0:0 +AC_SUBST(libtool_VERSION) + +# Find the rest of the source tree framework. +GLIBCXX_TOPREL_CONFIGURE + +# Gets build, host, target, *_vendor, *_cpu, *_os, etc. +# +# You will slowly go insane if you do not grok the following fact: when +# building v3 as part of the compiler, the top-level /target/ becomes the +# library's /host/. configure then causes --target to default to --host, +# exactly like any other package using autoconf. Therefore, 'target' and +# 'host' will always be the same. This makes sense both for native and +# cross compilers, just think about it for a little while. :-) +# +# Also, if v3 is being configured as part of a cross compiler, the top-level +# configure script will pass the "real" host as $with_cross_host. +# +# Do not delete or change the following two lines. For why, see +# http://gcc.gnu.org/ml/libstdc++/2003-07/msg00451.html +AC_CANONICAL_SYSTEM +target_alias=${target_alias-$host_alias} + +# Handy for debugging: +#AC_MSG_NOTICE($build / $host / $target / $host_alias / $target_alias); sleep 5 + +# Sets up automake. Must come after AC_CANONICAL_SYSTEM. Each of the +# following is magically included in AUTOMAKE_OPTIONS in each Makefile.am. +# 1.x: minimum required version +# no-define: PACKAGE and VERSION will not be #define'd in config.h (a bunch +# of other PACKAGE_* variables will, however, and there's nothing +# we can do about that) +# foreign: we don't follow the normal rules for GNU packages (no COPYING +# file in the top srcdir, etc, etc), so stop complaining. +# no-dependencies: turns off auto dependency generation (just for now) +# -Wall: turns on all automake warnings +AM_INIT_AUTOMAKE([1.7.6 no-define foreign no-dependencies -Wall]) + +# AM_INIT_AUTOMAKE sets this to the "smashed" format. Calling the library +# "libstdc--" causes remarkable amounts of breakage. Thanks, automake. +PACKAGE='libstdc++' + +# Runs configure.host, finds CC, CXX, and assorted other critical bits. Sets +# up critical shell variables. +GLIBCXX_CONFIGURE + +#AC_MSG_NOTICE([====== Starting libtool configuration]) +AC_LIBTOOL_DLOPEN +AM_PROG_LIBTOOL +AC_SUBST(enable_shared) +AC_SUBST(enable_static) +#AC_MSG_NOTICE([====== Finished libtool configuration]) ; sleep 10 + +# Check for support bits and g++ features that don't require linking. +GLIBCXX_ENABLE_SJLJ_EXCEPTIONS +GLIBCXX_ENABLE_LIBUNWIND_EXCEPTIONS +GLIBCXX_ENABLE_PCH([yes]) + +# Enable all the variable C++ runtime options. +# NB: C_MBCHAR must come early. +GLIBCXX_ENABLE_CSTDIO +GLIBCXX_ENABLE_CLOCALE +GLIBCXX_ENABLE_CHEADERS($c_model) dnl c_model from configure.host +GLIBCXX_ENABLE_C_MBCHAR([yes]) +GLIBCXX_ENABLE_C99([yes]) +GLIBCXX_ENABLE_LONG_LONG([yes]) +GLIBCXX_ENABLE_THREADS +GLIBCXX_ENABLE_CONCEPT_CHECKS([no]) +GLIBCXX_ENABLE_DEBUG_FLAGS(["-g3 -O0"]) +GLIBCXX_ENABLE_DEBUG([no]) +GLIBCXX_ENABLE_CXX_FLAGS + +# No surprises, no surprises... +if test $atomicity_include_dir = cpu/generic ; then + AC_MSG_WARN([No native atomic operations are provided for this platform.]) + if test $target_thread_file = single; then + AC_MSG_WARN([They cannot be faked when thread support is disabled.]) + AC_MSG_WARN([Thread-safety of certain classes is not guaranteed.]) + else + AC_MSG_WARN([They will be faked using a mutex.]) + AC_MSG_WARN([Performance of certain classes will degrade as a result.]) + fi +fi + + +if test "$build" != "$host"; then + + # We are being configured with some form of cross compiler. + GLIBCXX_IS_NATIVE=false + + # This lets us hard-code the functionality we know we'll have in the cross + # target environment. "Let" is a sugar-coated word placed on an especially + # dull and tedious hack, actually. + # + # Here's why GLIBCXX_CHECK_MATH_SUPPORT, and other autoconf macros + # that involve linking, can't be used: + # "cannot open sim-crt0.o" + # "cannot open crt0.o" + # etc. All this is because there currently exists no unified, consistent + # way for top level CC information to be passed down to target directories: + # newlib includes, newlib linking info, libgloss versus newlib crt0.o, etc. + # When all of that is done, all of this hokey, excessive AC_DEFINE junk for + # crosses can be removed. + + # If Canadian cross, then don't pick up tools from the build directory. + # Used in GLIBCXX_EXPORT_INCLUDES (and nowhere else?). + if test -n "$with_cross_host" && + test x"$build" != x"$with_cross_host" && + test x"$build" != x"$target"; + then + CANADIAN=yes + else + CANADIAN=no + fi + + # Construct crosses by hand, eliminating bits that need ld... + # GLIBCXX_CHECK_COMPILER_FEATURES + # GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT + # GLIBCXX_CHECK_MATH_SUPPORT + + # First, test for "known" system libraries. We may be using newlib even + # on a hosted environment. + if test "x${with_newlib}" = "xyes"; then + os_include_dir="os/newlib" + AC_DEFINE(HAVE_HYPOT) + + # GLIBCXX_CHECK_STDLIB_SUPPORT + AC_DEFINE(HAVE_STRTOF) + AC_DEFINE(HAVE_STRTOLD) + # AC_FUNC_MMAP + AC_DEFINE(HAVE_MMAP) + + AC_DEFINE(HAVE_ACOSF) + AC_DEFINE(HAVE_ASINF) + AC_DEFINE(HAVE_ATAN2F) + AC_DEFINE(HAVE_ATANF) + AC_DEFINE(HAVE_CEILF) + AC_DEFINE(HAVE_COPYSIGN) + AC_DEFINE(HAVE_COPYSIGNF) + AC_DEFINE(HAVE_COSF) + AC_DEFINE(HAVE_COSHF) + AC_DEFINE(HAVE_EXPF) + AC_DEFINE(HAVE_FABSF) + AC_DEFINE(HAVE_FLOORF) + AC_DEFINE(HAVE_FMODF) + AC_DEFINE(HAVE_FREXPF) + AC_DEFINE(HAVE_LDEXPF) + AC_DEFINE(HAVE_LOG10F) + AC_DEFINE(HAVE_LOGF) + AC_DEFINE(HAVE_MODFF) + AC_DEFINE(HAVE_POWF) + AC_DEFINE(HAVE_SINF) + AC_DEFINE(HAVE_SINHF) + AC_DEFINE(HAVE_SQRTF) + AC_DEFINE(HAVE_TANF) + AC_DEFINE(HAVE_TANHF) + else + m4_include([crossconfig.m4]) + fi + + # At some point, we should differentiate between architectures + # like x86, which have long double versions, and alpha/powerpc/etc., + # which don't. For the time being, punt. + if test x"long_double_math_on_this_cpu" = x"yes"; then + AC_DEFINE(HAVE_ACOSL) + AC_DEFINE(HAVE_ASINL) + AC_DEFINE(HAVE_ATAN2L) + AC_DEFINE(HAVE_ATANL) + AC_DEFINE(HAVE_CEILL) + AC_DEFINE(HAVE_COPYSIGNL) + AC_DEFINE(HAVE_COSL) + AC_DEFINE(HAVE_COSHL) + AC_DEFINE(HAVE_EXPL) + AC_DEFINE(HAVE_FABSL) + AC_DEFINE(HAVE_FLOORL) + AC_DEFINE(HAVE_FMODL) + AC_DEFINE(HAVE_FREXPL) + AC_DEFINE(HAVE_LDEXPL) + AC_DEFINE(HAVE_LOG10L) + AC_DEFINE(HAVE_LOGL) + AC_DEFINE(HAVE_MODFL) + AC_DEFINE(HAVE_POWL) + AC_DEFINE(HAVE_SINCOSL) + AC_DEFINE(HAVE_SINL) + AC_DEFINE(HAVE_SINHL) + AC_DEFINE(HAVE_SQRTL) + AC_DEFINE(HAVE_TANL) + AC_DEFINE(HAVE_TANHL) + fi + +else + + # We are being configured natively. We can do more elaborate tests that + # include AC_TRY_COMPILE now, as the linker is assumed to be working. + GLIBCXX_IS_NATIVE=true + CANADIAN=no + + # Check for available headers. + AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \ + machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h \ + sys/types.h]) + + GLIBCXX_CHECK_COMPILER_FEATURES + GLIBCXX_CHECK_LINKER_FEATURES + GLIBCXX_CHECK_MATH_SUPPORT + GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT + GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT + GLIBCXX_CHECK_WCHAR_T_SUPPORT + GLIBCXX_CHECK_STDLIB_SUPPORT + + # For showmanyc_helper(). + AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h) + GLIBCXX_CHECK_POLL + GLIBCXX_CHECK_S_ISREG_OR_S_IFREG + + # For xsputn_2(). + AC_CHECK_HEADERS(sys/uio.h) + GLIBCXX_CHECK_WRITEV + + AC_LC_MESSAGES + + AC_TRY_COMPILE( + [#include ], + [sigjmp_buf env; + while (! sigsetjmp (env, 1)) + siglongjmp (env, 1); + ], + [AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available.])]) + + AC_FUNC_MMAP +fi + +# This depends on GLIBCXX CHECK_LINKER_FEATURES, but without it assumes no. +GLIBCXX_ENABLE_SYMVERS([yes]) + +# This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE. +GLIBCXX_CONFIGURE_TESTSUITE + +# Propagate the target-specific source directories through the build chain. +# (Nothing currently uses cpu_include_dir directly; only atomicity_include_dir +# uses it, and it only gets used in this file.) +ATOMICITY_INC_SRCDIR=config/${atomicity_include_dir} +OS_INC_SRCDIR=config/${os_include_dir} +FPOS_INC_SRCDIR=config/${fpos_include_dir} +AC_SUBST(ATOMICITY_INC_SRCDIR) +AC_SUBST(FPOS_INC_SRCDIR) +AC_SUBST(OS_INC_SRCDIR) + +# Determine cross-compile flags and AM_CONDITIONALs. +#AC_SUBST(GLIBCXX_IS_NATIVE) +AM_CONDITIONAL(CANADIAN, test $CANADIAN = yes) +# from GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT: +AM_CONDITIONAL(GLIBCXX_BUILD_LIBMATH, test $need_libmath = yes) + +AC_CACHE_SAVE + +if test ${multilib} = yes; then + multilib_arg="--enable-multilib" +else + multilib_arg= +fi + +# Export all the install information +GLIBCXX_EXPORT_INSTALL_INFO + +# Export all the include and flag information to Makefiles. +GLIBCXX_EXPORT_INCLUDES +GLIBCXX_EXPORT_FLAGS + +if ${CONFIG_SHELL-/bin/sh} ./libtool --tag CXX --features | + grep "enable shared" > /dev/null; +then + LIBSUPCXX_PICFLAGS=-prefer-pic +else + LIBSUPCXX_PICFLAGS= +fi +AC_SUBST(LIBSUPCXX_PICFLAGS) + +dnl In autoconf 2.5x, AC_OUTPUT is replaced by four AC_CONFIG_* macros, +dnl which can all be called multiple times as needed, plus one (different) +dnl AC_OUPUT macro. This one lists the files to be created: +AC_CONFIG_FILES([ \ + Makefile \ + include/Makefile \ + libmath/Makefile \ + libsupc++/Makefile \ + po/Makefile \ + src/Makefile \ + testsuite/Makefile \ + ]) +AC_CONFIG_FILES([scripts/check_survey],[chmod +x scripts/check_survey]) +AC_CONFIG_FILES([scripts/testsuite_flags],[chmod +x scripts/testsuite_flags]) + +dnl These commands are run at the end of config.status: +AC_CONFIG_COMMANDS([default], +[if test -n "$CONFIG_FILES"; then + # Multilibs need MULTISUBDIR defined correctly in certain makefiles so + # that multilib installs will end up installed in the correct place. + # The testsuite needs it for multilib-aware ABI baseline files. + # To work around this not being passed down from config-ml.in -> + # srcdir/Makefile.am -> srcdir/{src,libsupc++,...}/Makefile.am, manually + # append it here. Only modify Makefiles that have just been created. + for i in src libsupc++ testsuite; do + case $CONFIG_FILES in + *${i}/Makefile*) + #echo "Adding MULTISUBDIR to $i/Makefile" + grep '^MULTISUBDIR =' Makefile >> $i/Makefile + ;; + esac + done + fi + (cd include && ${MAKE-make}) +], +[ +# No init-vars needed so far which aren't already passed by autoconf. +]) + +dnl And this actually makes things happen: +AC_OUTPUT + diff --git a/libstdc++-v3/configure.in b/libstdc++-v3/configure.in deleted file mode 100644 index 5450c534e2a..00000000000 --- a/libstdc++-v3/configure.in +++ /dev/null @@ -1,335 +0,0 @@ -# Process this file with autoconf to produce a configure script, like so: -# aclocal && autoconf && autoheader && automake - -AC_PREREQ(2.57) -AC_INIT(libstdc++, version-unused) -AC_CONFIG_SRCDIR(src/ios.cc) -AC_CONFIG_HEADER(config.h) - -# This works around the fact that libtool configuration may change LD -# for this particular configuration, but some shells, instead of -# keeping the changes in LD private, export them just because LD is -# exported. Only used at the end of this file. -### am handles this now? ORIGINAL_LD_FOR_MULTILIBS=$LD - -# For libtool versioning info, format is CURRENT:REVISION:AGE -libtool_VERSION=6:0:0 -AC_SUBST(libtool_VERSION) - -# Find the rest of the source tree framework. -GLIBCXX_TOPREL_CONFIGURE - -# Gets build, host, target, *_vendor, *_cpu, *_os, etc. -# -# You will slowly go insane if you do not grok the following fact: when -# building v3 as part of the compiler, the top-level /target/ becomes the -# library's /host/. configure then causes --target to default to --host, -# exactly like any other package using autoconf. Therefore, 'target' and -# 'host' will always be the same. This makes sense both for native and -# cross compilers, just think about it for a little while. :-) -# -# Also, if v3 is being configured as part of a cross compiler, the top-level -# configure script will pass the "real" host as $with_cross_host. -# -# Do not delete or change the following two lines. For why, see -# http://gcc.gnu.org/ml/libstdc++/2003-07/msg00451.html -AC_CANONICAL_SYSTEM -target_alias=${target_alias-$host_alias} - -# Handy for debugging: -#AC_MSG_NOTICE($build / $host / $target / $host_alias / $target_alias); sleep 5 - -# Sets up automake. Must come after AC_CANONICAL_SYSTEM. Each of the -# following is magically included in AUTOMAKE_OPTIONS in each Makefile.am. -# 1.x: minimum required version -# no-define: PACKAGE and VERSION will not be #define'd in config.h (a bunch -# of other PACKAGE_* variables will, however, and there's nothing -# we can do about that) -# foreign: we don't follow the normal rules for GNU packages (no COPYING -# file in the top srcdir, etc, etc), so stop complaining. -# no-dependencies: turns off auto dependency generation (just for now) -# -Wall: turns on all automake warnings -AM_INIT_AUTOMAKE([1.7.6 no-define foreign no-dependencies -Wall]) - -# AM_INIT_AUTOMAKE sets this to the "smashed" format. Calling the library -# "libstdc--" causes remarkable amounts of breakage. Thanks, automake. -PACKAGE='libstdc++' - -# Runs configure.host, finds CC, CXX, and assorted other critical bits. Sets -# up critical shell variables. -GLIBCXX_CONFIGURE - -#AC_MSG_NOTICE([====== Starting libtool configuration]) -AC_LIBTOOL_DLOPEN -AM_PROG_LIBTOOL -AC_SUBST(enable_shared) -AC_SUBST(enable_static) -#AC_MSG_NOTICE([====== Finished libtool configuration]) ; sleep 10 - -# Check for support bits and g++ features that don't require linking. -GLIBCXX_ENABLE_SJLJ_EXCEPTIONS -GLIBCXX_ENABLE_LIBUNWIND_EXCEPTIONS -GLIBCXX_ENABLE_PCH([yes]) - -# Enable all the variable C++ runtime options. -# NB: C_MBCHAR must come early. -GLIBCXX_ENABLE_CSTDIO -GLIBCXX_ENABLE_CLOCALE -GLIBCXX_ENABLE_CHEADERS($c_model) dnl c_model from configure.host -GLIBCXX_ENABLE_C_MBCHAR([yes]) -GLIBCXX_ENABLE_C99([yes]) -GLIBCXX_ENABLE_LONG_LONG([yes]) -GLIBCXX_ENABLE_THREADS -GLIBCXX_ENABLE_CONCEPT_CHECKS([no]) -GLIBCXX_ENABLE_DEBUG_FLAGS(["-g3 -O0"]) -GLIBCXX_ENABLE_DEBUG([no]) -GLIBCXX_ENABLE_CXX_FLAGS - -# No surprises, no surprises... -if test $atomicity_include_dir = cpu/generic ; then - AC_MSG_WARN([No native atomic operations are provided for this platform.]) - if test $target_thread_file = single; then - AC_MSG_WARN([They cannot be faked when thread support is disabled.]) - AC_MSG_WARN([Thread-safety of certain classes is not guaranteed.]) - else - AC_MSG_WARN([They will be faked using a mutex.]) - AC_MSG_WARN([Performance of certain classes will degrade as a result.]) - fi -fi - - -if test "$build" != "$host"; then - - # We are being configured with some form of cross compiler. - GLIBCXX_IS_NATIVE=false - - # This lets us hard-code the functionality we know we'll have in the cross - # target environment. "Let" is a sugar-coated word placed on an especially - # dull and tedious hack, actually. - # - # Here's why GLIBCXX_CHECK_MATH_SUPPORT, and other autoconf macros - # that involve linking, can't be used: - # "cannot open sim-crt0.o" - # "cannot open crt0.o" - # etc. All this is because there currently exists no unified, consistent - # way for top level CC information to be passed down to target directories: - # newlib includes, newlib linking info, libgloss versus newlib crt0.o, etc. - # When all of that is done, all of this hokey, excessive AC_DEFINE junk for - # crosses can be removed. - - # If Canadian cross, then don't pick up tools from the build directory. - # Used in GLIBCXX_EXPORT_INCLUDES (and nowhere else?). - if test -n "$with_cross_host" && - test x"$build" != x"$with_cross_host" && - test x"$build" != x"$target"; - then - CANADIAN=yes - else - CANADIAN=no - fi - - # Construct crosses by hand, eliminating bits that need ld... - # GLIBCXX_CHECK_COMPILER_FEATURES - # GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT - # GLIBCXX_CHECK_MATH_SUPPORT - - # First, test for "known" system libraries. We may be using newlib even - # on a hosted environment. - if test "x${with_newlib}" = "xyes"; then - os_include_dir="os/newlib" - AC_DEFINE(HAVE_HYPOT) - - # GLIBCXX_CHECK_STDLIB_SUPPORT - AC_DEFINE(HAVE_STRTOF) - AC_DEFINE(HAVE_STRTOLD) - # AC_FUNC_MMAP - AC_DEFINE(HAVE_MMAP) - - AC_DEFINE(HAVE_ACOSF) - AC_DEFINE(HAVE_ASINF) - AC_DEFINE(HAVE_ATAN2F) - AC_DEFINE(HAVE_ATANF) - AC_DEFINE(HAVE_CEILF) - AC_DEFINE(HAVE_COPYSIGN) - AC_DEFINE(HAVE_COPYSIGNF) - AC_DEFINE(HAVE_COSF) - AC_DEFINE(HAVE_COSHF) - AC_DEFINE(HAVE_EXPF) - AC_DEFINE(HAVE_FABSF) - AC_DEFINE(HAVE_FLOORF) - AC_DEFINE(HAVE_FMODF) - AC_DEFINE(HAVE_FREXPF) - AC_DEFINE(HAVE_LDEXPF) - AC_DEFINE(HAVE_LOG10F) - AC_DEFINE(HAVE_LOGF) - AC_DEFINE(HAVE_MODFF) - AC_DEFINE(HAVE_POWF) - AC_DEFINE(HAVE_SINF) - AC_DEFINE(HAVE_SINHF) - AC_DEFINE(HAVE_SQRTF) - AC_DEFINE(HAVE_TANF) - AC_DEFINE(HAVE_TANHF) - else - m4_include([crossconfig.m4]) - fi - - # At some point, we should differentiate between architectures - # like x86, which have long double versions, and alpha/powerpc/etc., - # which don't. For the time being, punt. - if test x"long_double_math_on_this_cpu" = x"yes"; then - AC_DEFINE(HAVE_ACOSL) - AC_DEFINE(HAVE_ASINL) - AC_DEFINE(HAVE_ATAN2L) - AC_DEFINE(HAVE_ATANL) - AC_DEFINE(HAVE_CEILL) - AC_DEFINE(HAVE_COPYSIGNL) - AC_DEFINE(HAVE_COSL) - AC_DEFINE(HAVE_COSHL) - AC_DEFINE(HAVE_EXPL) - AC_DEFINE(HAVE_FABSL) - AC_DEFINE(HAVE_FLOORL) - AC_DEFINE(HAVE_FMODL) - AC_DEFINE(HAVE_FREXPL) - AC_DEFINE(HAVE_LDEXPL) - AC_DEFINE(HAVE_LOG10L) - AC_DEFINE(HAVE_LOGL) - AC_DEFINE(HAVE_MODFL) - AC_DEFINE(HAVE_POWL) - AC_DEFINE(HAVE_SINCOSL) - AC_DEFINE(HAVE_SINL) - AC_DEFINE(HAVE_SINHL) - AC_DEFINE(HAVE_SQRTL) - AC_DEFINE(HAVE_TANL) - AC_DEFINE(HAVE_TANHL) - fi - -else - - # We are being configured natively. We can do more elaborate tests that - # include AC_TRY_COMPILE now, as the linker is assumed to be working. - GLIBCXX_IS_NATIVE=true - CANADIAN=no - - # Check for available headers. - AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \ - machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h \ - sys/types.h]) - - GLIBCXX_CHECK_COMPILER_FEATURES - GLIBCXX_CHECK_LINKER_FEATURES - GLIBCXX_CHECK_MATH_SUPPORT - GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT - GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT - GLIBCXX_CHECK_WCHAR_T_SUPPORT - GLIBCXX_CHECK_STDLIB_SUPPORT - - # For showmanyc_helper(). - AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h) - GLIBCXX_CHECK_POLL - GLIBCXX_CHECK_S_ISREG_OR_S_IFREG - - # For xsputn_2(). - AC_CHECK_HEADERS(sys/uio.h) - GLIBCXX_CHECK_WRITEV - - AC_LC_MESSAGES - - AC_TRY_COMPILE( - [#include ], - [sigjmp_buf env; - while (! sigsetjmp (env, 1)) - siglongjmp (env, 1); - ], - [AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available.])]) - - AC_FUNC_MMAP -fi - -# This depends on GLIBCXX CHECK_LINKER_FEATURES, but without it assumes no. -GLIBCXX_ENABLE_SYMVERS([yes]) - -# This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE. -GLIBCXX_CONFIGURE_TESTSUITE - -# Propagate the target-specific source directories through the build chain. -# (Nothing currently uses cpu_include_dir directly; only atomicity_include_dir -# uses it, and it only gets used in this file.) -ATOMICITY_INC_SRCDIR=config/${atomicity_include_dir} -OS_INC_SRCDIR=config/${os_include_dir} -FPOS_INC_SRCDIR=config/${fpos_include_dir} -AC_SUBST(ATOMICITY_INC_SRCDIR) -AC_SUBST(FPOS_INC_SRCDIR) -AC_SUBST(OS_INC_SRCDIR) - -# Determine cross-compile flags and AM_CONDITIONALs. -#AC_SUBST(GLIBCXX_IS_NATIVE) -AM_CONDITIONAL(CANADIAN, test $CANADIAN = yes) -# from GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT: -AM_CONDITIONAL(GLIBCXX_BUILD_LIBMATH, test $need_libmath = yes) - -AC_CACHE_SAVE - -if test ${multilib} = yes; then - multilib_arg="--enable-multilib" -else - multilib_arg= -fi - -# Export all the install information -GLIBCXX_EXPORT_INSTALL_INFO - -# Export all the include and flag information to Makefiles. -GLIBCXX_EXPORT_INCLUDES -GLIBCXX_EXPORT_FLAGS - -if ${CONFIG_SHELL-/bin/sh} ./libtool --tag CXX --features | - grep "enable shared" > /dev/null; -then - LIBSUPCXX_PICFLAGS=-prefer-pic -else - LIBSUPCXX_PICFLAGS= -fi -AC_SUBST(LIBSUPCXX_PICFLAGS) - -dnl In autoconf 2.5x, AC_OUTPUT is replaced by four AC_CONFIG_* macros, -dnl which can all be called multiple times as needed, plus one (different) -dnl AC_OUPUT macro. This one lists the files to be created: -AC_CONFIG_FILES([ \ - Makefile \ - include/Makefile \ - libmath/Makefile \ - libsupc++/Makefile \ - po/Makefile \ - src/Makefile \ - testsuite/Makefile \ - ]) -AC_CONFIG_FILES([scripts/check_survey],[chmod +x scripts/check_survey]) -AC_CONFIG_FILES([scripts/testsuite_flags],[chmod +x scripts/testsuite_flags]) - -dnl These commands are run at the end of config.status: -AC_CONFIG_COMMANDS([default], -[if test -n "$CONFIG_FILES"; then - # Multilibs need MULTISUBDIR defined correctly in certain makefiles so - # that multilib installs will end up installed in the correct place. - # The testsuite needs it for multilib-aware ABI baseline files. - # To work around this not being passed down from config-ml.in -> - # srcdir/Makefile.am -> srcdir/{src,libsupc++,...}/Makefile.am, manually - # append it here. Only modify Makefiles that have just been created. - for i in src libsupc++ testsuite; do - case $CONFIG_FILES in - *${i}/Makefile*) - #echo "Adding MULTISUBDIR to $i/Makefile" - grep '^MULTISUBDIR =' Makefile >> $i/Makefile - ;; - esac - done - fi - (cd include && ${MAKE-make}) -], -[ -# No init-vars needed so far which aren't already passed by autoconf. -]) - -dnl And this actually makes things happen: -AC_OUTPUT - diff --git a/libstdc++-v3/docs/html/17_intro/porting.html b/libstdc++-v3/docs/html/17_intro/porting.html index fb4682c8c2c..b0275592d30 100644 --- a/libstdc++-v3/docs/html/17_intro/porting.html +++ b/libstdc++-v3/docs/html/17_intro/porting.html @@ -3,8 +3,7 @@ Porting libstdc++-v3 - - + + +

Porting libstdc++-v3


-Node:Top, -Next:, -Up:(dir) +Node: Top, +Next: , +Up: (dir)

Porting libstdc++-v3

-

This document explains how to port libstdc++-v3 (the GNU C++ library) to +

This document explains how to port libstdc++-v3 (the GNU C++ library) to a new target.

In order to make the GNU C++ library (libstdc++-v3) work with a new @@ -57,7 +65,7 @@ works. It is difficult to test the C++ compiler without a working library, but you should at least try some minimal test cases.

(Note that what we think of as a "target," the library refers to as -a "host." The comment at the top of configure.in explains why.) +a "host." The comment at the top of configure.ac explains why.)

Here are the primary steps required to port the library: @@ -73,16 +81,16 @@ a "host." The comment at the top of configure.in explains why.)


-Node:Operating system, -Next:, -Previous:Top, -Up:Top +Node: Operating system, +Next: , +Previous: Top, +Up: Top

Operating system

-

If you are porting to a new operating system (as opposed to a new chip +

If you are porting to a new operating system (as opposed to a new chip using an existing operating system), you will need to create a new directory in the config/os hierarchy. For example, the IRIX configuration files are all in config/os/irix. There is no set @@ -191,16 +199,16 @@ starting point.


-Node:CPU, -Next:, -Previous:Operating system, -Up:Top +Node: CPU, +Next: , +Previous: Operating system, +Up: Top

CPU

-

If you are porting to a new chip (as opposed to a new operating system +

If you are porting to a new chip (as opposed to a new operating system running on an existing chip), you will need to create a new directory in the config/cpu hierarchy. Much like the Operating system setup, there are no strict rules on how to organize the CPU configuration @@ -224,16 +232,16 @@ appropriate for your chip.


-Node:Character types, -Next:, -Previous:CPU, -Up:Top +Node: Character types, +Next: , +Previous: CPU, +Up: Top

Character types

-

The library requires that you provide three header files to implement +

The library requires that you provide three header files to implement character classification, analogous to that provided by the C libraries <ctype.h> header. You can model these on the files provided in config/os/generic. However, these files will almost @@ -421,16 +429,16 @@ from __low up until __high into the vector given by


-Node:Thread safety, -Next:, -Previous:Character types, -Up:Top +Node: Thread safety, +Next: , +Previous: Character types, +Up: Top

Thread safety

-

The C++ library string functionality requires a couple of atomic +

The C++ library string functionality requires a couple of atomic operations to provide thread-safety. If you don't take any special action, the library will use stub versions of these functions that are not thread-safe. They will work fine, unless your applications are @@ -498,16 +506,16 @@ must be equivalent to those provided here, but using atomic operations:


-Node:Numeric limits, -Next:, -Previous:Thread safety, -Up:Top +Node: Numeric limits, +Next: , +Previous: Thread safety, +Up: Top

Numeric limits

-

The C++ library requires information about the fundamental data types, +

The C++ library requires information about the fundamental data types, such as the minimum and maximum representable values of each type. You can define each of these values individually, but it is usually easiest just to indicate how many bits are used in each of the data @@ -523,16 +531,16 @@ your CPU configuration directory (see CPU).


-Node:Libtool, -Next:, -Previous:Numeric limits, -Up:Top +Node: Libtool, +Next: , +Previous: Numeric limits, +Up: Top

Libtool

-

The C++ library is compiled, archived and linked with libtool. +

The C++ library is compiled, archived and linked with libtool. Explaining the full workings of libtool is beyond the scope of this document, but there are a few, particular bits that are necessary for porting. @@ -561,9 +569,9 @@ operating system.


-Node:GNU Free Documentation License, -Previous:Libtool, -Up:Top +Node: GNU Free Documentation License, +Previous: Libtool, +Up: Top
@@ -947,7 +955,7 @@ as a draft) by the Free Software Foundation.

ADDENDUM: How to use this License for your documents

-

To use this License in a document you have written, include a copy of +

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: diff --git a/libstdc++-v3/docs/html/17_intro/porting.texi b/libstdc++-v3/docs/html/17_intro/porting.texi index ed4042f932d..988c2c2203a 100644 --- a/libstdc++-v3/docs/html/17_intro/porting.texi +++ b/libstdc++-v3/docs/html/17_intro/porting.texi @@ -75,7 +75,7 @@ works. It is difficult to test the C++ compiler without a working library, but you should at least try some minimal test cases. (Note that what we think of as a ``target,'' the library refers to as -a ``host.'' The comment at the top of @file{configure.in} explains why.) +a ``host.'' The comment at the top of @file{configure.ac} explains why.) Here are the primary steps required to port the library: diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in index 1627a2110e0..64363ca278d 100644 --- a/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in @@ -576,7 +576,7 @@ DIST_COMMON = Makefile.am Makefile.in all: all-am .SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --foreign include/Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status diff --git a/libstdc++-v3/libmath/Makefile.in b/libstdc++-v3/libmath/Makefile.in index 68a1f14817f..56c9c7b9877 100644 --- a/libstdc++-v3/libmath/Makefile.in +++ b/libstdc++-v3/libmath/Makefile.in @@ -248,7 +248,7 @@ all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --foreign libmath/Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in index 5c90aaa5485..c0f98a8ecf6 100644 --- a/libstdc++-v3/libsupc++/Makefile.in +++ b/libstdc++-v3/libsupc++/Makefile.in @@ -372,7 +372,7 @@ all: all-am .SUFFIXES: .SUFFIXES: .cc .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --foreign libsupc++/Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in index 7db3adf39f8..d51c7ad5546 100644 --- a/libstdc++-v3/po/Makefile.in +++ b/libstdc++-v3/po/Makefile.in @@ -237,7 +237,7 @@ all: all-am .SUFFIXES: .SUFFIXES: .po .mo -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --foreign po/Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in index 966c914b4ab..ac98e9fc2e1 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -391,7 +391,7 @@ all: all-am .SUFFIXES: .SUFFIXES: .cc .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in index af29cd66a9c..374af040f1a 100644 --- a/libstdc++-v3/testsuite/Makefile.in +++ b/libstdc++-v3/testsuite/Makefile.in @@ -297,7 +297,7 @@ all: all-am .SUFFIXES: .SUFFIXES: .cc .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --foreign testsuite/Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status