Android NDK r19 Beta 2 (build 5160253)
Build libgcc_s DLLs with additional linker flags

Bug: http://b/113171785

This hacked up change passes security-related linker flags for libgcc_s
DLLs.  It should affect only Windows targets in gcc-4.8.3.

There doesn't seem a way to pass separate LDFLAGS for 32- and 64-bit
when running 'configure', so we'd end up without --high-entropy-va for
the 64-bit DLL.  Instead, this hacky change gets the behavior we want
and is unlikely to regress.  To be safe
https://android-review.googlesource.com/c/toolchain/mingw/+/743702 also
verifies that all DLLs built have the correct flags.

Test: toolchain/mingw/build.sh
Change-Id: I9d52e7b8cb449fcaf11c7f771761f11c7d35f99b
1 file changed
tree: 198a1688cfd9b5193dfd504d00a09c60eb5fb84b
  1. gcc-4.8.3/
  2. gcc-4.9/
  3. build-gcc.sh
  4. build.py
  5. compiler_wrapper
  6. OWNERS
  7. README.md
  8. README.version
  9. update-prebuilts.py
README.md

Building GCC for Android

The following process is used to build the GCC that is used by both the Android platfrom and the NDK.

Both Linux and Windows toolchains are built on Linux machines. Windows host binaries are built with mingw. Building binaries for Mac OS X should be built using 10.8 to ensure compatibility with Android's minimum supported hosts.

Prerequisites

  • Android GCC Repository

    • Check out the branch gcc

      repo init -u https://android.googlesource.com/platform/manifest -b gcc
      
      # Googlers, use
      repo init -u \
          persistent-https://android.git.corp.google.com/platform/manifest \
          -b gcc
      
  • Additional Linux Dependencies (available from apt):

    • texinfo
    • gcc-mingw32
    • bison
    • flex
    • libtool
  • Mac OS X also requires Xcode.

Host/Target prebuilts

For Linux or Darwin:

# Additional options and toolchain names will be show with --help.
$ python build.py --toolchain TOOLCHAIN_NAME

For Windows, from Linux:

$ python build.py --system windows TOOLCHAIN_NAME