kind: manual

sources:
- kind: git
  url: upstream:gcc-tarball
  track: baserock/gcc-7.1.0
  ref: 3b0dbcfa2e5d12bd80cab1b35f08653d61fe7838

depends:
- filename: gnu-toolchain/stage1.bst
  type: build
- gnu-toolchain/stage2-linux-api-headers.bst
- gnu-toolchain/stage2-glibc.bst

variables:
  prefix: /tools

environment:
  PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin

config:
  configure-commands:
  - mkdir o

  # Configure flag notes:
  #  1. The thread C++ library cannot be built, as the thread C library
  #     was not build in stage1-gcc.
  #  2. Prevents the installation of precompiled include files, which are
  #     not needed at this stage.
  #  3. From LFS: the header location of C++ needs to be explicitly given
  #     as we are running the configure script from the top-level
  #     directory.
  - |
    export STAGE2_SYSROOT="/"
    # -fPIC must be given, otherwise it will not be possible to create
    # shared libraries linked to libstdc++
    export CPPFLAGS="--sysroot=$STAGE2_SYSROOT -fPIC"
    export LDFLAGS="--sysroot=$STAGE2_SYSROOT"
    cd o && ../libstdc++-v3/configure                           \
              --build=$(sh ../config.guess)                     \
              --host="%{target-stage1}"                         \
              --target="%{target-stage1}"                       \
              --prefix="%{prefix}"                              \
              --disable-nls                                     \
              --disable-shared                                  \
              --disable-multilib                                \
      `# [1]` --disable-libstdcxx-threads                       \
      `# [2]` --disable-libstdcxx-pch                           \
      `# [3]` --with-gxx-include-dir=/tools/%{target-stage1}/include/c++/7.1.0

  build-commands:
  - cd o && make

  install-commands:
  - cd o && make DESTDIR="%{install-root}" install

  strip-commands:
  - |
    %{stage2-strip-binaries}
