summaryrefslogtreecommitdiff
path: root/strata/armv7lhf-cross-toolchain
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2014-09-26 12:07:06 +0100
committerSam Thursfield <sam.thursfield@codethink.co.uk>2014-09-26 13:18:24 +0100
commite9dbfdc623101442370d51525e8cdbe3867eab02 (patch)
treee3212f19e99a2043bfc8f519a70ff8a857c68126 /strata/armv7lhf-cross-toolchain
parentf8eb5d55ef5edc933442f489ae806a5a70d2a0cc (diff)
downloaddefinitions-e9dbfdc623101442370d51525e8cdbe3867eab02.tar.gz
Add back missing comments to build-essential chunk morphs
These will have been lost in the automated chunks-in-definitions transition.
Diffstat (limited to 'strata/armv7lhf-cross-toolchain')
-rw-r--r--strata/armv7lhf-cross-toolchain/armv7lhf-cross-binutils.morph1
-rw-r--r--strata/armv7lhf-cross-toolchain/armv7lhf-cross-eglibc.morph14
-rw-r--r--strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc-nolibc.morph19
-rw-r--r--strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc.morph10
4 files changed, 44 insertions, 0 deletions
diff --git a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-binutils.morph b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-binutils.morph
index d92150a5..8e842e41 100644
--- a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-binutils.morph
+++ b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-binutils.morph
@@ -1,6 +1,7 @@
name: armv7lhf-cross-binutils
kind: chunk
build-system: autotools
+
configure-commands:
- |
# The TARGET used is the final triplet we expect, rather than that
diff --git a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-eglibc.morph b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-eglibc.morph
index afbfa939..ee28c9dd 100644
--- a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-eglibc.morph
+++ b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-eglibc.morph
@@ -1,8 +1,20 @@
name: armv7lhf-cross-eglibc
kind: chunk
+
configure-commands:
- mkdir o
+
+# Necessary for ARM port
- cd libc && ln -s ../ports ports
+
+# Configure flag notes:
+# 1. Location of linux-api-headers, needed since eglibc doesn't
+# support being given a sysroot.
+# 2. Location of binutils, since we build binutils for the final
+# target triplet, but our gcc of our stage 1 target triplet.
+# 3. Normal flags. See eglibc.morph.
+# 4. Force configuration values of certain things that can't be detected
+# in a cross-compile.
- |
export MORPH_ARCH=armv7lhf
export TARGET=armv7lhf-baserock-linux-gnueabi
@@ -22,8 +34,10 @@ configure-commands:
--enable-add-ons=nptl,ports --without-cvs --without-selinux \
`# [4]` libc_cv_c_cleanup=yes libc_cv_ctors_header=yes \
libc_cv_forced_unwind=yes libc_cv_ssp=no
+
build-commands:
- cd o && make localtime=UTC
+
install-commands:
- |
# eglibc doesn't help with sysroots, so we need to spell out the
diff --git a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc-nolibc.morph b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc-nolibc.morph
index 9f993bc0..d164a60b 100644
--- a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc-nolibc.morph
+++ b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc-nolibc.morph
@@ -1,7 +1,20 @@
name: armv7lhf-cross-gcc-nolibc
kind: chunk
+
configure-commands:
- mkdir o
+
+# Configure flag notes:
+# 1. Standard flags. See gcc.morph.
+# 2. Our binutils is for the final $TARGET, rather than the intermediate
+# target our GCC is being built for, so we need to set
+# with-build-time-tools to get it to find our binutils at
+# build-time and with-as and with-ld so our temporary GCC uses
+# the appropriate tools when it compiles our libc, rather than
+# trying to use $TARGET_STAGE1-as when producing binaries.
+# 3. Disable stuff that doesn't work when building a cross compiler
+# without an existing libc, and generally try to keep this build as
+# simple as possible.
- |
export MORPH_ARCH=armv7lhf
export TARGET=armv7lhf-baserock-linux-gnueabi
@@ -25,10 +38,16 @@ configure-commands:
--disable-shared --disable-threads --disable-target-libiberty \
--disable-target-zlib --without-headers --with-newlib \
--with-system-zlib
+
build-commands:
- cd o && make
+
install-commands:
- cd o && make DESTDIR="$DESTDIR" install
+
+# The file libgcc_eh is required during eglibc's build, but is not created
+# because we built GCC with --disable-shared. This is a workaround for
+# eglibc's build system being slightly broken.
- |
export TARGET_STAGE1=armv7lhf-none-linux-gnueabi
libgcc_filename="$("$DESTDIR$PREFIX/bin/$TARGET_STAGE1-gcc" -print-libgcc-file-name)"
diff --git a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc.morph b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc.morph
index a5c6eac1..50c338e5 100644
--- a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc.morph
+++ b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc.morph
@@ -1,7 +1,15 @@
name: armv7lhf-cross-gcc
kind: chunk
+
configure-commands:
- mkdir o
+
+# Configure flag notes:
+# 1. Use the default sysroot path to install to and locate headers
+# 2. Recommended by Linux From Scratch; required for C++ ABI
+# compatibility with other Linux distributions.
+# 3. Standard flags. See gcc.morph.
+# 4. Avoid having more than one copy of ZLib in use on the system
- |
export MORPH_ARCH=armv7lhf
export TARGET=armv7lhf-baserock-linux-gnueabi
@@ -23,8 +31,10 @@ configure-commands:
--with-mpfr-include="$(pwd)/../mpfr/src" \
--with-mpfr-lib="$(pwd)/mpfr/src/.libs" \
`# [4]` --with-system-zlib
+
build-commands:
- cd o && make
+
install-commands:
- cd o && make DESTDIR="$DESTDIR" install
- |