1. 10 Oct, 2011 8 commits
  2. 07 Oct, 2011 13 commits
    • David 'Digit' Turner's avatar
      DEV-SCRIPTS-USAGE.TXT: new document · cd4b3969
      David 'Digit' Turner authored
      Change-Id: I298c5b7d84b1cbe9929e0471d940fc69c31aa284
      cd4b3969
    • David 'Digit' Turner's avatar
      ndk-stack: Improve Makefile · c129556e
      David 'Digit' Turner authored
      Change-Id: I735daef01d125f875facbb6141a4829f4950fc8a
      c129556e
    • David 'Digit' Turner's avatar
      prebuilt-common.sh: refinements · 251da5e2
      David 'Digit' Turner authored
      Change-Id: I26e43eef14ced900fade15058bd3d95b4fa3e369
      251da5e2
    • David 'Digit' Turner's avatar
      build-gcc.sh: Remove --copy-libstdcxx and --keep-libstdcxx options · 223fc9fc
      David 'Digit' Turner authored
      These options are obsolete. Instead, the build-gnu-libstdc++.sh
      script can be used to rebuild the GNU libstdc++ library directly.
      
      Change-Id: I281653915a5bce272ac8d593038291b73270c128
      223fc9fc
    • David 'Digit' Turner's avatar
      build-gnu-libstdc++.sh: refinements · d1fdfe9f
      David 'Digit' Turner authored
      + Add a patch to disable libtool versioning when building
        the GNU libstdc++.so
      
      Change-Id: I450513be84e00d02dd52a49ffccf18cfc9064e81
      d1fdfe9f
    • David 'Digit' Turner's avatar
      prebuilt-common.sh: add register_jobs_option · 2397ae75
      David 'Digit' Turner authored
      Change-Id: Ibed2026c0ff80041a4d024b7b15dc2c70240dc27
      2397ae75
    • David 'Digit' Turner's avatar
      gen-platforms.sh: Auto-generate <android/api-level.h> · 3806a2d1
      David 'Digit' Turner authored
      Auto-generate the <android/api-level.h> header which contains
      a single macro definition for the native API level that the code
      is built against.
      
      Previously, the corresponding files were stored under
      ../development/ndk and required manual updating, which is tedious
      and error-prone
      
      + remove obsolete dev-generate-api-levels.sh script
      
      Change-Id: Ibe482281dff7d86e0a46f6dd9d7096e3cc790e8e
      3806a2d1
    • David 'Digit' Turner's avatar
      gen-platforms.sh: Add --minimal flag · 4d704b59
      David 'Digit' Turner authored
      This flag is used to indicate that you only want to generate
      sysroots that can be used to build the host toolchains, so this
      will only copy the system headers and static objects/libraries.
      
      All samples and shared libraries are ignored, and symlinks are not
      used to speed up execution (so --no-samples and --no-symlinks are
      implied)
      
      + Drop --no-samples, and use --samples instead, since we only
        want to regenerate the samples directories when generating
        package releases.
      
      + Rename --no-symlinks to --fast-copy
      
      Change-Id: I110750a736f42ab5b34b5c6ca2a1c35ada3eba3d
      4d704b59
    • David 'Digit' Turner's avatar
      gen-platforms.sh: sort platforms properly · 08132bcb
      David 'Digit' Turner authored
      Ensures that the list of platforms is sorted in proper numerical
      order, i.e. that android-10 appears after android-9 and not before
      android-3
      
      + Don't make error message is a symbols directory doesn't exist
      (e.g. on x86 for API level < 9)
      
      Change-Id: I1fa5b8a43df1de4ee51059065d5c3e24dc90a5e2
      08132bcb
    • David 'Digit' Turner's avatar
      dev-platform-compress.sh: new script · a666d1c4
      David 'Digit' Turner authored
      Introduces a new script that can do the opposite of
      dev-platform-expand-all.sh, which is to compress the content of
      /tmp/ndk-$USER/platforms into /tmp/ndk-$USER/platforms-compressed
      
      This ensures that if two successive platforms to define the same
      header or symbol list, only the first is copied to the destination.
      
      You would typically use this script, then compare the content of
      /tmp/ndk-$USER/platforms-compressed with the one of
      $TOP/development/ndk/platforms to check what has changed.
      
      Change-Id: Id277f786789a2b2395259e0f392d3e9975526197
      a666d1c4
    • David 'Digit' Turner's avatar
      dev-platform-expand-all.sh: new script · 4cda6eb4
      David 'Digit' Turner authored
      This patch provides a new script that can call dev-platform-expand.sh
      for all API levels and all architectures automatically. This is useful
      to build a fully expanded tree in /tmp/ndk-$USER/platforms from the
      content of development/ndk
      
      Note that this only copies files, i.e. headers and symbol lists,
      it doesn't generate any shell libraries.
      
      Change-Id: Ib842c80b8985a7bc1b8f5764eed14ba7daec4216
      4cda6eb4
    • David 'Digit' Turner's avatar
      dev-platform-expand.sh: correct version ordering · fa0e6609
      David 'Digit' Turner authored
      Ensures that the platforms are sorted in numerical order, i.e.
      that android-10 will appear after android-9, instead of before android-3
      
      + Deal with non-existing symbols directories
      
      Change-Id: I58065514d3b8b1bce6bb524b945d5463953b2ffa
      fa0e6609
    • David 'Digit' Turner's avatar
      gen-system-symbols.sh: don't forget WEAK symbols · e9f5fc93
      David 'Digit' Turner authored
      Change-Id: Ia46585f0a3c5f867833a42870f739cde53c41baf
      e9f5fc93
  3. 01 Oct, 2011 1 commit
  4. 30 Sep, 2011 15 commits
    • David 'Digit' Turner's avatar
      gen-platforms.sh: new development script · 180419b3
      David 'Digit' Turner authored
      This patch adds a new script named 'gen-platforms.sh', used
      like 'build-platforms.sh' to generate final platform sysroot
      directories. They take the same parameters.
      
      The difference between these two scripts is that gen-platforms.sh
      does generate shared libraries from functions/variables list files
      found in development/ndk/platforms/android-$PLATFORM/arch-$ARCH/symbols/
      
      built-platforms.sh instead copies the files from .../lib directory
      instead.
      
      In a future patch, we're going to remove all prebuilt shared libraries
      from development/ndk, and replace them with symbol files. We will also
      remove build-platforms.sh and replace its usage by gen-platforms.sh
      
      Change-Id: I2720095f0fcbbbfb5e1374cd1fdaac898ec53393
      180419b3
    • David 'Digit' Turner's avatar
      dev-platform-imports.sh: new development script · 0528f4d8
      David 'Digit' Turner authored
      This patch introduces the dev-platform-imports.sh script.
      Its role is import system headers and libraries from a fresh
      Android platform build and use them to populate a special
      "import directory" (e.g. /tmp/ndk-$USER/platforms-import/)
      
      The import directory will contain only headers and symbols
      file. For each system shared library, two symbol files will
      be generated:
      
        - $DST/android-$PLATFORM/arch-$ARCH/symbols/$LIBNAME.functions.txt
        - $DST/android-$PLATFORM/arch-$ARCH/symbols/$LIBNAME.variables.txt
      
      The idea is that we're going to remove all prebuilt shared libraries
      from development/ndk in a future patch. Instead, we will store the
      symbols and generate shell libraries when calling build-platforms.sh
      
      We need to keep the prebuilt static libraries though because they
      are required to build the toolchain files (plus, some NDK developers
      do use them to generate static executables).
      
      + add gen-system-symbols.sh which does the symbol file generation
        plus the filtering of undesirable symbols in our system libraries.
      
      Change-Id: I5882cd03a6e9ccc580a6577a6684ec40f6a1a739
      0528f4d8
    • David 'Digit' Turner's avatar
      GAbi++: Add one time construction support · 26cc9e31
      David 'Digit' Turner authored
      This patch adds sources/cxx-stl/gabi++/src/one_time_construction.cc
      and removes the dependency on libstdc++ from GAbi++
      
      The implementation is based on pthread which is always provided by
      the C library on Android (the latter is always linked to generated
      binaries, so there is no need to list it in LOCAL_EXPORT_LDLIBS).
      
      + Add unit test to check that one-time-construction works properly.
      
      Change-Id: Ic4af9f19814cf9efd7caa60bc84e9c03fc4bf656
      26cc9e31
    • David 'Digit' Turner's avatar
      Fix a bug in the computation of installable dependencies · 1322b9f4
      David 'Digit' Turner authored
      This patch fixes a bug in definitions.mk regarding the list
      of installable dependencies for a given application. It ignored
      prebuilt shared libraries.
      
      + Fix another bug where we were not using the prebuilt GAbi++
        libraries when using APP_STL := gabi++_shared/static
      
      Change-Id: Iefac2ccc49ee16e8b8e322c64979946d875212d6
      1322b9f4
    • David 'Digit' Turner's avatar
      updgrade binutils to 2.20.1 · 06fc88fc
      David 'Digit' Turner authored
      Change-Id: I6778883120627b491721f20181eb9f0e914edcfd
      06fc88fc
    • David 'Digit' Turner's avatar
      Update GDB to version 7.1.x · 49e5ea4f
      David 'Digit' Turner authored
      Change-Id: Idabf82e3fa909a1000011fd621810a62857e453e
      49e5ea4f
    • David 'Digit' Turner's avatar
      build-host-sed.sh: new script to build sed from sources · a6dfe5f7
      David 'Digit' Turner authored
      This patch adds build-host-sed.sh that can be used to rebuild
      host versions of the sed tool, which will be placed under
      prebuilt/<system>/bin/
      
      This is mainly for native Win32 support, since we can't rely
      on having a working sed in this environment.
      
      A future patch will modify the NDK build system to use the
      prebuilt binary automatically.
      
      + Add prebuilt/ to .gitignore
      + Remove prebuilt/ in dev-cleanup.sh
      
      Change-Id: Ibe3561c189e90dde68023b7cbe1e9dc03dff1004
      a6dfe5f7
    • David 'Digit' Turner's avatar
      prebuilt-common.sh: Distinguish host and target builds · 3da53797
      David 'Digit' Turner authored
      This patch modifies the helper functions inside prebuilt-common.sh
      to distinguish between host and target builds more easily.
      
      A target build is used to build target Android binaries, while a host
      one is used to build binaries that will run on the host machine, i.e.
      invoked by the NDK build script.
      
      We will use host builds to generate the Windows helper binaries that
      the NDK depends on (sed, awk, make, etc...) in future patches.
      
      Change-Id: Ifbc2a112ee08fa42c9987ee26fee4539476e91a4
      3da53797
    • David Turner's avatar
      run-standalone-tests.sh: use prebuilt-common.sh · a719d890
      David Turner authored
      Change-Id: I19d6f065aa1e3c25b24e4031b4199501a242c141
      a719d890
    • David 'Digit' Turner's avatar
      prebuilt-common.sh: allow inclusion from any script · 32849be7
      David 'Digit' Turner authored
      This patch allows any script to source prebuilt-common.sh
      properly. Before that, only patches in the same directory,
      i.e. build/tools/, could source it without errors.
      
      Note: To do that, the parent script must define NDK_BUILDTOOLS_PATH
      to point to the build/tools/ directory. If the variable is not defined,
      prebuilt-common.sh assumes that it is sources from build/tools/
      
      Change-Id: If91360a0a10571f968049003c8f7192ad98c7f5c
      32849be7
    • David Turner's avatar
      prebuilt-common.sh: get_prebuilt_install_prefix · 9ac252a1
      David Turner authored
      This patch adds a new function to prebuilt-common.sh that can
      return the install location of prebuilt host binaries. It
      currently is: $NDK/prebuilt/$HOST_TAG/
      
      This will be used to store host binaries, like the Win32 versions
      of GNU Make, Awk, Sed and others.
      
      Change-Id: I8a543b4f4d6b728e13046f3759a5b8584cea6001
      9ac252a1
    • David 'Digit' Turner's avatar
      Define HOST_OS as 'cygwin' on Cygwin · 462c6319
      David 'Digit' Turner authored
      This patch changes the definition of HOST_OS to 'cygwin' when
      we detect that the build system is invoked from a Cygwin-compatible
      GNU Make program.
      
      The old value of 'windows' will now be used for the case where the
      build system is invoked from a vanilla Win32 GNU Make binary, e.g.
      from a standard Windows shell.
      
      First step towards getting rid of Cygwin.
      
      Change-Id: I4f355a5d254b8d0f544ab6de60c0d7ff85ca23ec
      462c6319
    • David 'Digit' Turner's avatar
      Make STLPort support RTTI through GAbi++ · c8f94396
      David 'Digit' Turner authored
      This patch modifies our build of stlport to include the GAbi++
      runtime in order to support RTTI.
      
      Change-Id: I8ff1853ad886e217f3d0d8a9366fc5075c63cc34
      c8f94396
    • David 'Digit' Turner's avatar
      gabi++: Add missing new and delete operators · bb499f5b
      David 'Digit' Turner authored
      Also, for now we still need to depend on the system libstdc++
      to implement one-time-construction properly. We should probably
      implement that in GAbi++ itself, but this will come in another
      patch.
      
      Note that the system libstdc++ uses private Bionic functions
      that cannot easily be used in the NDK. Especially those related
      to device-specific memory barriers. A correct NDK implementation
      will likely use pthread mutexes instead.
      
      Change-Id: I2cd78aa4b0d9cf2d1e3036b38cbc223f4e0d4d5a
      bb499f5b
    • David 'Digit' Turner's avatar
      run-tests.sh: exact string match for --test=<name> option · bcb316b0
      David 'Digit' Turner authored
      This patch ensures that run-tests.sh uses an exact match.
      Before that, when using --test=test-stlport, it would
      try to run both test-stlport-rtti and test-stlport
      
      Change-Id: Id67e0e783b559639240d49f6c6803f5e71b1c065
      bcb316b0
  5. 29 Sep, 2011 2 commits
    • David 'Digit' Turner's avatar
      build-gcc.sh: Generate SOURCES file in final archive · dbb47199
      David 'Digit' Turner authored
      This patch modifies download-toolchain-sources.sh so that it
      creates a SOURCES file listing the SHA-1 states of every toolchain
      git repository that has been downloaded.
      
      Similarly, build-gcc.sh is modified to copy the file to the final
      install location / archive.
      
      Change-Id: Ifcc40a7e671c6e3f23613ac8bcc705bb9b9be448
      dbb47199
    • David 'Digit' Turner's avatar
      Support several C++ source file extensions · c6faf8bf
      David 'Digit' Turner authored
      This patch modifies the build system to allow one to
      list several C++ source file extensions in LOCAL_CPP_EXTENSION.
      
      + Check the value of LOCAL_CPP_EXTENSION and warn about values
        that do not start with a dot (and ignore them).
      
      Note that this doesn't change the default (which is to use '.cpp')
      
      Change-Id: I0b5dfe8699f90955560cd0dbf9f52336970aaabd
      c6faf8bf
  6. 21 Sep, 2011 1 commit
    • David 'Digit' Turner's avatar
      GAbi++: new C++ runtime with RTTI support · c38f5f52
      David 'Digit' Turner authored
      This patch adds a new C++ runtime that can be used by modules
      by setting APP_STL to either 'gabi++_static' or 'gabi++_shared'
      in their Application.mk
      
      GAbi++ is an alternative to the GNU libsupc++ that provides
      RTTI support (with exceptions added in the future).
      
      The goal is to use it to support RTTI (and later exceptions)
      with our version of STLport, or even a different non-GNU STL.
      
      + new build-gabi++.sh script to rebuild the prebuilt libraries
        from sources.
      
      + support in rebuild-all-prebuilt.sh
      
      + support in package-release.sh
      
      + Unit test to check that RTTI actually works, both in the
        static and shared library case.
      
      Change-Id: I7e73a31a4d24b5baa36fef357b69064c192ddc56
      c38f5f52