crossgcc: Preparations for building Ada frontend

As with most other languages, a pre-installed Ada toolchain is needed
to build gcc's Ada frontend. To support building with older host tool-
chains, the patch `gcc-5.2.0_gnat.patch` disables warnings for unknown
pragmas. Building has been tested with host gcc-4.9 and hopefully works
with newer versions, too.

For convenience, the gnattools (e.g. gnatmake etc.) will be build if
'ada' is specified as a target language.

Change-Id: Ia78c29d1aba2943de5238421a324cfff8eb08875
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: http://review.coreboot.org/11590
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Nico Huber 2015-09-08 12:38:57 +02:00 committed by Nico Huber
parent bb313bf221
commit 135ca51314
2 changed files with 16 additions and 0 deletions

View File

@ -425,6 +425,11 @@ build_GCC() {
--with-pkgversion="coreboot toolchain v$CROSSGCC_VERSION $CROSSGCC_DATE" \ --with-pkgversion="coreboot toolchain v$CROSSGCC_VERSION $CROSSGCC_DATE" \
|| touch .failed || touch .failed
$MAKE $JOBS CFLAGS_FOR_BUILD="$HOSTCFLAGS" all-gcc || touch .failed $MAKE $JOBS CFLAGS_FOR_BUILD="$HOSTCFLAGS" all-gcc || touch .failed
if [ "$(echo ${LANGUAGES} | grep -c '\<ada\>')" -gt 0 ]; then
$MAKE $JOBS CFLAGS_FOR_BUILD="$HOSTCFLAGS" -Cgcc/ cross-gnattools || touch .failed
fi
$MAKE install-gcc DESTDIR=$DESTDIR || touch .failed $MAKE install-gcc DESTDIR=$DESTDIR || touch .failed
if [ "$(echo $TARGETARCH | grep -c -- -mingw32)" -eq 0 ]; then if [ "$(echo $TARGETARCH | grep -c -- -mingw32)" -eq 0 ]; then

View File

@ -0,0 +1,11 @@
--- gcc-5.2.0/gcc/ada/gcc-interface/Make-lang.in.bak 2015-08-24 16:23:25.004493665 +0200
+++ gcc-5.2.0/gcc/ada/gcc-interface/Make-lang.in 2015-08-24 17:53:52.496636113 +0200
@@ -45,7 +45,7 @@
# Extra flags to pass to recursive makes.
-COMMON_ADAFLAGS= -gnatpg
+COMMON_ADAFLAGS= -gnatpg -gnatwG
ifeq ($(TREECHECKING),)
CHECKING_ADAFLAGS=
else