summaryrefslogtreecommitdiff
path: root/strata/armv7lhf-cross-toolchain/armv7lhf-cross-eglibc.morph
blob: ee28c9dd48289304dc7de93e42fa77154fd5bd58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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
  export TARGET_STAGE1=armv7lhf-none-linux-gnueabi
  export CFLAGS="-O2 $CFLAGS"
  # eglibc looks for $TARGET-gcc, but not $TARGET_STAGE1-gcc even
  # though --build is specified, so we have to override what gcc to
  # use here.
  export CC="$TARGET_STAGE1-gcc"
  cd o && ../libc/configure \
    $(../morph-arch-config) \
    --build=$TARGET_STAGE1 --host=$TARGET \
    --prefix="$PREFIX" \
    `# [1]` --with-headers="$PREFIX/$TARGET/sys-root/$PREFIX/include" \
    `# [2]` --with-binutils="$PREFIX/$TARGET/bin" \
    `# [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

build-commands:
- cd o && make localtime=UTC

install-commands:
- |
  # eglibc doesn't help with sysroots, so we need to spell out the
  # full path ourselves.
  export TARGET=armv7lhf-baserock-linux-gnueabi
  cd o && make install_root="$DESTDIR/$PREFIX/$TARGET/sys-root/" \
               localtime=UTC install