lang/gcc5-aux: Build in one stage by default, new bootstrap for DF

The original intention was to build update all the bootstrap compilers
to be based on GCC5, but right now I'm only doing that for DragonFly.
After June 30, I might rebuild the bootstrap compiler on FreeBSD 10.1,
but right now gcc5-aux is building fine on FreeBSD in one stage, even
though their bootstrap is based on GCC 4.9.

Right now, gcc5-aux is building with 3 full stages.  I'm switching it to
a single stage build, but adding an off-by-default option to build it
in three stages again.  With one stage, libcc1 is not built, but with
three stages it is.  LibCC1 is meant to support the upcoming release of
GDB so it's currently not needed (it fails to build if gcc is not fully
bootstrapping which is why it's disabled)

This brings the build down to about 9-14 minutes versus 60-90 minutes
depending on the (average power) machine.

Also, I've explicitly limited the build to i386 and amd64 on FreeBSD and
I have dropped i386 support on DragonFly, which could only have been
build on DragonFly 3.8 or earlier.

Also, I removed the iconv dependency when a bootstrap compiler is being
created (the all-overriding BOOTSTRAP option for the maintainer)
This commit is contained in:
John Marino 2015-04-28 15:57:59 +00:00
parent a5673b92fb
commit b6cf1c2c3b
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=384911
3 changed files with 17 additions and 12 deletions

View file

@ -31,7 +31,7 @@ CPPFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib
OPTIONS_GROUP= Standard Bootstrap
OPTIONS_GROUP_Standard= FORT OBJC NLS TESTSUITE STATIC
OPTIONS_GROUP_Standard= FORT OBJC NLS TESTSUITE ALLSTAGES STATIC
OPTIONS_GROUP_Bootstrap=BOOTSTRAP
OPTIONS_DEFAULT= FORT OBJC
NO_OPTIONS_SORT= yes
@ -39,6 +39,7 @@ NO_OPTIONS_SORT= yes
FORT_DESC= Fortran language support
OBJC_DESC= Objective-C language support
TESTSUITE_DESC= Activate test support
ALLSTAGES_DESC= Build compiler with itself (twice, brings in libcc1)
STATIC_DESC= Link compilers and drivers statically
BOOTSTRAP_DESC= Create bootstrap compiler (overrides other options)
@ -50,6 +51,7 @@ BOOTSTRAP_DESC= Create bootstrap compiler (overrides other options)
.include <bsd.port.options.mk>
.if ${OPSYS} == FreeBSD
ONLY_FOR_ARCHS= amd64 i386
MODERN_BINUTILS= yes
. if ${OSVERSION} < 900000
BOOTSTRAP_COMPILER= ada-bootstrap.${GARCH}.freebsd.84.tar.bz2
@ -58,7 +60,8 @@ BOOTSTRAP_COMPILER= ada-bootstrap.${GARCH}.freebsd.100B.tar.bz2
. endif
.endif
.if ${OPSYS} == DragonFly
BOOTSTRAP_COMPILER= ada-bootstrap.${GARCH}.dragonfly.36A.tar.bz2
ONLY_FOR_ARCHS= x86_64
BOOTSTRAP_COMPILER= ada-bootstrap.${GARCH}.dragonfly.41.tar.bz2
.endif
.if defined(MODERN_BINUTILS)
@ -109,10 +112,9 @@ DISTFILES+= ${BOOTSTRAP_COMPILER}:boot
.if defined(PLUS_BOOTSTRAPS)
DISTFILES= \
${IDENTIFICATION}.tar.bz2 \
ada-bootstrap.i386.dragonfly.36A.tar.bz2:boot \
ada-bootstrap.i386.freebsd.84.tar.bz2:boot \
ada-bootstrap.i386.freebsd.100B.tar.bz2:boot \
ada-bootstrap.x86_64.dragonfly.36A.tar.bz2:boot \
ada-bootstrap.x86_64.dragonfly.41.tar.bz2:boot \
ada-bootstrap.x86_64.freebsd.84.tar.bz2:boot \
ada-bootstrap.x86_64.freebsd.100B.tar.bz2:boot
.endif
@ -151,8 +153,14 @@ EXTRA_CONFIG+= --with-stage1-ldflags=-static
EXTRA_CONFIG+= --disable-shared --disable-lto
EXTRA_CONFIG+= --with-boot-ldflags=-static
.else
# For some reason, libcc1.a can't be build with bootstrap (only) in poudriere
#EXTRA_CONFIG+= --disable-bootstrap
. if !${PORT_OPTIONS:MALLSTAGES}
# For reasons unknown, build fails at libcc1 when the compiler is not
# not bootstrapping. It appears to be an upstream error. LibCC1 is used
# for gdb 7.9 exclusively, so it's not really needed. Let's disable it
# by default, but let people that want it suffer a 3-stage build.
EXTRA_CONFIG+= --disable-bootstrap --disable-libcc1
. endif
USES+= iconv
.endif
# Establish Ada-aware compiler for use
@ -164,7 +172,6 @@ ADA_CONFIGURE_ENV+= CXXFLAGS="${CXXFLAGS}"
ADA_CONFIGURE_ENV+= LDFLAGS="${LDFLAGS}"
ADA_CONFIGURE_ENV+= PATH=${FULL_PATH}
ADA_MAKE_ENV+= PATH=${FULL_PATH}
ADA_MAKE_ENV+= LD_LIBRARY_PATH=${BUILDDIR}/gcc
# The standard configuration options
ADA_CONFIG_ARGS= --enable-languages=${LANGS:Q}

