coreboot/util
Nico Huber 9718834ac5 UPSTREAM: buildgcc: Add option to bootstrap a host gcc
Bootstrapping gcc is the recommended way if your host gcc's version
doesn't match the gcc version you're going to build. While a build
with an outdated host gcc usually succeeds, an outdated gnat seems
to be a bigger issue.

v3: Some library controversy: gcc likes the libraries it ships with
most but we don't want to install shared libraries. So we build
them static --disable-shared) and install only the minimum
(libgcc, libada, libstdc++). However, as the code of these
libraries might be used to build a shared library we have to
compile them with `-fPIC`.

v4: o Updated getopt strings.
o The workaround for clang (-fbracket-depth=1024) isn't needed
for bootstrapping and also breaks the build, as clang is only
used for the first stage in that case and gcc doesn't know
that option.

So far build tested with `make BUILDGCC_OPTIONS="-b -l c,ada"` on
o Ubuntu 14.04 "Trusty Tahr" (i386)
o Debian 8 "Jessie" (x86_64) (building python (-S) works too)
o current Arch Linux (x86_64)
o FreeBSD 10.3 (x86_64) (with gcc-aux package)

and with clang host compiler, thus C only: `make BUILDGCC_OPTIONS="-b"`
on
o Debian 8 "Jessie" (x86_64)
o FreeBSD 10.3 (x86_64)

v5: Rebased after toolchain updates to GCC 5.3.0 etc.

Build tested with `make BUILDGCC_OPTIONS="-b -l c,ada"` on
o Debian 8 "Jessie" (x86_64)

BUG=None
BRANCH=None
TEST=None

Change-Id: Icb47d3e9dbafc55737fbc3ce62a084fb9d5f359a
Original-Signed-off-by: Nico Huber <nico.huber@secunet.com>
Original-Reviewed-on: https://review.coreboot.org/13473
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/358602
Reviewed-by: Martin Roth <martinroth@chromium.org>
2016-07-07 01:09:46 -07:00
..
abuild
acpi
amdfwtool
amdtools
archive
arm_boot_tools/mksunxiboot
autoport
bimgtool
board_status
broadcom
cbfstool UPSTREAM: fmaptool: Accept hex values with uppercase letters 2016-07-07 01:09:37 -07:00
cbmem
checklist
chromeos
crossgcc UPSTREAM: buildgcc: Add option to bootstrap a host gcc 2016-07-07 01:09:46 -07:00
dtd_parser
ectool
exynos
futility
fuzz-tests
genbuild_h
genprof
gitconfig UPSTREAM: rebase.sh: Update to current cros branch 2016-06-30 10:08:27 -07:00
ifdfake
ifdtool
intelmetool
inteltool
intelvbttool
ipqheader
k8resdump
kconfig UPSTREAM: util/kconfig: Fix gconfig build 2016-07-07 01:08:48 -07:00
lint
marvell
mma
msrtool
mtkheader
nvidia
nvramtool
optionlist
post
release
riscvtools
rockchip
romcc
sconfig
scripts
showdevicetree
spkmodem_recv
superiotool
uio_usbdebug
vgabios
viatool
xcompile