summaryrefslogtreecommitdiffstats
path: root/gnu/ada
diff options
context:
space:
mode:
authorEric Sandall2008-04-08 09:25:16 -0700
committerEric Sandall2008-04-08 09:26:43 -0700
commit4f424d2cc6571e5f4a53fa2562835644c42dbf8c (patch)
tree6a980feb70682122b6014f83d2fbc3703ec41c4b /gnu/ada
parentff59752992951c915d773ab1299e45f5fa98105d (diff)
ada: Many muckings to get this POS to work. Now supports x86_64, the bootstrap has
been updated to 4.3.0 as well, and added instructions on how to build a bootstrap for future use. ada 4.3.0 requires a lot of environment settings not required before (nor now by the other GCC tools) and does not support profiledbootstrap (see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32581). Ada specs are no longer installed nor merged with the rest of the specs (breaks gcc and the only two apps which use GNAT, ncurses and gtkada, compile without them).
Diffstat (limited to 'gnu/ada')
-rwxr-xr-xgnu/ada/BUILD24
-rwxr-xr-xgnu/ada/DETAILS34
-rwxr-xr-xgnu/ada/FINAL4
-rw-r--r--gnu/ada/HISTORY41
-rwxr-xr-xgnu/ada/INSTALL9
-rwxr-xr-xgnu/ada/POST_REMOVE2
-rwxr-xr-xgnu/ada/POST_RESURRECT2
-rwxr-xr-xgnu/ada/PRE_BUILD38
-rw-r--r--gnu/ada/gnat-4.1.1-i386-pc-linux-gnu.tar.bz2.sigbin536 -> 0 bytes
-rw-r--r--gnu/ada/specs_ada9
10 files changed, 114 insertions, 49 deletions
diff --git a/gnu/ada/BUILD b/gnu/ada/BUILD
index 7f753afaf9..a4bfaa841b 100755
--- a/gnu/ada/BUILD
+++ b/gnu/ada/BUILD
@@ -6,13 +6,25 @@ persistent_read gcc GCC_CFLAGS CFLAGS &&
persistent_read gcc GCC_LDFLAGS LDFLAGS &&
# setup bootstrap ada compiler
-ADA_PATH=gnat-4.1.1-i386-pc-linux-gnu &&
-PATH=$SOURCE_DIRECTORY/$ADA_PATH/bin:$PATH &&
+ADA_PATH=${SOURCE3/.tar.bz2/} &&
+PATH=$SOURCE_DIRECTORY/$ADA_PATH/usr/bin:$PATH &&
if [[ "${SMGL_COMPAT_ARCHS[1]}" == "x86_64" ]]; then
OPTS="--build=x86_64-pc-linux-gnu $OPTS"
fi &&
+export CC="$SOURCE_DIRECTORY/$ADA_PATH/usr/bin/gnatgcc" &&
+export INCLUDE_DIR="$SOURCE_DIRECTORY/$ADA_PATH/usr/lib/gnatgcc/$HOST/4.3.0/include" &&
+export LIB_DIR="$SOURCE_DIRECTORY/$ADA_PATH/usr/lib/gnatgcc/$HOST/4.3.0/" &&
+export LDFLAGS="-L${LIB_DIR}"
+
+export LIBRARY_PATH="$LIB_DIR" &&
+export LD_LIBRARY_PATH="$LIB_DIR" &&
+export COMPILER_PATH="$SOURCE_DIRECTORY/$ADA_PATH/usr/bin" &&
+
+export ADA_OBJECTS_PATH="$LIB_DIR/adalib" &&
+export ADA_INCLUDE_PATH="$LIB_DIR/adainclude" &&
+
cd $SOURCE_DIRECTORY.bld &&
$SOURCE_DIRECTORY/configure \
--host=$HOST \
@@ -21,9 +33,11 @@ $SOURCE_DIRECTORY/configure \
--mandir=${INSTALL_ROOT}/usr/share/man \
--enable-threads=posix \
--with-system-zlib \
- --enable-languages=ada \
+ --program-prefix=gnat \
+ --enable-libada \
+ --enable-languages="ada" \
$GCC_MULTILIB \
$OPTS &&
-make CFLAGS="$CFLAGS" BOOT_CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
- profiledbootstrap
+make CFLAGS="$CFLAGS" BOOT_CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
+ bootstrap
diff --git a/gnu/ada/DETAILS b/gnu/ada/DETAILS
index 3e6d1794af..5758e07998 100755
--- a/gnu/ada/DETAILS
+++ b/gnu/ada/DETAILS
@@ -5,26 +5,31 @@ SOURCE_DIRECTORY=$BUILD_DIRECTORY/gcc-$VERSION
SOURCE_URL[0]=$GNU_URL/gcc/gcc-$VERSION/$SOURCE
SOURCE_URL[1]=ftp://gcc.gnu.org/pub/gcc/releases/gcc-$VERSION/$SOURCE
SOURCE2=gcc-$SPELL-$VERSION.tar.bz2
+ SOURCE2_GPG=gnu.gpg:$SOURCE2.sig:UPSTREAM_KEY
SOURCE2_URL[0]=$GNU_URL/gcc/gcc-$VERSION/$SOURCE2
SOURCE2_URL[1]=ftp://gcc.gnu.org/pub/gcc/releases/gcc-$VERSION/$SOURCE2
- SOURCE3=gnat-4.1.1-i386-pc-linux-gnu.tar.bz2
- SOURCE3_GPG=gurus.gpg:$SOURCE3.sig:UPSTREAM_KEY
+if [[ "${SMGL_COMPAT_ARCHS[1]}" == "ia32" ]]
+then
+ SOURCE3=gnat-4.3.0-i686-pc-linux-gnu.tar.bz2
+elif [[ "${SMGL_COMPAT_ARCHS[1]}" == "x86_64" ]]
+then
+ SOURCE3=gnat-4.3.0-x86_64-pc-linux-gnu.tar.bz2
+else
+ SOURCE3=gnat-4.3.0-i686-pc-linux-gnu.tar.bz2
+fi
+ SOURCE3_GPG="gurus.gpg:$SOURCE3.sig:VERIFIED_UPSTREAM_KEY"
SOURCE3_URL[0]=http://download.sourcemage.org/distro/$SOURCE3
-
+ SOURCE4=$SOURCE3.sig
+ SOURCE4_URL[0]=${SOURCE3_URL[0]}.sig
+ SOURCE4_IGNORE=signature
#upstream signatures
- SOURCE4=$SOURCE.sig
- SOURCE4_URL[0]=${SOURCE_URL[0]}.sig
+ SOURCE5=$SOURCE.sig
+ SOURCE5_URL[0]=${SOURCE_URL[0]}.sig
SOURCE_GPG=gnu.gpg:$SOURCE.sig:UPSTREAM_KEY
- SOURCE4_IGNORE=signature
- SOURCE5=$SOURCE2.sig
- SOURCE5_URL[0]=${SOURCE2_URL[0]}.sig
- SOURCE2_GPG=gnu.gpg:$SOURCE2.sig:UPSTREAM_KEY
SOURCE5_IGNORE=signature
-# SOURCE6=$SOURCE3.sig
-# SOURCE6_URL[0]=${SOURCE3_URL[0]}.sig
-# SOURCE3_GPG=gnu.gpg:$SOURCE3.sig:UPSTREAM_KEY
-# SOURCE6_IGNORE=signature
-
+ SOURCE6=$SOURCE2.sig
+ SOURCE6_URL[0]=${SOURCE2_URL[0]}.sig
+ SOURCE6_IGNORE=signature
LICENSE[0]=GPL
WEB_SITE=http://gcc.gnu.org/
ENTERED=20050213
@@ -34,4 +39,3 @@ SOURCE_DIRECTORY=$BUILD_DIRECTORY/gcc-$VERSION
cat << EOF
The GNU Ada Translator and Ada95 runtime library.
EOF
-
diff --git a/gnu/ada/FINAL b/gnu/ada/FINAL
index 14a9914fe6..907a1a0f9f 100755
--- a/gnu/ada/FINAL
+++ b/gnu/ada/FINAL
@@ -1,3 +1 @@
-rm_source_dir $SOURCE_DIRECTORY.bld &&
-local SPECSDIR=${INSTALL_ROOT}/usr/lib/gcc/$HOST/$VERSION &&
-cat $SPECSDIR/specs-local/* > $SPECSDIR/specs
+rm_source_dir $SOURCE_DIRECTORY.bld
diff --git a/gnu/ada/HISTORY b/gnu/ada/HISTORY
index 941288e6e9..88d6837ff3 100644
--- a/gnu/ada/HISTORY
+++ b/gnu/ada/HISTORY
@@ -1,3 +1,44 @@
+2008-04-06 Eric Sandall <sandalle@sourcemage.org>
+ * DETAILS: Updated bootstrap to gnat 4.3.0
+ x86 bootstrap is now built as i686 instead of i386
+ Added x86_64 gnat bootstrap.
+ gnat bootstraps are just the ARCHIVE version of ada built using
+ the prior bootstrap.
+ SOURCE3 is provided by us and signed by us, so use
+ VERIFIED_UPSTREAM_KEY :)
+ * PRE_BUILD: New bootstraps have different directory structure, modify
+ unpack accordingly.
+ Added code for future bootstrap generation to avoid extra research:
+ * BUILD: profiledbootstrap fails (for now), use regular bootstrap. See
+ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32581
+ Ada 4.3.0 is retarded and now requires extra environment settings,
+ borrowed from Gentoo's gnatbuild_src_compile() from
+ http://kambing.ui.edu/gentoo-portage/eclass/gnatbuild.eclass
+ New bootstraps use a different directory structure, modify ADA_PATH
+ accordingly.
+ Need to pass --enable-libada to ensure ada libraries are built
+ Use --program-prefix=gnat to install gnatgcc instead of gnat when
+ building bootstrap.
+ * INSTALL: Install all files (including gnatgcc, required)
+ No longer install specs_ada
+ * FINAL: Do not combine Ada specs with the rest of the system's as
+ it screws up gcc (at least) and packages (e.g. ncurses and gtkada)
+ compile fine with Ada without it.
+ * POST_REMOVE, POST_RESURRECT: No longer install specs_ada
+ * specs_ada: Removed, seems to be unused
+ * Bootstrap generation notes:
+ Modify BUILD to use '--enable-language="c,ada"'
+ NOTE: (c may not be needed, but it worked so I used that)
+ Compile ada
+ Unmodify BUILD
+ Rename cache tarball to gnat-$VERSION-$HOST.tar.bz2
+ Clean out non-essential files from the cache such as:
+ etc, var, usr/share/{doc,info,man}
+ Sign gnat-$VERSION-$HOST.tar.bz2
+ Set SOURCE3=gnat-$VERSION-$HOST.tar.bz2
+ Upload to some public site and set SOURCE3_URL[0]
+ Test ada with your new bootstrap
+
2008-03-15 Eric Sandall <sandalle@sourcemage.org>
* DETAILS: Updated to 4.3.0
NOTE: Need to update SOURCE3 (gnat-4.1.1) for this to work on x86
diff --git a/gnu/ada/INSTALL b/gnu/ada/INSTALL
index c09db497f4..32b9891fa7 100755
--- a/gnu/ada/INSTALL
+++ b/gnu/ada/INSTALL
@@ -3,10 +3,5 @@
#
cd $SOURCE_DIRECTORY.bld &&
-make -C gcc lang.install-common lang.install-man &&
-install -c gcc/gnat1 ${INSTALL_ROOT}/usr/libexec/gcc/$HOST/$VERSION/ &&
-
-# specs file stuff
-local SPECSDIR=${INSTALL_ROOT}/usr/lib/gcc/$HOST/$VERSION &&
-mkdir -p $SPECSDIR/specs-local &&
-cp $SCRIPT_DIRECTORY/specs_ada $SPECSDIR/specs-local
+make -C gcc install lang.install-common lang.install-man &&
+install -c gcc/gnat1 ${INSTALL_ROOT}/usr/libexec/gcc/$HOST/$VERSION/
diff --git a/gnu/ada/POST_REMOVE b/gnu/ada/POST_REMOVE
deleted file mode 100755
index 2ab4140f07..0000000000
--- a/gnu/ada/POST_REMOVE
+++ /dev/null
@@ -1,2 +0,0 @@
-local SPECSDIR=${INSTALL_ROOT}/usr/lib/gcc/$HOST/$VERSION &&
-cat $SPECSDIR/specs-local/* > $SPECSDIR/specs
diff --git a/gnu/ada/POST_RESURRECT b/gnu/ada/POST_RESURRECT
deleted file mode 100755
index b6c486727f..0000000000
--- a/gnu/ada/POST_RESURRECT
+++ /dev/null
@@ -1,2 +0,0 @@
-local SPECSDIR=${INSTALL_ROOT}/usr/lib/gcc/$HOST/$VERSION &&
-cat $SPECSDIR/specs-local/* > $SPECSDIR/specs
diff --git a/gnu/ada/PRE_BUILD b/gnu/ada/PRE_BUILD
index db044fd835..55467be3ab 100755
--- a/gnu/ada/PRE_BUILD
+++ b/gnu/ada/PRE_BUILD
@@ -3,9 +3,35 @@ if [ "$(installed_version gcc)" != "$VERSION" ]; then
message "Update gcc first.${DEFAULT_COLOR}"
return 1;
fi
-default_pre_build &&
-cd $BUILD_DIRECTORY &&
-unpack_file 2 &&
-cd $SOURCE_DIRECTORY &&
-unpack_file 3 &&
-mk_source_dir $SOURCE_DIRECTORY.bld
+
+default_pre_build &&
+cd $BUILD_DIRECTORY &&
+unpack_file 2 &&
+cd $SOURCE_DIRECTORY &&
+mkdir ${SOURCE3/.tar.bz2/} &&
+cd ${SOURCE3/.tar.bz2/} &&
+unpack_file 3 &&
+mk_source_dir $SOURCE_DIRECTORY.bld &&
+
+#
+# This section is used to build a gnat bootstrap cache
+#
+touch $SOURCE_DIRECTORY/gcc/cstamp-h.in &&
+touch $SOURCE_DIRECTORY/gcc/ada/[es]info.h &&
+touch $SOURCE_DIRECTORY/gcc/ada/nmake.ad[bs] &&
+
+#
+# Set the compiler name to gnatgcc
+#
+for file in `find $SOURCE_DIRECTORY/gcc/ada/ -name '*.ad[sb]'`
+do
+ sedit "s:\"gcc\":\"gnatgcc\":g" $file
+done &&
+
+sedit 's:(Last3 = "gnatgcc"):(Last3 = "gcc"):' \
+ $SOURCE_DIRECTORY/gcc/ada/makegpr.adb &&
+sedit 's:and Nam is "gnatgcc":and Nam is "gcc":' \
+ $SOURCE_DIRECTORY/gcc/ada/osint.ads
+#
+# End Ada bootstrap cache code
+#
diff --git a/gnu/ada/gnat-4.1.1-i386-pc-linux-gnu.tar.bz2.sig b/gnu/ada/gnat-4.1.1-i386-pc-linux-gnu.tar.bz2.sig
deleted file mode 100644
index 4d979091ae..0000000000
--- a/gnu/ada/gnat-4.1.1-i386-pc-linux-gnu.tar.bz2.sig
+++ /dev/null
Binary files differ
diff --git a/gnu/ada/specs_ada b/gnu/ada/specs_ada
deleted file mode 100644
index a0d4c66703..0000000000
--- a/gnu/ada/specs_ada
+++ /dev/null
@@ -1,9 +0,0 @@
-@ada:
-%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}} %{!S:%{!c:%e-c or -S required for Ada}} gnat1 %{I*} %{k8:-gnatk8} %{w:-gnatws} %{!Q:-quiet} %{nostdinc*} %{nostdlib*} -dumpbase %{.adb:%b.adb}%{.ads:%b.ads}%{!.adb:%{!.ads:%b.ada}} %{O*} %{W*} %{w} %{p} %{pg:-p} %{a} %{f*} %{d*} %{g*&m*} %1 %{!S:%{o*:%w%*-gnatO}} %i %{S:%W{o*}%{!o*:-o %b.s}} %{gnatc*|gnats*: -o %j} %{-param*} %{!gnatc*:%{!gnats*:%(invoke_as)}}
-
-.ads:
-@ada
-
-.adb:
-@ada
-