summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alvarez <pedro.alvarez@codethink.co.uk>2014-11-11 18:37:59 +0000
committerPedro Alvarez <pedro.alvarez@codethink.co.uk>2014-11-11 18:37:59 +0000
commit312e07068a496879e867eabf7ad11041b7779f80 (patch)
treeba3390c2e23a8489b2d94c9591ce0b1b4e88a4b9
parent72b3eb1ceb8eff3d765f57c2a932a515fa7b2c36 (diff)
parent755636110227894d1eab44c1b6401a3ec0b696f2 (diff)
downloaddefinitions-312e07068a496879e867eabf7ad11041b7779f80.tar.gz
Merge branch 'baserock/pedroalvarez/glibc10'
Reviewed-by: - Sam Thursfield - Richard Maw - Javier Jardon
-rw-r--r--strata/bsp-x86_32-generic.morph2
-rw-r--r--strata/bsp-x86_64-generic.morph2
-rw-r--r--strata/bsp-x86_both-tools.morph2
-rw-r--r--strata/build-essential.morph104
-rw-r--r--strata/build-essential/eglibc.morph62
-rw-r--r--strata/build-essential/glibc.morph86
-rw-r--r--strata/build-essential/stage2-fake-bash.morph4
-rw-r--r--strata/build-essential/stage2-glibc.morph (renamed from strata/build-essential/stage2-eglibc.morph)25
-rw-r--r--strata/core.morph6
-rw-r--r--strata/foundation.morph4
10 files changed, 168 insertions, 129 deletions
diff --git a/strata/bsp-x86_32-generic.morph b/strata/bsp-x86_32-generic.morph
index 303dd777..fa9dbf75 100644
--- a/strata/bsp-x86_32-generic.morph
+++ b/strata/bsp-x86_32-generic.morph
@@ -20,7 +20,7 @@ chunks:
- name: syslinux
morph: strata/bsp-x86_32-generic/syslinux.morph
repo: upstream:syslinux
- ref: 8821237240c5374d83298b2da5ad88fa1e3c1ef7
+ ref: 2f6d21d2a560cb5581694fef42ee9a350d5f302f
unpetrify-ref: baserock/morph
build-depends:
- nasm
diff --git a/strata/bsp-x86_64-generic.morph b/strata/bsp-x86_64-generic.morph
index 81c99e42..8a7b9c9b 100644
--- a/strata/bsp-x86_64-generic.morph
+++ b/strata/bsp-x86_64-generic.morph
@@ -20,7 +20,7 @@ chunks:
- name: syslinux
morph: strata/bsp-x86_64-generic/syslinux.morph
repo: upstream:syslinux
- ref: 8821237240c5374d83298b2da5ad88fa1e3c1ef7
+ ref: 2f6d21d2a560cb5581694fef42ee9a350d5f302f
unpetrify-ref: baserock/morph
build-depends:
- nasm
diff --git a/strata/bsp-x86_both-tools.morph b/strata/bsp-x86_both-tools.morph
index 4d6d29e4..c1ba501c 100644
--- a/strata/bsp-x86_both-tools.morph
+++ b/strata/bsp-x86_both-tools.morph
@@ -14,7 +14,7 @@ chunks:
- name: syslinux
morph: strata/bsp-x86_both-tools/syslinux.morph
repo: upstream:syslinux
- ref: 8821237240c5374d83298b2da5ad88fa1e3c1ef7
+ ref: 2f6d21d2a560cb5581694fef42ee9a350d5f302f
unpetrify-ref: baserock/morph
build-depends:
- nasm
diff --git a/strata/build-essential.morph b/strata/build-essential.morph
index 7886b610..38bd60d8 100644
--- a/strata/build-essential.morph
+++ b/strata/build-essential.morph
@@ -36,7 +36,7 @@ products:
include:
- fhs-dirs-.*
- busybox-.*
- - eglibc-nss
+ - glibc-nss
chunks:
- name: stage1-binutils
morph: strata/build-essential/stage1-binutils.morph
@@ -49,7 +49,7 @@ chunks:
- name: stage1-gcc
morph: strata/build-essential/stage1-gcc.morph
repo: upstream:gcc-tarball
- ref: 0a1a077d3466cd99a4ed5590db2146b3fec6fff1
+ ref: 999c918a7ad32ad436395666def22ab90b3447fe
unpetrify-ref: baserock/build-essential
build-depends:
- stage1-binutils
@@ -65,11 +65,11 @@ chunks:
- stage1-gcc
build-mode: bootstrap
prefix: /tools
-- name: stage2-eglibc
- morph: strata/build-essential/stage2-eglibc.morph
- repo: upstream:eglibc2
- ref: 43ee5d250ad47d2bee8ec17954efb7f22d2b804c
- unpetrify-ref: baserock/2.15-build-essential
+- name: stage2-glibc
+ morph: strata/build-essential/stage2-glibc.morph
+ repo: upstream:glibc
+ ref: 52cf9a0153c14df4f6ae3bd0e1e6cc5d171e586c
+ unpetrify-ref: baserock/glibc-2.20
build-depends:
- stage1-binutils
- stage1-gcc
@@ -84,41 +84,50 @@ chunks:
build-depends:
- stage1-binutils
- stage1-gcc
- - stage2-eglibc
+ - stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: stage2-gcc-fixed-headers
morph: strata/build-essential/stage2-gcc-fixed-headers.morph
repo: upstream:gcc-tarball
- ref: 0a1a077d3466cd99a4ed5590db2146b3fec6fff1
+ ref: 999c918a7ad32ad436395666def22ab90b3447fe
unpetrify-ref: baserock/build-essential
build-depends:
- stage1-binutils
- stage1-gcc
- - stage2-eglibc
+ - stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: stage2-gcc
morph: strata/build-essential/stage2-gcc.morph
repo: upstream:gcc-tarball
- ref: 0a1a077d3466cd99a4ed5590db2146b3fec6fff1
+ ref: 999c918a7ad32ad436395666def22ab90b3447fe
unpetrify-ref: baserock/build-essential
build-depends:
- stage1-binutils
- stage1-gcc
- - stage2-eglibc
+ - stage2-glibc
- stage2-gcc-fixed-headers
build-mode: bootstrap
prefix: /tools
- name: stage2-busybox
morph: strata/build-essential/stage2-busybox.morph
repo: upstream:busybox
- ref: eeb9014f28e3aa00673a0fad127e7420da4392db
+ ref: 8a801e0f024f1385d8e989b80b90443546bceae7
unpetrify-ref: baserock/build-essential
build-depends:
- stage1-binutils
- stage1-gcc
- - stage2-eglibc
+ - stage2-glibc
+ build-mode: bootstrap
+ prefix: /tools
+- name: stage2-fake-bash
+ morph: strata/build-essential/stage2-fake-bash.morph
+ repo: upstream:bash
+ ref: 3590145af6f1c9fa321dff231f69ae696e7e740b
+ unpetrify-ref: baserock/bash-4.3-patch-27
+ build-depends:
+ - stage2-busybox
build-mode: bootstrap
prefix: /tools
- name: stage2-fhs-dirs
@@ -137,7 +146,7 @@ chunks:
build-depends:
- stage1-binutils
- stage1-gcc
- - stage2-eglibc
+ - stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: stage2-make
@@ -148,19 +157,19 @@ chunks:
build-depends:
- stage1-binutils
- stage1-gcc
- - stage2-eglibc
+ - stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: stage2-reset-specs
morph: strata/build-essential/stage2-reset-specs.morph
- repo: upstream:eglibc2
- ref: 43ee5d250ad47d2bee8ec17954efb7f22d2b804c
- unpetrify-ref: baserock/2.15-build-essential
+ repo: upstream:glibc
+ ref: 52cf9a0153c14df4f6ae3bd0e1e6cc5d171e586c
+ unpetrify-ref: baserock/glibc-2.20
build-depends:
- stage1-binutils
- stage1-gcc
- stage2-linux-api-headers
- - stage2-eglibc
+ - stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: fhs-dirs
@@ -171,7 +180,7 @@ chunks:
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
@@ -186,22 +195,23 @@ chunks:
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
-- name: eglibc
- morph: strata/build-essential/eglibc.morph
- repo: upstream:eglibc2
- ref: df0258044f321990eadd647e03095a48ad04c1a8
- unpetrify-ref: baserock/2.15-build-essential
+- name: glibc
+ morph: strata/build-essential/glibc.morph
+ repo: upstream:glibc
+ ref: 52cf9a0153c14df4f6ae3bd0e1e6cc5d171e586c
+ unpetrify-ref: baserock/glibc-2.20
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-fake-bash
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
@@ -210,9 +220,9 @@ chunks:
- stage2-reset-specs
- linux-api-headers
artifacts:
- eglibc-gconv: build-essential-runtime
- eglibc-libs: build-essential-minimal
- eglibc-nss: build-essential-runtime
+ glibc-gconv: build-essential-runtime
+ glibc-libs: build-essential-minimal
+ glibc-nss: build-essential-runtime
- name: zlib
morph: strata/build-essential/zlib.morph
repo: upstream:zlib
@@ -221,14 +231,14 @@ chunks:
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
- - eglibc
+ - glibc
artifacts:
zlib-libs: build-essential-minimal
- name: binutils
@@ -239,31 +249,31 @@ chunks:
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
- - eglibc
+ - glibc
- zlib
- name: busybox
morph: strata/build-essential/busybox.morph
repo: upstream:busybox
- ref: bf06394ab87ff22662084c82c1821847c25b7f21
+ ref: 8a801e0f024f1385d8e989b80b90443546bceae7
unpetrify-ref: baserock/build-essential
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
- - eglibc
+ - glibc
- name: gawk
morph: strata/build-essential/gawk.morph
repo: upstream:gawk
@@ -272,30 +282,30 @@ chunks:
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
- - eglibc
+ - glibc
- name: gcc
morph: strata/build-essential/gcc.morph
repo: upstream:gcc-tarball
- ref: b0254026149b13782eae26d38435a4c62a002cf0
+ ref: 5c08cea34d5562dc828b85c7c02519246823aaf0
unpetrify-ref: baserock/build-essential-4.7
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
- - eglibc
+ - glibc
- zlib
artifacts:
gcc-libs: build-essential-minimal
@@ -307,14 +317,14 @@ chunks:
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
- - eglibc
+ - glibc
- name: ccache
morph: strata/build-essential/ccache.morph
repo: upstream:ccache
@@ -323,12 +333,12 @@ chunks:
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
- - eglibc
+ - glibc
- zlib
diff --git a/strata/build-essential/eglibc.morph b/strata/build-essential/eglibc.morph
deleted file mode 100644
index cc827ef9..00000000
--- a/strata/build-essential/eglibc.morph
+++ /dev/null
@@ -1,62 +0,0 @@
-name: eglibc
-kind: chunk
-products:
-- artifact: eglibc-nss
- include:
- - etc/nsswitch.conf
- - (usr/)?lib/libnss.*
-- artifact: eglibc-gconv
- include:
- - (usr/)?lib/gconv/.*
-- artifact: eglibc-libs
- include:
- - sbin/ldconfig
- - lib(32|64)?/ld-.*
- - (usr/)?lib(exec)?/pt_chown
-- artifact: eglibc-bins
- include:
- - (usr/)?s?bin/.*
- - (usr/)?libexec/getconf/.*
- - (usr/)?lib/libSegFault\.so(\.\d+)*$
-- artifact: eglibc-libs
- include:
- - (usr/)?lib(32|64)?/lib[^/]*\.so(\.\d+)*$
-- artifact: eglibc-devel
- include:
- - (usr/)?include/.*
- - (usr/)?lib(32|64)?/lib.*\.a
- - (usr/)?lib(32|64)?/lib.*\.la
- - (usr/)?(lib(32|64)?|share)/pkgconfig/.*\.pc
- - (usr/)?lib(32|64)?/.*\.o
-- artifact: eglibc-locale
- include:
- - (usr/)?share/locale/.*
- - (usr/)?share/i18n/.*
- - (usr/)?share/zoneinfo/.*
-- artifact: eglibc-misc
- include:
- - .*
-configure-commands:
-- mkdir o
-
-# Necessary for ARM port
-- cd libc && ln -s ../ports ports
-
-- |
- export CFLAGS="-O2 $CFLAGS"; cd o &&
- ../libc/configure \
- $(../morph-arch-config) \
- --prefix="$PREFIX" \
- --disable-profile \
- --enable-kernel=2.6.25 \
- --enable-add-ons=nptl,ports \
- --without-cvs \
- --without-selinux
-
-build-commands:
-- cd o && make localtime=UTC
-
-install-commands:
-- cd o && make install_root="$DESTDIR" localtime=UTC install
-- mkdir -p "$DESTDIR/etc"
-- install -m 644 -o root -g root nsswitch.conf "$DESTDIR/etc/nsswitch.conf"
diff --git a/strata/build-essential/glibc.morph b/strata/build-essential/glibc.morph
new file mode 100644
index 00000000..789283eb
--- /dev/null
+++ b/strata/build-essential/glibc.morph
@@ -0,0 +1,86 @@
+name: glibc
+kind: chunk
+products:
+- artifact: glibc-nss
+ include:
+ - etc/nsswitch.conf
+ - (usr/)?lib/libnss.*
+- artifact: glibc-gconv
+ include:
+ - (usr/)?lib/gconv/.*
+- artifact: glibc-libs
+ include:
+ - sbin/ldconfig
+ - lib(32|64)?/ld-.*
+ - (usr/)?lib(exec)?/pt_chown
+- artifact: glibc-bins
+ include:
+ - (usr/)?s?bin/.*
+ - (usr/)?libexec/getconf/.*
+ - (usr/)?lib/libSegFault\.so(\.\d+)*$
+- artifact: glibc-libs
+ include:
+ - (usr/)?lib(32|64)?/lib[^/]*\.so(\.\d+)*$
+- artifact: glibc-devel
+ include:
+ - (usr/)?include/.*
+ - (usr/)?lib(32|64)?/lib.*\.a
+ - (usr/)?lib(32|64)?/lib.*\.la
+ - (usr/)?(lib(32|64)?|share)/pkgconfig/.*\.pc
+ - (usr/)?lib(32|64)?/.*\.o
+- artifact: glibc-locale
+ include:
+ - (usr/)?share/locale/.*
+ - (usr/)?share/i18n/.*
+ - (usr/)?share/zoneinfo/.*
+- artifact: glibc-misc
+ include:
+ - .*
+configure-commands:
+- mkdir o
+
+- |
+ case "$MORPH_ARCH" in
+ armv7*)
+ ARCH_FLAGS="--without-fp" ;;
+ esac
+
+ # We override the PATH here to remove /tools/bin from it.
+ # Thanks to this glibc finds bash in /bin/bash through the /bin
+ # symlink. This is important because glibc changes the path to bash
+ # of the shebang in some scripts and these scripts will be broken if
+ # they point to bash in /tools/bin/bash.
+ export PATH="/usr/bin:/sbin:/bin";
+ export CFLAGS="-O2 $CFLAGS";
+ cd o && ../configure \
+ $ARCH_FLAGS \
+ --prefix="$PREFIX" \
+ --disable-profile \
+ --enable-kernel=2.6.25 \
+ --without-cvs \
+ --without-selinux \
+ --enable-obsolete-rpc
+
+build-commands:
+- cd o && make localtime=UTC
+
+install-commands:
+- cd o && make install_root="$DESTDIR" localtime=UTC install
+- mkdir -p "$DESTDIR/etc"
+- |
+ cat <<EOF > nsswitch.conf
+ passwd: compat
+ group: compat
+ shadow: compat
+
+ hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns mdns4
+ networks: files
+
+ protocols: db files
+ services: db files
+ ethers: db files
+ rpc: db files
+
+ netgroup: nis
+ EOF
+- install -m 644 -o root -g root nsswitch.conf "$DESTDIR/etc/nsswitch.conf"
diff --git a/strata/build-essential/stage2-fake-bash.morph b/strata/build-essential/stage2-fake-bash.morph
new file mode 100644
index 00000000..021fd366
--- /dev/null
+++ b/strata/build-essential/stage2-fake-bash.morph
@@ -0,0 +1,4 @@
+name: stage2-fake-bash
+kind: chunk
+install-commands:
+- printf '#!/bin/sh\nexec /bin/sh "$@"\n' | install -D /proc/self/fd/0 -m 755 "$DESTDIR$PREFIX/bin/bash"
diff --git a/strata/build-essential/stage2-eglibc.morph b/strata/build-essential/stage2-glibc.morph
index 3a7277ac..ffa0970b 100644
--- a/strata/build-essential/stage2-eglibc.morph
+++ b/strata/build-essential/stage2-glibc.morph
@@ -1,28 +1,29 @@
-name: stage2-eglibc
+name: stage2-glibc
kind: chunk
configure-commands:
- mkdir o
-# Necessary for ARM port
-- cd libc && ln -s ../ports ports
-
# Configure flag notes:
# 1. Avoid installing to PREFIX/lib64 on x86_64.
# 2. Location of linux-api-headers.
-# 3. Normal flags. See eglibc.morph.
+# 3. Normal flags. See glibc.morph.
# 4. Force configuration values of certain things that can't be detected
# in a cross-compile.
- |
+ case "$MORPH_ARCH" in
+ armv7*)
+ ARCH_FLAGS="--without-fp" ;;
+ esac
+
export CFLAGS="-O2 $CFLAGS"; export CXX=false; \
- cd o && ../libc/configure \
- $(../morph-arch-config) \
- --build=$(../libc/scripts/config.guess) --host=$TARGET_STAGE1 \
+ cd o && ../configure \
+ $ARCH_FLAGS \
+ --build=$(../scripts/config.guess) --host=$TARGET_STAGE1 \
--prefix="$PREFIX" \
`# [1]` --libdir="$PREFIX/lib" \
`# [2]` --with-headers="$(pwd)/../../$PREFIX/include" \
`# [3]` --disable-profile --enable-kernel=2.6.25 \
- --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
@@ -31,12 +32,12 @@ build-commands:
install-commands:
- cd o && make install_root="$DESTDIR" localtime=UTC install
-- sh stage2-eglibc-fix-specs
+- sh stage2-glibc-fix-specs
# Install a symlink for the program interpreter (ld.so) so that binaries
-# built in stage 3 before the stage 3 eglibc is built can use it.
+# built in stage 3 before the stage 3 glibc is built can use it.
# FIXME: get a better way of finding the name of the loader. The lib64
-# path is hardcoded into eglibc in the file
+# path is hardcoded into glibc in the file
# sysdeps/unix/sysv/linux/configure.
- install -d $DESTDIR/lib
- |
diff --git a/strata/core.morph b/strata/core.morph
index 5c90c964..96731777 100644
--- a/strata/core.morph
+++ b/strata/core.morph
@@ -31,7 +31,7 @@ chunks:
- name: m4
morph: strata/core/m4.morph
repo: upstream:m4
- ref: d533342af991401d865de9b037ac03cdc9bd852e
+ ref: cfbd353f3a2dc517992bcdc747281a22feb0c4db
unpetrify-ref: baserock/build-essential
build-depends: []
- name: mini-utils
@@ -226,8 +226,8 @@ chunks:
- name: bison
morph: strata/core/bison.morph
repo: upstream:bison
- ref: 6729ad1c314b179225325dcc1bc684077a71f859
- unpetrify-ref: baserock/morph
+ ref: 2ab6d1daaccf32fc4314e4b2fe44da977f11a308
+ unpetrify-ref: baserock/v3.0.2
build-depends:
- autoconf
- automake
diff --git a/strata/foundation.morph b/strata/foundation.morph
index 0b2bd92e..6d45fb1f 100644
--- a/strata/foundation.morph
+++ b/strata/foundation.morph
@@ -124,8 +124,8 @@ chunks:
- name: patch
morph: strata/foundation/patch.morph
repo: upstream:patch
- ref: 9a16dcb97aac1a26af4372d95bd62b84f3f1264a
- unpetrify-ref: baserock/morph
+ ref: 3bbb26c928a147cfcf0756f1cc0a1307e5cc663f
+ unpetrify-ref: baserock/v2.7.1
build-depends: []
- name: tbdiff
morph: strata/foundation/tbdiff.morph