mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-21 16:26:12 +08:00
2006-12-19 Paolo Bonzini <bonzini@gnu.org>
Sync with gcc: 2006-12-19 Paolo Bonzini <bonzini@gnu.org> * configure.in: Remove "$build" case for powerpc-*-darwin* since it only affects bootstrap and could be tested on "$host" as well. * configure: Regenerate. * config/mh-ppc-darwin: Add to the stage1 cflags here. 2006-12-19 Paolo Bonzini <bonzini@gnu.org> PR bootstrap/29544 * Makefile.def (flags_to_pass): Add STAGE1_CHECKING. (bootstrap_stage): Add STAGE1_CHECKING to stage1 configure flags, move here comment from Makefile.tpl. * Makefile.tpl: Move some definitions higher in the file. (STAGE1_CHECKING): New. * configure.in: Add --enable-stage1-checking. * configure: Regenerate. * Makefile.in: Regenerate. 2006-12-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * configure.in: Update error message for missing GMP/MPFR. * configure: Regenerate. 2006-12-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * configure.in: Update MPFR version in error message. * configure: Regenerate. 2006-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * configure.in (--with-mpfr-dir, --with-gmp-dir): Remove flags. (--with-mpfr-include, --with-mpfr-lib, --with-gmp-include, --with-gmp-lib): New flags. * configure: Regenerate. config: 2006-12-04 Eric Botcazou <ebotcazou@libertysurf.fr> * tls.m4 (GCC_CHECK_TLS): Do not test TLS with static linking if static linking doesn't even work.
This commit is contained in:
parent
94f3d96815
commit
14a1406e83
43
ChangeLog
43
ChangeLog
@ -1,3 +1,46 @@
|
|||||||
|
2006-12-19 Paolo Bonzini <bonzini@gnu.org>
|
||||||
|
|
||||||
|
Sync with gcc:
|
||||||
|
|
||||||
|
2006-12-19 Paolo Bonzini <bonzini@gnu.org>
|
||||||
|
|
||||||
|
* configure.in: Remove "$build" case for powerpc-*-darwin* since
|
||||||
|
it only affects bootstrap and could be tested on "$host" as well.
|
||||||
|
* configure: Regenerate.
|
||||||
|
* config/mh-ppc-darwin: Add to the stage1 cflags here.
|
||||||
|
|
||||||
|
2006-12-19 Paolo Bonzini <bonzini@gnu.org>
|
||||||
|
|
||||||
|
PR bootstrap/29544
|
||||||
|
* Makefile.def (flags_to_pass): Add STAGE1_CHECKING.
|
||||||
|
(bootstrap_stage): Add STAGE1_CHECKING to stage1 configure flags,
|
||||||
|
move here comment from Makefile.tpl.
|
||||||
|
* Makefile.tpl: Move some definitions higher in the file.
|
||||||
|
(STAGE1_CHECKING): New.
|
||||||
|
* configure.in: Add --enable-stage1-checking.
|
||||||
|
* configure: Regenerate.
|
||||||
|
* Makefile.in: Regenerate.
|
||||||
|
|
||||||
|
2006-12-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||||
|
|
||||||
|
* configure.in: Update error message for missing GMP/MPFR.
|
||||||
|
|
||||||
|
* configure: Regenerate.
|
||||||
|
|
||||||
|
2006-12-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||||
|
|
||||||
|
* configure.in: Update MPFR version in error message.
|
||||||
|
|
||||||
|
* configure: Regenerate.
|
||||||
|
|
||||||
|
2006-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||||
|
|
||||||
|
* configure.in (--with-mpfr-dir, --with-gmp-dir): Remove flags.
|
||||||
|
(--with-mpfr-include, --with-mpfr-lib, --with-gmp-include,
|
||||||
|
--with-gmp-lib): New flags.
|
||||||
|
|
||||||
|
* configure: Regenerate.
|
||||||
|
|
||||||
2006-12-12 Andreas Tobler <a.tobler@schweiz.org>
|
2006-12-12 Andreas Tobler <a.tobler@schweiz.org>
|
||||||
|
|
||||||
PR bootstrap/30134
|
PR bootstrap/30134
|
||||||
|
10
Makefile.def
10
Makefile.def
@ -226,6 +226,7 @@ flags_to_pass = { flag= LDFLAGS ; };
|
|||||||
flags_to_pass = { flag= LIBCFLAGS ; };
|
flags_to_pass = { flag= LIBCFLAGS ; };
|
||||||
flags_to_pass = { flag= LIBCXXFLAGS ; };
|
flags_to_pass = { flag= LIBCXXFLAGS ; };
|
||||||
flags_to_pass = { flag= STAGE1_CFLAGS ; };
|
flags_to_pass = { flag= STAGE1_CFLAGS ; };
|
||||||
|
flags_to_pass = { flag= STAGE1_CHECKING ; };
|
||||||
flags_to_pass = { flag= STAGE1_LANGUAGES ; };
|
flags_to_pass = { flag= STAGE1_LANGUAGES ; };
|
||||||
|
|
||||||
// Target tools
|
// Target tools
|
||||||
@ -487,7 +488,14 @@ dependencies = { module=all-target-winsup; on=all-target-libtermcap; };
|
|||||||
// Toplevel bootstrap
|
// Toplevel bootstrap
|
||||||
bootstrap_stage = {
|
bootstrap_stage = {
|
||||||
id=1 ;
|
id=1 ;
|
||||||
stage_configure_flags='--disable-intermodule \
|
|
||||||
|
// * We force-disable intermodule optimizations, even if
|
||||||
|
// --enable-intermodule was passed, since the installed compiler
|
||||||
|
// probably can't handle them. Luckily, autoconf always respects
|
||||||
|
// the last argument when conflicting --enable arguments are passed.
|
||||||
|
// * Likewise, we force-disable coverage flags, since the installed
|
||||||
|
// compiler probably has never heard of them.
|
||||||
|
stage_configure_flags='--disable-intermodule $(STAGE1_CHECKING) \
|
||||||
--disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"' ;
|
--disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"' ;
|
||||||
stage_make_flags='CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"' ; };
|
stage_make_flags='CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"' ; };
|
||||||
bootstrap_stage = {
|
bootstrap_stage = {
|
||||||
|
70
Makefile.in
70
Makefile.in
@ -297,6 +297,16 @@ CXXFLAGS = @CXXFLAGS@
|
|||||||
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
|
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
|
||||||
PICFLAG =
|
PICFLAG =
|
||||||
|
|
||||||
|
# Only build the C compiler for stage1, because that is the only one that
|
||||||
|
# we can guarantee will build with the native compiler, and also it is the
|
||||||
|
# only thing useful for building stage2. STAGE1_CFLAGS (via CFLAGS),
|
||||||
|
# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
|
||||||
|
# overrideable (for a bootstrap build stage1 also builds gcc.info).
|
||||||
|
|
||||||
|
STAGE1_CFLAGS=@stage1_cflags@
|
||||||
|
STAGE1_CHECKING=@stage1_checking@
|
||||||
|
STAGE1_LANGUAGES=@stage1_languages@
|
||||||
|
|
||||||
# -----------------------------------------------
|
# -----------------------------------------------
|
||||||
# Programs producing files for the TARGET machine
|
# Programs producing files for the TARGET machine
|
||||||
# -----------------------------------------------
|
# -----------------------------------------------
|
||||||
@ -454,6 +464,7 @@ BASE_FLAGS_TO_PASS = \
|
|||||||
"LIBCFLAGS=$(LIBCFLAGS)" \
|
"LIBCFLAGS=$(LIBCFLAGS)" \
|
||||||
"LIBCXXFLAGS=$(LIBCXXFLAGS)" \
|
"LIBCXXFLAGS=$(LIBCXXFLAGS)" \
|
||||||
"STAGE1_CFLAGS=$(STAGE1_CFLAGS)" \
|
"STAGE1_CFLAGS=$(STAGE1_CFLAGS)" \
|
||||||
|
"STAGE1_CHECKING=$(STAGE1_CHECKING)" \
|
||||||
"STAGE1_LANGUAGES=$(STAGE1_LANGUAGES)" \
|
"STAGE1_LANGUAGES=$(STAGE1_LANGUAGES)" \
|
||||||
"AR_FOR_TARGET=$(AR_FOR_TARGET)" \
|
"AR_FOR_TARGET=$(AR_FOR_TARGET)" \
|
||||||
"AS_FOR_TARGET=$(AS_FOR_TARGET)" \
|
"AS_FOR_TARGET=$(AS_FOR_TARGET)" \
|
||||||
@ -513,6 +524,16 @@ X11_FLAGS_TO_PASS = \
|
|||||||
'X11_EXTRA_CFLAGS=$(X11_EXTRA_CFLAGS)' \
|
'X11_EXTRA_CFLAGS=$(X11_EXTRA_CFLAGS)' \
|
||||||
'X11_EXTRA_LIBS=$(X11_EXTRA_LIBS)'
|
'X11_EXTRA_LIBS=$(X11_EXTRA_LIBS)'
|
||||||
|
|
||||||
|
# Flags to pass to stage2 and later makes.
|
||||||
|
|
||||||
|
POSTSTAGE1_FLAGS_TO_PASS = \
|
||||||
|
CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \
|
||||||
|
STAGE_PREFIX="$$r/$(HOST_SUBDIR)/prev-gcc/" \
|
||||||
|
CFLAGS="$(BOOT_CFLAGS)" \
|
||||||
|
LIBCFLAGS="$(BOOT_CFLAGS)" \
|
||||||
|
LDFLAGS="$(BOOT_LDFLAGS)" \
|
||||||
|
"`echo 'ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"
|
||||||
|
|
||||||
# Flags to pass down to makes which are built with the target environment.
|
# Flags to pass down to makes which are built with the target environment.
|
||||||
# The double $ decreases the length of the command line; those variables
|
# The double $ decreases the length of the command line; those variables
|
||||||
# are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them. The
|
# are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them. The
|
||||||
@ -4473,7 +4494,7 @@ configure-stage1-bfd:
|
|||||||
$(SHELL) $${libsrcdir}/configure \
|
$(SHELL) $${libsrcdir}/configure \
|
||||||
$(HOST_CONFIGARGS) $${srcdiroption} \
|
$(HOST_CONFIGARGS) $${srcdiroption} \
|
||||||
\
|
\
|
||||||
--disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
--disable-intermodule $(STAGE1_CHECKING) --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
||||||
@endif bfd-bootstrap
|
@endif bfd-bootstrap
|
||||||
|
|
||||||
.PHONY: configure-stage2-bfd maybe-configure-stage2-bfd
|
.PHONY: configure-stage2-bfd maybe-configure-stage2-bfd
|
||||||
@ -5228,7 +5249,7 @@ configure-stage1-opcodes:
|
|||||||
$(SHELL) $${libsrcdir}/configure \
|
$(SHELL) $${libsrcdir}/configure \
|
||||||
$(HOST_CONFIGARGS) $${srcdiroption} \
|
$(HOST_CONFIGARGS) $${srcdiroption} \
|
||||||
\
|
\
|
||||||
--disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
--disable-intermodule $(STAGE1_CHECKING) --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
||||||
@endif opcodes-bootstrap
|
@endif opcodes-bootstrap
|
||||||
|
|
||||||
.PHONY: configure-stage2-opcodes maybe-configure-stage2-opcodes
|
.PHONY: configure-stage2-opcodes maybe-configure-stage2-opcodes
|
||||||
@ -5983,7 +6004,7 @@ configure-stage1-binutils:
|
|||||||
$(SHELL) $${libsrcdir}/configure \
|
$(SHELL) $${libsrcdir}/configure \
|
||||||
$(HOST_CONFIGARGS) $${srcdiroption} \
|
$(HOST_CONFIGARGS) $${srcdiroption} \
|
||||||
\
|
\
|
||||||
--disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
--disable-intermodule $(STAGE1_CHECKING) --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
||||||
@endif binutils-bootstrap
|
@endif binutils-bootstrap
|
||||||
|
|
||||||
.PHONY: configure-stage2-binutils maybe-configure-stage2-binutils
|
.PHONY: configure-stage2-binutils maybe-configure-stage2-binutils
|
||||||
@ -11795,7 +11816,7 @@ configure-stage1-gas:
|
|||||||
$(SHELL) $${libsrcdir}/configure \
|
$(SHELL) $${libsrcdir}/configure \
|
||||||
$(HOST_CONFIGARGS) $${srcdiroption} \
|
$(HOST_CONFIGARGS) $${srcdiroption} \
|
||||||
\
|
\
|
||||||
--disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
--disable-intermodule $(STAGE1_CHECKING) --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
||||||
@endif gas-bootstrap
|
@endif gas-bootstrap
|
||||||
|
|
||||||
.PHONY: configure-stage2-gas maybe-configure-stage2-gas
|
.PHONY: configure-stage2-gas maybe-configure-stage2-gas
|
||||||
@ -12550,7 +12571,7 @@ configure-stage1-gcc:
|
|||||||
$(SHELL) $${libsrcdir}/configure \
|
$(SHELL) $${libsrcdir}/configure \
|
||||||
$(HOST_CONFIGARGS) $${srcdiroption} \
|
$(HOST_CONFIGARGS) $${srcdiroption} \
|
||||||
\
|
\
|
||||||
--disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
--disable-intermodule $(STAGE1_CHECKING) --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
||||||
@endif gcc-bootstrap
|
@endif gcc-bootstrap
|
||||||
|
|
||||||
.PHONY: configure-stage2-gcc maybe-configure-stage2-gcc
|
.PHONY: configure-stage2-gcc maybe-configure-stage2-gcc
|
||||||
@ -16077,7 +16098,7 @@ configure-stage1-intl:
|
|||||||
$(SHELL) $${libsrcdir}/configure \
|
$(SHELL) $${libsrcdir}/configure \
|
||||||
$(HOST_CONFIGARGS) $${srcdiroption} \
|
$(HOST_CONFIGARGS) $${srcdiroption} \
|
||||||
\
|
\
|
||||||
--disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
--disable-intermodule $(STAGE1_CHECKING) --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
||||||
@endif intl-bootstrap
|
@endif intl-bootstrap
|
||||||
|
|
||||||
.PHONY: configure-stage2-intl maybe-configure-stage2-intl
|
.PHONY: configure-stage2-intl maybe-configure-stage2-intl
|
||||||
@ -17609,7 +17630,7 @@ configure-stage1-ld:
|
|||||||
$(SHELL) $${libsrcdir}/configure \
|
$(SHELL) $${libsrcdir}/configure \
|
||||||
$(HOST_CONFIGARGS) $${srcdiroption} \
|
$(HOST_CONFIGARGS) $${srcdiroption} \
|
||||||
\
|
\
|
||||||
--disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
--disable-intermodule $(STAGE1_CHECKING) --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
||||||
@endif ld-bootstrap
|
@endif ld-bootstrap
|
||||||
|
|
||||||
.PHONY: configure-stage2-ld maybe-configure-stage2-ld
|
.PHONY: configure-stage2-ld maybe-configure-stage2-ld
|
||||||
@ -18364,7 +18385,7 @@ configure-stage1-libcpp:
|
|||||||
$(SHELL) $${libsrcdir}/configure \
|
$(SHELL) $${libsrcdir}/configure \
|
||||||
$(HOST_CONFIGARGS) $${srcdiroption} \
|
$(HOST_CONFIGARGS) $${srcdiroption} \
|
||||||
\
|
\
|
||||||
--disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
--disable-intermodule $(STAGE1_CHECKING) --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
||||||
@endif libcpp-bootstrap
|
@endif libcpp-bootstrap
|
||||||
|
|
||||||
.PHONY: configure-stage2-libcpp maybe-configure-stage2-libcpp
|
.PHONY: configure-stage2-libcpp maybe-configure-stage2-libcpp
|
||||||
@ -19119,7 +19140,7 @@ configure-stage1-libdecnumber:
|
|||||||
$(SHELL) $${libsrcdir}/configure \
|
$(SHELL) $${libsrcdir}/configure \
|
||||||
$(HOST_CONFIGARGS) $${srcdiroption} \
|
$(HOST_CONFIGARGS) $${srcdiroption} \
|
||||||
\
|
\
|
||||||
--disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
--disable-intermodule $(STAGE1_CHECKING) --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
||||||
@endif libdecnumber-bootstrap
|
@endif libdecnumber-bootstrap
|
||||||
|
|
||||||
.PHONY: configure-stage2-libdecnumber maybe-configure-stage2-libdecnumber
|
.PHONY: configure-stage2-libdecnumber maybe-configure-stage2-libdecnumber
|
||||||
@ -20270,7 +20291,7 @@ configure-stage1-libiberty:
|
|||||||
$(SHELL) $${libsrcdir}/configure \
|
$(SHELL) $${libsrcdir}/configure \
|
||||||
$(HOST_CONFIGARGS) $${srcdiroption} \
|
$(HOST_CONFIGARGS) $${srcdiroption} \
|
||||||
\
|
\
|
||||||
--disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
--disable-intermodule $(STAGE1_CHECKING) --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
||||||
@endif libiberty-bootstrap
|
@endif libiberty-bootstrap
|
||||||
|
|
||||||
.PHONY: configure-stage2-libiberty maybe-configure-stage2-libiberty
|
.PHONY: configure-stage2-libiberty maybe-configure-stage2-libiberty
|
||||||
@ -30112,7 +30133,7 @@ configure-stage1-zlib:
|
|||||||
$(SHELL) $${libsrcdir}/configure \
|
$(SHELL) $${libsrcdir}/configure \
|
||||||
$(HOST_CONFIGARGS) $${srcdiroption} \
|
$(HOST_CONFIGARGS) $${srcdiroption} \
|
||||||
\
|
\
|
||||||
--disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
--disable-intermodule $(STAGE1_CHECKING) --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
|
||||||
@endif zlib-bootstrap
|
@endif zlib-bootstrap
|
||||||
|
|
||||||
.PHONY: configure-stage2-zlib maybe-configure-stage2-zlib
|
.PHONY: configure-stage2-zlib maybe-configure-stage2-zlib
|
||||||
@ -41843,36 +41864,9 @@ LEAN = false
|
|||||||
# 'touch' doesn't work right on some platforms.
|
# 'touch' doesn't work right on some platforms.
|
||||||
STAMP = echo timestamp >
|
STAMP = echo timestamp >
|
||||||
|
|
||||||
# Only build the C compiler for stage1, because that is the only one that
|
|
||||||
# we can guarantee will build with the native compiler, and also it is the
|
|
||||||
# only thing useful for building stage2. STAGE1_CFLAGS (via CFLAGS),
|
|
||||||
# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
|
|
||||||
# overrideable (for a bootstrap build stage1 also builds gcc.info).
|
|
||||||
|
|
||||||
STAGE1_CFLAGS=@stage1_cflags@
|
|
||||||
STAGE1_LANGUAGES=@stage1_languages@
|
|
||||||
|
|
||||||
# We only want to compare .o files, so set this!
|
# We only want to compare .o files, so set this!
|
||||||
objext = .o
|
objext = .o
|
||||||
|
|
||||||
# Flags to pass to stage2 and later makes.
|
|
||||||
POSTSTAGE1_FLAGS_TO_PASS = \
|
|
||||||
CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \
|
|
||||||
STAGE_PREFIX="$$r/$(HOST_SUBDIR)/prev-gcc/" \
|
|
||||||
CFLAGS="$(BOOT_CFLAGS)" \
|
|
||||||
LIBCFLAGS="$(BOOT_CFLAGS)" \
|
|
||||||
LDFLAGS="$(BOOT_LDFLAGS)" \
|
|
||||||
"`echo 'ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"
|
|
||||||
|
|
||||||
# For stage 1:
|
|
||||||
# * We force-disable intermodule optimizations, even if
|
|
||||||
# --enable-intermodule was passed, since the installed compiler probably
|
|
||||||
# can't handle them. Luckily, autoconf always respects
|
|
||||||
# the last argument when conflicting --enable arguments are passed.
|
|
||||||
# * Likewise, we force-disable coverage flags, since the installed compiler
|
|
||||||
# probably has never heard of them.
|
|
||||||
# * We build only C (and possibly Ada).
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY: stage1-start stage1-end
|
.PHONY: stage1-start stage1-end
|
||||||
|
|
||||||
|
47
Makefile.tpl
47
Makefile.tpl
@ -300,6 +300,16 @@ CXXFLAGS = @CXXFLAGS@
|
|||||||
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
|
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
|
||||||
PICFLAG =
|
PICFLAG =
|
||||||
|
|
||||||
|
# Only build the C compiler for stage1, because that is the only one that
|
||||||
|
# we can guarantee will build with the native compiler, and also it is the
|
||||||
|
# only thing useful for building stage2. STAGE1_CFLAGS (via CFLAGS),
|
||||||
|
# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
|
||||||
|
# overrideable (for a bootstrap build stage1 also builds gcc.info).
|
||||||
|
|
||||||
|
STAGE1_CFLAGS=@stage1_cflags@
|
||||||
|
STAGE1_CHECKING=@stage1_checking@
|
||||||
|
STAGE1_LANGUAGES=@stage1_languages@
|
||||||
|
|
||||||
# -----------------------------------------------
|
# -----------------------------------------------
|
||||||
# Programs producing files for the TARGET machine
|
# Programs producing files for the TARGET machine
|
||||||
# -----------------------------------------------
|
# -----------------------------------------------
|
||||||
@ -431,6 +441,16 @@ X11_FLAGS_TO_PASS = \
|
|||||||
'X11_EXTRA_CFLAGS=$(X11_EXTRA_CFLAGS)' \
|
'X11_EXTRA_CFLAGS=$(X11_EXTRA_CFLAGS)' \
|
||||||
'X11_EXTRA_LIBS=$(X11_EXTRA_LIBS)'
|
'X11_EXTRA_LIBS=$(X11_EXTRA_LIBS)'
|
||||||
|
|
||||||
|
# Flags to pass to stage2 and later makes.
|
||||||
|
|
||||||
|
POSTSTAGE1_FLAGS_TO_PASS = \
|
||||||
|
CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \
|
||||||
|
STAGE_PREFIX="$$r/$(HOST_SUBDIR)/prev-gcc/" \
|
||||||
|
CFLAGS="$(BOOT_CFLAGS)" \
|
||||||
|
LIBCFLAGS="$(BOOT_CFLAGS)" \
|
||||||
|
LDFLAGS="$(BOOT_LDFLAGS)" \
|
||||||
|
"`echo 'ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"
|
||||||
|
|
||||||
# Flags to pass down to makes which are built with the target environment.
|
# Flags to pass down to makes which are built with the target environment.
|
||||||
# The double $ decreases the length of the command line; those variables
|
# The double $ decreases the length of the command line; those variables
|
||||||
# are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them. The
|
# are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them. The
|
||||||
@ -1246,36 +1266,9 @@ LEAN = false
|
|||||||
# 'touch' doesn't work right on some platforms.
|
# 'touch' doesn't work right on some platforms.
|
||||||
STAMP = echo timestamp >
|
STAMP = echo timestamp >
|
||||||
|
|
||||||
# Only build the C compiler for stage1, because that is the only one that
|
|
||||||
# we can guarantee will build with the native compiler, and also it is the
|
|
||||||
# only thing useful for building stage2. STAGE1_CFLAGS (via CFLAGS),
|
|
||||||
# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
|
|
||||||
# overrideable (for a bootstrap build stage1 also builds gcc.info).
|
|
||||||
|
|
||||||
STAGE1_CFLAGS=@stage1_cflags@
|
|
||||||
STAGE1_LANGUAGES=@stage1_languages@
|
|
||||||
|
|
||||||
# We only want to compare .o files, so set this!
|
# We only want to compare .o files, so set this!
|
||||||
objext = .o
|
objext = .o
|
||||||
|
|
||||||
# Flags to pass to stage2 and later makes.
|
|
||||||
POSTSTAGE1_FLAGS_TO_PASS = \
|
|
||||||
CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \
|
|
||||||
STAGE_PREFIX="$$r/$(HOST_SUBDIR)/prev-gcc/" \
|
|
||||||
CFLAGS="$(BOOT_CFLAGS)" \
|
|
||||||
LIBCFLAGS="$(BOOT_CFLAGS)" \
|
|
||||||
LDFLAGS="$(BOOT_LDFLAGS)" \
|
|
||||||
"`echo 'ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"
|
|
||||||
|
|
||||||
# For stage 1:
|
|
||||||
# * We force-disable intermodule optimizations, even if
|
|
||||||
# --enable-intermodule was passed, since the installed compiler probably
|
|
||||||
# can't handle them. Luckily, autoconf always respects
|
|
||||||
# the last argument when conflicting --enable arguments are passed.
|
|
||||||
# * Likewise, we force-disable coverage flags, since the installed compiler
|
|
||||||
# probably has never heard of them.
|
|
||||||
# * We build only C (and possibly Ada).
|
|
||||||
|
|
||||||
[+ FOR bootstrap-stage +]
|
[+ FOR bootstrap-stage +]
|
||||||
.PHONY: stage[+id+]-start stage[+id+]-end
|
.PHONY: stage[+id+]-start stage[+id+]-end
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2006-12-04 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||||
|
|
||||||
|
* tls.m4 (GCC_CHECK_TLS): Do not test TLS with static linking
|
||||||
|
if static linking doesn't even work.
|
||||||
|
|
||||||
2006-11-13 Daniel Jacobowitz <dan@codesourcery.com>
|
2006-11-13 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
* tls.m4 (GCC_CHECK_TLS): Fall back to a link test.
|
* tls.m4 (GCC_CHECK_TLS): Fall back to a link test.
|
||||||
|
@ -4,3 +4,8 @@
|
|||||||
|
|
||||||
BOOT_CFLAGS=-g -O2 -mdynamic-no-pic
|
BOOT_CFLAGS=-g -O2 -mdynamic-no-pic
|
||||||
|
|
||||||
|
# The spiffy cpp-precomp chokes on some legitimate constructs in GCC
|
||||||
|
# sources; use -no-cpp-precomp to get to GNU cpp.
|
||||||
|
# Apple's GCC has bugs in designated initializer handling, so disable
|
||||||
|
# that too.
|
||||||
|
STAGE1_CFLAGS += -no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0
|
||||||
|
@ -5,12 +5,14 @@ AC_DEFUN([GCC_CHECK_TLS], [
|
|||||||
have_tls, [
|
have_tls, [
|
||||||
AC_RUN_IFELSE([__thread int a; int b; int main() { return a = b; }],
|
AC_RUN_IFELSE([__thread int a; int b; int main() { return a = b; }],
|
||||||
[dnl If the test case passed with dynamic linking, try again with
|
[dnl If the test case passed with dynamic linking, try again with
|
||||||
dnl static linking. This fails at least with some older Red Hat
|
dnl static linking, but only if static linking is supported (not
|
||||||
dnl releases.
|
dnl on Solaris 10). This fails with some older Red Hat releases.
|
||||||
save_LDFLAGS="$LDFLAGS"
|
save_LDFLAGS="$LDFLAGS"
|
||||||
LDFLAGS="-static $LDFLAGS"
|
LDFLAGS="-static $LDFLAGS"
|
||||||
AC_RUN_IFELSE([__thread int a; int b; int main() { return a = b; }],
|
AC_LINK_IFELSE([int main() { return 0; }],
|
||||||
[have_tls=yes], [have_tls=no], [])
|
AC_RUN_IFELSE([__thread int a; int b; int main() { return a = b; }],
|
||||||
|
[have_tls=yes], [have_tls=no],[]),
|
||||||
|
[have_tls=yes])
|
||||||
LDFLAGS="$save_LDFLAGS"],
|
LDFLAGS="$save_LDFLAGS"],
|
||||||
[have_tls=no],
|
[have_tls=no],
|
||||||
[AC_LINK_IFELSE([__thread int a; int b; int main() { return a = b; }],
|
[AC_LINK_IFELSE([__thread int a; int b; int main() { return a = b; }],
|
||||||
|
85
configure.in
85
configure.in
@ -1052,48 +1052,57 @@ ACX_PROG_GNAT
|
|||||||
ACX_PROG_CMP_IGNORE_INITIAL
|
ACX_PROG_CMP_IGNORE_INITIAL
|
||||||
|
|
||||||
# Check for GMP and MPFR
|
# Check for GMP and MPFR
|
||||||
gmplibs=
|
gmplibs="-lmpfr"
|
||||||
gmpinc=
|
gmpinc=
|
||||||
have_gmp=yes
|
have_gmp=yes
|
||||||
# Specify a location for mpfr
|
# Specify a location for mpfr
|
||||||
# check for this first so it ends up on the link line before gmp.
|
# check for this first so it ends up on the link line before gmp.
|
||||||
AC_ARG_WITH(mpfr-dir, [ --with-mpfr-dir=PATH Specify source directory for MPFR library])
|
AC_ARG_WITH(mpfr-dir, [ --with-mpfr-dir=PATH This option has been REMOVED],
|
||||||
|
AC_MSG_ERROR([The --with-mpfr-dir=PATH option has been removed.
|
||||||
|
Use --with-mpfr=PATH or --with-mpfr-include=PATH plus --with-mpfr-lib=PATH]))
|
||||||
|
|
||||||
if test "x$with_mpfr_dir" != x; then
|
AC_ARG_WITH(mpfr, [ --with-mpfr=PATH Specify prefix directory for installed MPFR package
|
||||||
gmpinc="-I$with_mpfr_dir"
|
Equivalent to --with-mpfr-include=PATH/include
|
||||||
gmplibs="$with_mpfr_dir/libmpfr.a"
|
plus --with-mpfr-lib=PATH/lib])
|
||||||
else
|
AC_ARG_WITH(mpfr_include, [ --with-mpfr-include=PATH
|
||||||
gmplibs="-lmpfr"
|
Specify directory for installed MPFR include files])
|
||||||
fi
|
AC_ARG_WITH(mpfr_lib, [ --with-mpfr-lib=PATH Specify the directory for the installed MPFR library])
|
||||||
|
|
||||||
AC_ARG_WITH(mpfr, [ --with-mpfr=PATH Specify directory for installed MPFR library])
|
|
||||||
|
|
||||||
if test "x$with_mpfr" != x; then
|
if test "x$with_mpfr" != x; then
|
||||||
gmplibs="-L$with_mpfr/lib $gmplibs"
|
gmplibs="-L$with_mpfr/lib $gmplibs"
|
||||||
gmpinc="-I$with_mpfr/include"
|
gmpinc="-I$with_mpfr/include"
|
||||||
fi
|
fi
|
||||||
|
if test "x$with_mpfr_include" != x; then
|
||||||
# Specify a location for gmp
|
gmpinc="-I$with_mpfr_include"
|
||||||
AC_ARG_WITH(gmp-dir, [ --with-gmp-dir=PATH Specify source directory for GMP library])
|
fi
|
||||||
|
if test "x$with_mpfr_lib" != x; then
|
||||||
if test "x$with_gmp_dir" != x; then
|
gmplibs="-L$with_mpfr_lib $gmplibs"
|
||||||
gmpinc="$gmpinc -I$with_gmp_dir"
|
|
||||||
if test -f "$with_gmp_dir/.libs/libgmp.a"; then
|
|
||||||
gmplibs="$gmplibs $with_gmp_dir/.libs/libgmp.a"
|
|
||||||
elif test -f "$with_gmp_dir/_libs/libgmp.a"; then
|
|
||||||
gmplibs="$gmplibs $with_gmp_dir/_libs/libgmp.a"
|
|
||||||
fi
|
|
||||||
# One of the later tests will catch the error if neither library is present.
|
|
||||||
else
|
|
||||||
gmplibs="$gmplibs -lgmp"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_ARG_WITH(gmp, [ --with-gmp=PATH Specify directory for installed GMP library])
|
# Specify a location for gmp
|
||||||
|
AC_ARG_WITH(gmp-dir, [ --with-gmp-dir=PATH This option has been REMOVED],
|
||||||
|
AC_MSG_ERROR([The --with-gmp-dir=PATH option has been removed.
|
||||||
|
Use --with-gmp=PATH or --with-gmp-include=PATH plus --with-gmp-lib=PATH]))
|
||||||
|
|
||||||
|
gmplibs="$gmplibs -lgmp"
|
||||||
|
|
||||||
|
AC_ARG_WITH(gmp, [ --with-gmp=PATH Specify prefix directory for the installed GMP package
|
||||||
|
Equivalent to --with-gmp-include=PATH/include
|
||||||
|
plus --with-gmp-lib=PATH/lib])
|
||||||
|
AC_ARG_WITH(gmp_include, [ --with-gmp-include=PATH Specify directory for installed GMP include files])
|
||||||
|
AC_ARG_WITH(gmp_lib, [ --with-gmp-lib=PATH Specify the directory for the installed GMP library])
|
||||||
|
|
||||||
|
|
||||||
if test "x$with_gmp" != x; then
|
if test "x$with_gmp" != x; then
|
||||||
gmplibs="-L$with_gmp/lib $gmplibs"
|
gmplibs="-L$with_gmp/lib $gmplibs"
|
||||||
gmpinc="-I$with_gmp/include $gmpinc"
|
gmpinc="-I$with_gmp/include $gmpinc"
|
||||||
fi
|
fi
|
||||||
|
if test "x$with_gmp_include" != x; then
|
||||||
|
gmpinc="-I$with_gmp_include $gmpinc"
|
||||||
|
fi
|
||||||
|
if test "x$with_gmp_lib" != x; then
|
||||||
|
gmplibs="-L$with_gmp_lib $gmplibs"
|
||||||
|
fi
|
||||||
|
|
||||||
saved_CFLAGS="$CFLAGS"
|
saved_CFLAGS="$CFLAGS"
|
||||||
CFLAGS="$CFLAGS $gmpinc"
|
CFLAGS="$CFLAGS $gmpinc"
|
||||||
@ -1121,11 +1130,14 @@ fi
|
|||||||
CFLAGS="$saved_CFLAGS"
|
CFLAGS="$saved_CFLAGS"
|
||||||
|
|
||||||
if test -d ${srcdir}/gcc && test x$have_gmp != xyes; then
|
if test -d ${srcdir}/gcc && test x$have_gmp != xyes; then
|
||||||
AC_MSG_ERROR([Building GCC requires GMP 4.1+ and MPFR 2.2+.
|
AC_MSG_ERROR([Building GCC requires GMP 4.1+ and MPFR 2.2.1+.
|
||||||
Try the --with-gmp and/or --with-mpfr options to specify their locations.
|
Try the --with-gmp and/or --with-mpfr options to specify their locations.
|
||||||
Copies of these libraries' source code can be found at their respective
|
Copies of these libraries' source code can be found at their respective
|
||||||
hosting sites as well as at ftp://gcc.gnu.org/pub/gcc/infrastructure/.
|
hosting sites as well as at ftp://gcc.gnu.org/pub/gcc/infrastructure/.
|
||||||
See also http://gcc.gnu.org/install/prerequisites.html for additional info.])
|
See also http://gcc.gnu.org/install/prerequisites.html for additional info.
|
||||||
|
If you obtained GMP and/or MPFR from a vendor distribution package, make
|
||||||
|
sure that you have installed both the libraries and the header files.
|
||||||
|
They may be located in separate packages.])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Flags needed for both GMP and/or MPFR
|
# Flags needed for both GMP and/or MPFR
|
||||||
@ -2391,13 +2403,6 @@ case $build in
|
|||||||
yes) stage1_cflags="-g -Wa,-J" ;;
|
yes) stage1_cflags="-g -Wa,-J" ;;
|
||||||
*) stage1_cflags="-g -J" ;;
|
*) stage1_cflags="-g -J" ;;
|
||||||
esac ;;
|
esac ;;
|
||||||
powerpc-*-darwin*)
|
|
||||||
# The spiffy cpp-precomp chokes on some legitimate constructs in GCC
|
|
||||||
# sources; use -no-cpp-precomp to get to GNU cpp.
|
|
||||||
# Apple's GCC has bugs in designated initializer handling, so disable
|
|
||||||
# that too.
|
|
||||||
stage1_cflags="-g -no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0"
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
|
# This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
|
||||||
@ -2416,6 +2421,18 @@ fi
|
|||||||
|
|
||||||
AC_SUBST(stage1_cflags)
|
AC_SUBST(stage1_cflags)
|
||||||
|
|
||||||
|
# Enable --enable-checking in stage1 of the compiler.
|
||||||
|
AC_ARG_ENABLE(stage1-checking,
|
||||||
|
[ --enable-stage1-checking[=all] choose additional checking for stage1
|
||||||
|
of the compiler.],
|
||||||
|
[stage1_checking=--enable-checking=${enable_stage1_checking}],
|
||||||
|
[if test "x$enable_checking" = xno; then
|
||||||
|
stage1_checking=--enable-checking
|
||||||
|
else
|
||||||
|
stage1_checking=--enable-checking${enable_checking+=}$enable_checking
|
||||||
|
fi])
|
||||||
|
AC_SUBST(stage1_checking)
|
||||||
|
|
||||||
# Enable -Werror in bootstrap stage2 and later.
|
# Enable -Werror in bootstrap stage2 and later.
|
||||||
# Change the default to "no" on release branches.
|
# Change the default to "no" on release branches.
|
||||||
AC_ARG_ENABLE(werror,
|
AC_ARG_ENABLE(werror,
|
||||||
|
@ -300,12 +300,6 @@ machine dependent files such as executables.
|
|||||||
The default for @samp{--prefix} is @file{/usr/local}. The default for
|
The default for @samp{--prefix} is @file{/usr/local}. The default for
|
||||||
@samp{--exec-prefix} is the value used for @samp{--prefix}.
|
@samp{--exec-prefix} is the value used for @samp{--prefix}.
|
||||||
|
|
||||||
The convention used in Cygnus releases is to use a @samp{--prefix}
|
|
||||||
option of @file{/usr/cygnus/@var{release}}, where @var{release} is the
|
|
||||||
name of the release, and to use a @samp{--exec-prefix} option of
|
|
||||||
@file{/usr/cygnus/@var{release}/H-@var{host}}, where @var{host} is the
|
|
||||||
configuration name of the host system (@pxref{Configuration Names}).
|
|
||||||
|
|
||||||
Do not use either the source or the object directory as the installation
|
Do not use either the source or the object directory as the installation
|
||||||
directory. That will just lead to confusion.
|
directory. That will just lead to confusion.
|
||||||
|
|
||||||
@ -1676,12 +1670,9 @@ the autoconf documentation for @samp{AC_ARG_PROGRAM}.
|
|||||||
@section Cross Tools in the Cygnus Tree
|
@section Cross Tools in the Cygnus Tree
|
||||||
|
|
||||||
The Cygnus tree is used for various packages including gdb, the GNU
|
The Cygnus tree is used for various packages including gdb, the GNU
|
||||||
binutils, and egcs. It is also, of course, used for Cygnus releases.
|
binutils, and egcs. In the Cygnus tree, the top level @file{Makefile.in}
|
||||||
|
|
||||||
In the Cygnus tree, the top level @file{configure} script uses the old
|
|
||||||
Cygnus configure system, not autoconf. The top level @file{Makefile.in}
|
|
||||||
is written to build packages based on what is in the source tree, and
|
is written to build packages based on what is in the source tree, and
|
||||||
supports building a large number of tools in a single
|
supports building and bootstrapping a large number of tools in a single
|
||||||
@samp{configure}/@samp{make} step.
|
@samp{configure}/@samp{make} step.
|
||||||
|
|
||||||
The Cygnus tree may be configured with a @samp{--target} option. The
|
The Cygnus tree may be configured with a @samp{--target} option. The
|
||||||
@ -2132,27 +2123,26 @@ lines with a trailing backslash as a continuation character).
|
|||||||
@example
|
@example
|
||||||
mkdir linux-x-cygwin32
|
mkdir linux-x-cygwin32
|
||||||
cd linux-x-cygwin32
|
cd linux-x-cygwin32
|
||||||
@var{srcdir}/configure --target i386-cygwin32 --prefix=@var{installdir} \
|
@var{srcdir}/configure --target i386-cygwin32 --prefix=@var{installdir}
|
||||||
--exec-prefix=@var{installdir}/H-i386-linux
|
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
cd ..
|
cd ..
|
||||||
mkdir linux-x-mips-elf
|
mkdir linux-x-mips-elf
|
||||||
cd linux-x-mips-elf
|
cd linux-x-mips-elf
|
||||||
@var{srcdir}/configure --target mips-elf --prefix=@var{installdir} \
|
@var{srcdir}/configure --target mips-elf --prefix=@var{installdir}
|
||||||
--exec-prefix=@var{installdir}/H-i386-linux
|
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
cd ..
|
cd ..
|
||||||
mkdir cygwin32-x-mips-elf
|
mkdir cygwin32-x-mips-elf
|
||||||
cd cygwin32-x-mips-elf
|
cd cygwin32-x-mips-elf
|
||||||
@var{srcdir}/configure --build=i386-linux-gnu --host=i386-cygwin32 \
|
@var{srcdir}/configure --build=i386-linux-gnu --host=i386-cygwin32 \
|
||||||
--target=mips-elf --prefix=@var{wininstalldir} \
|
--target=mips-elf --prefix=@var{wininstalldir}
|
||||||
--exec-prefix=@var{wininstalldir}/H-i386-cygwin32
|
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
|
Note that we specify a different prefix in the last build, because this
|
||||||
|
does not contain Linux executables, but rather Windows executables.
|
||||||
You would then copy the contents of @var{wininstalldir} over to the
|
You would then copy the contents of @var{wininstalldir} over to the
|
||||||
Windows machine, and run the resulting programs.
|
Windows machine, and run the resulting programs.
|
||||||
|
|
||||||
@ -2263,152 +2253,63 @@ crucial.
|
|||||||
The gcc @file{Makefile.in} shows a complex situation in which certain
|
The gcc @file{Makefile.in} shows a complex situation in which certain
|
||||||
files, such as @file{rtl.c}, must be compiled into both subsidiary
|
files, such as @file{rtl.c}, must be compiled into both subsidiary
|
||||||
programs run on the build system and into the final program. This
|
programs run on the build system and into the final program. This
|
||||||
approach may be of interest for advanced build system hackers. Note
|
approach may be of interest for advanced build system hackers.
|
||||||
that the build system compiler is rather confusingly called
|
|
||||||
@samp{HOST_CC}.
|
|
||||||
|
|
||||||
@node Cygnus Configure
|
@node Top level Configure
|
||||||
@chapter Cygnus Configure
|
@chapter Top level Configure
|
||||||
@cindex cygnus configure
|
@cindex top level configure
|
||||||
|
|
||||||
The Cygnus configure script predates autoconf. All of its interesting
|
The top level configure script detects the tools that are used in the
|
||||||
features have been incorporated into autoconf. No new programs should
|
Cygnus tree. This script is a rewrite of the Cygnus configure script,
|
||||||
be written to use the Cygnus configure script.
|
which predated autoconf.
|
||||||
|
|
||||||
However, the Cygnus configure script is still used in a few places: at
|
The script includes all the logic to detect the host and target tools,
|
||||||
the top of the Cygnus tree and in a few target libraries in the Cygnus
|
and to customize the @file{Makefile} to support the special needs of
|
||||||
tree. Until those uses have been replaced with autoconf, some brief
|
some systems.
|
||||||
notes are appropriate here. This is not complete documentation, but it
|
|
||||||
should be possible to use this as a guide while examining the scripts
|
|
||||||
themselves.
|
|
||||||
|
|
||||||
@menu
|
A particularly delicate point is finding the target tools--these include
|
||||||
* Cygnus Configure Basics:: Cygnus Configure Basics.
|
the assembler, the linker, and the other @command{binutils} such as
|
||||||
* Cygnus Configure in C++ Libraries:: Cygnus Configure in C++ Libraries.
|
@command{nm} or @command{ar}. Some of these need to be invoked by GCC;
|
||||||
@end menu
|
others, such as @command{objdump}, are necessary during configuration, in
|
||||||
|
order to detect the set of features supported by the assembler and linker.
|
||||||
|
|
||||||
@node Cygnus Configure Basics
|
In general, the top level configure tries to follow these lines in order
|
||||||
@section Cygnus Configure Basics
|
to detect the target tools:
|
||||||
|
|
||||||
Cygnus configure does not use any generated files; there is no program
|
@table @itemize
|
||||||
corresponding to @samp{autoconf}. Instead, there is a single shell
|
@item try to detect a consistent set of tools
|
||||||
script named @samp{configure} which may be found at the top of the
|
|
||||||
Cygnus tree. This shell script was written by hand; it was not
|
|
||||||
generated by autoconf, and it is incorrect, and indeed harmful, to run
|
|
||||||
@samp{autoconf} in the top level of a Cygnus tree.
|
|
||||||
|
|
||||||
Cygnus configure works in a particular directory by examining the file
|
@item try to detect the same tools that the installed GCC will use
|
||||||
@file{configure.in} in that directory. That file is broken into four
|
@end table
|
||||||
separate shell scripts.
|
|
||||||
|
|
||||||
The first is the contents of @file{configure.in} up to a line that
|
To achieve the first goal, we use the same search criterion for all tools,
|
||||||
starts with @samp{# per-host:}. This is the common part.
|
even those that the compiler never invokes.
|
||||||
|
|
||||||
The second is the rest of @file{configure.in} up to a line that starts
|
To achieve the second goal when the @samp{build} and @samp{host} systems
|
||||||
with @samp{# per-target:}. This is the per host part.
|
are the same, we search the same directories that the installed compiler
|
||||||
|
will search. This is overridden if the assembler and linker are being
|
||||||
|
compiled together with GCC, because after installation GCC
|
||||||
|
will find the tools that were just compiled.
|
||||||
|
|
||||||
The third is the rest of @file{configure.in} up to a line that starts
|
To achieve the second goal when cross compiling (the @samp{build} and
|
||||||
with @samp{# post-target:}. This is the per target part.
|
the @samp{host} systems are different, we ask the installed GCC for the
|
||||||
|
name of the tool it uses. This is because the only good choice for a
|
||||||
|
compiler is the same GCC version that is being installed (@pxref{Cross
|
||||||
|
Cygnus CCross: Building a Cross Program}), and we assume that on the
|
||||||
|
host system we'll have not only the same GCC version, but also the same
|
||||||
|
binutils version.
|
||||||
|
|
||||||
The fourth is the remainder of @file{configure.in}. This is the post
|
The location of the target tools can also be specified using the
|
||||||
target part.
|
@option{--with-build-time-tools} option to the top level configure
|
||||||
|
|
||||||
If any of these comment lines are missing, the corresponding shell
|
|
||||||
script is empty.
|
|
||||||
|
|
||||||
Cygnus configure will first execute the common part. This must set the
|
|
||||||
shell variable @samp{srctrigger} to the name of a source file, to
|
|
||||||
confirm that Cygnus configure is looking at the right directory. This
|
|
||||||
may set the shell variables @samp{package_makefile_frag} and
|
|
||||||
@samp{package_makefile_rules_frag}.
|
|
||||||
|
|
||||||
Cygnus configure will next set the @samp{build} and @samp{host} shell
|
|
||||||
variables, and execute the per host part. This may set the shell
|
|
||||||
variable @samp{host_makefile_frag}.
|
|
||||||
|
|
||||||
Cygnus configure will next set the @samp{target} variable, and execute
|
|
||||||
the per target part. This may set the shell variable
|
|
||||||
@samp{target_makefile_frag}.
|
|
||||||
|
|
||||||
Any of these scripts may set the @samp{subdirs} shell variable. This
|
|
||||||
variable is a list of subdirectories where a @file{Makefile.in} file may
|
|
||||||
be found. Cygnus configure will automatically look for a
|
|
||||||
@file{Makefile.in} file in the current directory. The @samp{subdirs}
|
|
||||||
shell variable is not normally used, and I believe that the only
|
|
||||||
directory which uses it at present is @file{newlib}.
|
|
||||||
|
|
||||||
For each @file{Makefile.in}, Cygnus configure will automatically create
|
|
||||||
a @file{Makefile} by adding definitions for @samp{make} variables such
|
|
||||||
as @samp{host} and @samp{target}, and automatically editing the values
|
|
||||||
of @samp{make} variables such as @samp{prefix} if they are present.
|
|
||||||
|
|
||||||
Also, if any of the @samp{makefile_frag} shell variables are set, Cygnus
|
|
||||||
configure will interpret them as file names relative to either the
|
|
||||||
working directory or the source directory, and will read the contents of
|
|
||||||
the file into the generated @file{Makefile}. The file contents will be
|
|
||||||
read in after the first line in @file{Makefile.in} which starts with
|
|
||||||
@samp{####}.
|
|
||||||
|
|
||||||
These @file{Makefile} fragments are used to customize behaviour for a
|
|
||||||
particular host or target. They serve to select particular files to
|
|
||||||
compile, and to define particular preprocessor macros by providing
|
|
||||||
values for @samp{make} variables which are then used during compilation.
|
|
||||||
Cygnus configure, unlike autoconf, normally does not do feature tests,
|
|
||||||
and normally requires support to be added manually for each new host.
|
|
||||||
|
|
||||||
The @file{Makefile} fragment support is similar to the autoconf
|
|
||||||
@samp{AC_SUBST_FILE} macro.
|
|
||||||
|
|
||||||
After creating each @file{Makefile}, the post target script will be run
|
|
||||||
(i.e., it may be run several times). This script may further customize
|
|
||||||
the @file{Makefile}. When it is run, the shell variable @samp{Makefile}
|
|
||||||
will hold the name of the @file{Makefile}, including the appropriate
|
|
||||||
directory component.
|
|
||||||
|
|
||||||
Like an autoconf generated @file{configure} script, Cygnus configure
|
|
||||||
will create a file named @file{config.status} which, when run, will
|
|
||||||
automatically recreate the configuration. The @file{config.status} file
|
|
||||||
will simply execute the Cygnus configure script again with the
|
|
||||||
appropriate arguments.
|
|
||||||
|
|
||||||
Any of the parts of @file{configure.in} may set the shell variables
|
|
||||||
@samp{files} and @samp{links}. Cygnus configure will set up symlinks
|
|
||||||
from the names in @samp{links} to the files named in @samp{files}. This
|
|
||||||
is similar to the autoconf @samp{AC_LINK_FILES} macro.
|
|
||||||
|
|
||||||
Finally, any of the parts of @file{configure.in} may set the shell
|
|
||||||
variable @samp{configdirs} to a set of subdirectories. If it is set,
|
|
||||||
Cygnus configure will recursively run the configure process in each
|
|
||||||
subdirectory. If the subdirectory uses Cygnus configure, it will
|
|
||||||
contain a @file{configure.in} file but no @file{configure} file, in
|
|
||||||
which case Cygnus configure will invoke itself recursively. If the
|
|
||||||
subdirectory has a @file{configure} file, Cygnus configure assumes that
|
|
||||||
it is an autoconf generated @file{configure} script, and simply invokes
|
|
||||||
it directly.
|
|
||||||
|
|
||||||
@node Cygnus Configure in C++ Libraries
|
|
||||||
@section Cygnus Configure in C++ Libraries
|
|
||||||
@cindex @file{libstdc++} configure
|
|
||||||
@cindex @file{libio} configure
|
|
||||||
@cindex @file{libg++} configure
|
|
||||||
|
|
||||||
The C++ library configure system, written by Per Bothner, deserves
|
|
||||||
special mention. It uses Cygnus configure, but it does feature testing
|
|
||||||
like that done by autoconf generated @file{configure} scripts. This
|
|
||||||
approach is used in the libraries @file{libio}, @file{libstdc++}, and
|
|
||||||
@file{libg++}.
|
|
||||||
|
|
||||||
Most of the @file{Makefile} information is written out by the shell
|
|
||||||
script @file{libio/config.shared}. Each @file{configure.in} file sets
|
|
||||||
certain shell variables, and then invokes @file{config.shared} to create
|
|
||||||
two package @file{Makefile} fragments. These fragments are then
|
|
||||||
incorporated into the resulting @file{Makefile} by the Cygnus configure
|
|
||||||
script.
|
script.
|
||||||
|
|
||||||
The file @file{_G_config.h} is created in the @file{libio} object
|
If no target-specific tools are found, the top level configure script
|
||||||
directory by running the shell script @file{libio/gen-params}. This
|
will try to use the host tools if suitable.
|
||||||
shell script uses feature tests to define macros and typedefs in
|
|
||||||
@file{_G_config.h}.
|
The script and the accompanying Makefile support building programs
|
||||||
|
and libraries for either the build, the host or the target system.
|
||||||
|
The target libraries, however, need to help in order to support
|
||||||
|
@samp{multilibs}.
|
||||||
|
|
||||||
@node Multilibs
|
@node Multilibs
|
||||||
@chapter Multilibs
|
@chapter Multilibs
|
||||||
@ -2428,7 +2329,9 @@ called @dfn{multilibs}.
|
|||||||
|
|
||||||
Multilibs are not really part of the GNU configure and build system, but
|
Multilibs are not really part of the GNU configure and build system, but
|
||||||
we discuss them here since they require support in the @file{configure}
|
we discuss them here since they require support in the @file{configure}
|
||||||
scripts and @file{Makefile}s used for target libraries.
|
scripts and @file{Makefile}s used for target libraries. It is expected
|
||||||
|
that in the future the toplevel will coordinate the building of the
|
||||||
|
various multilibs, but this has not been implemented yet.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* Multilibs in gcc:: Multilibs in gcc.
|
* Multilibs in gcc:: Multilibs in gcc.
|
||||||
@ -2576,17 +2479,16 @@ not defined by @samp{autoconf}. You may be using an old version of
|
|||||||
newly installled @samp{autoconf} is first on your @samp{PATH}. Also,
|
newly installled @samp{autoconf} is first on your @samp{PATH}. Also,
|
||||||
see the next question.
|
see the next question.
|
||||||
|
|
||||||
@cindex @samp{CY_GNU_GETTEXT} in @file{configure}
|
@cindex @samp{AM_GNU_GETTEXT} in @file{configure}
|
||||||
@cindex @samp{AM_PROG_LIBTOOL} in @file{configure}
|
@cindex @samp{AM_PROG_LIBTOOL} in @file{configure}
|
||||||
@item My @file{configure} script has stuff like @samp{CY_GNU_GETTEXT} in it.
|
@item My @file{configure} script has stuff like @samp{AM_GNU_GETTEXT} in it.
|
||||||
This means that you have macros in your @file{configure.in} which should
|
This means that you have macros in your @file{configure.in} which should
|
||||||
be defined in your @file{aclocal.m4} file, but aren't. This usually
|
be defined in your @file{aclocal.m4} file, but aren't. This usually
|
||||||
means that @samp{aclocal} was not able to appropriate definitions of the
|
means that @samp{aclocal} was not able to appropriate definitions of the
|
||||||
macros. Make sure that you have installed all the packages you need.
|
macros. Make sure that you have installed all the packages you need.
|
||||||
In particular, make sure that you have installed libtool (this is where
|
In particular, make sure that you have installed libtool (this is where
|
||||||
@samp{AM_PROG_LIBTOOL} is defined) and gettext (this is where
|
@samp{AM_PROG_LIBTOOL} is defined) and gettext (this is where
|
||||||
@samp{CY_GNU_GETTEXT} is defined, at least in the Cygnus version of
|
@samp{AM_GNU_GETTEXT} is defined).
|
||||||
gettext).
|
|
||||||
|
|
||||||
@cindex @file{Makefile}, garbage characters
|
@cindex @file{Makefile}, garbage characters
|
||||||
@item My @file{Makefile} has @samp{@@} characters in it.
|
@item My @file{Makefile} has @samp{@@} characters in it.
|
||||||
@ -2611,16 +2513,16 @@ regenerate all files (@file{Makefile}, @file{config.h}, etc.) based on
|
|||||||
the results of the configure script. The two cases are separate because
|
the results of the configure script. The two cases are separate because
|
||||||
it isn't always necessary to regenerate all the files after running
|
it isn't always necessary to regenerate all the files after running
|
||||||
@samp{config.status --recheck}. The @file{Makefile} targets generated
|
@samp{config.status --recheck}. The @file{Makefile} targets generated
|
||||||
by automake will use the environment variables @samp{CONFIG_FILES} and
|
by automake will use command-line arguments to only regenerate files
|
||||||
@samp{CONFIG_HEADERS} to only regenerate files as they are needed.
|
as they are needed.
|
||||||
|
|
||||||
@item What is the Cygnus tree?
|
@item What is the Cygnus tree?
|
||||||
The Cygnus tree is used for various packages including gdb, the GNU
|
The Cygnus tree is used for various packages including gdb, the GNU
|
||||||
binutils, and egcs. It is also, of course, used for Cygnus releases.
|
binutils, and egcs. It is a derivative of the build system which was
|
||||||
It is the build system which was developed at Cygnus, using the Cygnus
|
developed at Cygnus, using the Cygnus configure script. It permits
|
||||||
configure script. It permits building many different packages with a
|
building and bootstrapping many different packages with a single configure
|
||||||
single configure and make. The configure scripts in the tree are being
|
and make. The configure scripts in the tree have been converted to
|
||||||
converted to autoconf, but the general build structure remains intact.
|
autoconf, but the general build structure remains intact.
|
||||||
|
|
||||||
@item Why do I have to keep rebuilding and reinstalling the tools?
|
@item Why do I have to keep rebuilding and reinstalling the tools?
|
||||||
I know, it's a pain. Unfortunately, there are bugs in the tools
|
I know, it's a pain. Unfortunately, there are bugs in the tools
|
||||||
|
Loading…
x
Reference in New Issue
Block a user