View file

@ -9,7 +9,7 @@ LIB_DEPENDS+= libmpc.so:${PORTSDIR}/math/mpc
ONLY_FOR_ARCHS= i386 amd64
GNU_CONFIGURE= yes
USES= gmake iconv libtool perl5 tar:bzip2
USES= gmake libtool perl5 tar:bzip2
USE_PERL5= build
ALL_TARGET= default

View file

@ -1,13 +1,11 @@
SHA256 (gcc-5.1.0.tar.bz2) = b7dafdf89cbb0e20333dbf5b5349319ae06e3d1a30bf3515b5488f7e89dca5ad
SIZE (gcc-5.1.0.tar.bz2) = 94954411
SHA256 (ada-bootstrap.i386.dragonfly.36A.tar.bz2) = 6b1a6ff0fe0e3bf13c667db2fef177b811329cd998400a1303969a86911cb1c8
SIZE (ada-bootstrap.i386.dragonfly.36A.tar.bz2) = 39357314
SHA256 (ada-bootstrap.i386.freebsd.84.tar.bz2) = b410336cb0e71c8a29dd5f831a17b4b7282e7d590f452475a94c6a625cfc8846
SIZE (ada-bootstrap.i386.freebsd.84.tar.bz2) = 39727003
SHA256 (ada-bootstrap.i386.freebsd.100B.tar.bz2) = 7231209f2600275f554f788ad1d036cf633c4339ebd25bd479a5bb1ddcddedf3
SIZE (ada-bootstrap.i386.freebsd.100B.tar.bz2) = 41229192
SHA256 (ada-bootstrap.x86_64.dragonfly.36A.tar.bz2) = ba9b193f1f5c780c0e94086a9af6f1c8e843b6782c133b9948789b95b2e605c4
SIZE (ada-bootstrap.x86_64.dragonfly.36A.tar.bz2) = 40747242
SHA256 (ada-bootstrap.x86_64.dragonfly.41.tar.bz2) = eb7785d8b842aee2bb04b43adfb1346b178ee4e83d8775b4e6705fd23f1586f0
SIZE (ada-bootstrap.x86_64.dragonfly.41.tar.bz2) = 44956630
SHA256 (ada-bootstrap.x86_64.freebsd.84.tar.bz2) = ba1a407d936e7b3f2bfe825d1fb5a1f0e85e8edbdd9e8440bb49ef643fec05fc
SIZE (ada-bootstrap.x86_64.freebsd.84.tar.bz2) = 40227668
SHA256 (ada-bootstrap.x86_64.freebsd.100B.tar.bz2) = 1066d7c5e71d78b4416de3b73348227678ca07db52488409e270db7b00467f55