summaryrefslogtreecommitdiff
path: root/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc-nolibc.morph
blob: b5a8c3384cfdc23837f7002148cdfbf2bff6b2db (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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
name: armv7lhf-cross-gcc-nolibc
kind: chunk

configure-commands:
- mkdir o

# Configure flag notes:
#  1. Standard flags. See gcc.morph.
#  2. See stage1-gcc.morph.
#  3. 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.
#  4. 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
  export TARGET_STAGE1=armv7lhf-none-linux-gnueabi

  case "$MORPH_ARCH" in
      armv7lhf) ARCH_FLAGS="--with-arch=armv7-a \
                            --with-cpu=cortex-a9 \
                            --with-tune=cortex-a9 \
                            --with-fpu=vfpv3-d16 \
                            --with-float=hard" ;;
      armv7*)   ARCH_FLAGS="--with-arch=armv7-a" ;;
  esac

  cd o && ../configure                                        \
            $ARCH_FLAGS                                       \
            --build=$(sh ../config.guess)                     \
            --host=$(sh ../config.guess)                      \
            --target="$TARGET_STAGE1"                         \
            --prefix="$PREFIX"                                \
    `# [1]` --libdir="$PREFIX/lib"                            \
    `# [2]` --with-sysroot=/nonexistentdir                    \
            --with-newlib                                     \
    `# [2]` --with-local-prefix="$PREFIX"                     \
    `# [2]` --with-native-system-header-dir="$PREFIX/include" \
    `# [3]` --with-build-time-tools="$PREFIX/$TARGET/bin"     \
    `# [3]` --with-as="$PREFIX/$TARGET/bin/as"                \
    `# [3]` --with-ld="$PREFIX/$TARGET/bin/ld"                \
            --without-headers                                 \
            --disable-nls                                     \
            --disable-shared                                  \
    `# [4]` --disable-multilib                                \
    `# [4]` --disable-decimal-float                           \
    `# [4]` --disable-threads                                 \
    `# [4]` --disable-libatomic                               \
    `# [4]` --disable-libgomp                                 \
    `# [4]` --disable-libitm                                  \
    `# [4]` --disable-libquadmath                             \
    `# [4]` --disable-libsanitizer                            \
    `# [4]` --disable-libssp                                  \
    `# [4]` --disable-libvtv                                  \
    `# [4]` --disable-libcilkrts                              \
    `# [4]` --disable-libstdc++-v3                            \
            --enable-languages=c,c++

build-commands:
- |
  # See stage1-gcc.morph.
  case "$MORPH_ARCH" in
      armv7*)   sed -i "s/--host=none/--host=armv7a/" o/Makefile
                sed -i "s/--target=none/--target=armv7a/" o/Makefile ;;
  esac
  cd o && make

install-commands:
- cd o && make DESTDIR="$DESTDIR" install