- 10 Oct, 2011 2 commits
-
-
David 'Digit' Turner authored
Change-Id: I18fda0105cd53817850ec5b1bb272af6c31ef47a
-
David 'Digit' Turner authored
This patch moves the definitions of all defaults to dev-defaults. This should make it easier in the future to upgrade the toolchains or target binaries. Change-Id: I140b51c5b5116d37d16e628120f8f58974252de4
-
- 07 Oct, 2011 13 commits
-
-
David 'Digit' Turner authored
Change-Id: I298c5b7d84b1cbe9929e0471d940fc69c31aa284
-
David 'Digit' Turner authored
Change-Id: I735daef01d125f875facbb6141a4829f4950fc8a
-
David 'Digit' Turner authored
Change-Id: I26e43eef14ced900fade15058bd3d95b4fa3e369
-
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
-
David 'Digit' Turner authored
+ Add a patch to disable libtool versioning when building the GNU libstdc++.so Change-Id: I450513be84e00d02dd52a49ffccf18cfc9064e81
-
David 'Digit' Turner authored
Change-Id: Ibed2026c0ff80041a4d024b7b15dc2c70240dc27
-
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
-
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
-
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
-
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
-
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
-
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
-
David 'Digit' Turner authored
Change-Id: Ia46585f0a3c5f867833a42870f739cde53c41baf
-
- 01 Oct, 2011 1 commit
-
-
David 'Digit' Turner authored
Change-Id: I6afcb9445b6b5096a202de2dddcd02794b2509bd
-
- 30 Sep, 2011 15 commits
-
-
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
-
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
-
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
-
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
-
David 'Digit' Turner authored
Change-Id: I6778883120627b491721f20181eb9f0e914edcfd
-
David 'Digit' Turner authored
Change-Id: Idabf82e3fa909a1000011fd621810a62857e453e
-
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
-
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
-
David Turner authored
Change-Id: I19d6f065aa1e3c25b24e4031b4199501a242c141
-
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
-
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
-
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
-
David 'Digit' Turner authored
This patch modifies our build of stlport to include the GAbi++ runtime in order to support RTTI. Change-Id: I8ff1853ad886e217f3d0d8a9366fc5075c63cc34
-
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
-
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
-
- 29 Sep, 2011 2 commits
-
-
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
-
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
-
- 21 Sep, 2011 7 commits
-
-
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
-
David 'Digit' Turner authored
This patch introduces build/tools/builder-funcs.sh which contains several functions that can be used to build source files into static or shared libraries either directly or with the help of an auto-generated Makefile (in order to allow for parallel builds). Most of the functions come originally from build-stlport.sh which has been modified to use the new stuff in builder-funcs.sh Other NDK scripts will use this in the future to rebuild other prebuilt binaries. + Support for NDK_CCACHE to speed up rebuilds. E.g. build-stlport.sh now takes 0.9s on my machine (used to be 26s before that). Change-Id: I8ef97e62987f6aac6713821455d9a1ddcbbde796
-
David 'Digit' Turner authored
This is a new variable that can be used to specify that a given module relies on C++ exceptions or RTTI. This is done for several reasons: - First, we want to avoid always linking GNU libsupc++ to every final binary, because we're soon going to provide an alternative. - Second, it is useful to declare prebuilt binaries that have been compiled with these features. It allows the final link to work correctly. Note that the change is backwards-compatible. You can still use -frtti or -fexceptions in your compiler flags to enable the features too. Change-Id: I24b28935e4446c55b169d35990ec2a379ac08500
-
David 'Digit' Turner authored
Fix 1: Ensure shared libraries can be loaded: When running test programs on the device that rely on a shared library, ensure that LD_LIBRARY_PATH is properly define to allow the program to load normally. Previously, launching the program from the script would fail with a "Can't link ..." error. Fix 2: Build unit tests in a non-random directory: This patch changes run-tests.sh to build all unit tests in a non random directory (/tmp/ndk-$USER/tests/build/). This speeds up (about 2x) running the test suite when NDK_CCACHE is being used, because the content of the auto-generated dependency files are no longer random anymore. Change-Id: I0c24d5b50cca4a36a0b7a05cad1e0c2dbcbe4822
-
David 'Digit' Turner authored
This patch modifies the way the NDK build script computes the value of NDK_PROJECT_PATH when it is not already defined. If we are in the project's top-level directory when ndk-build is invoked, we can use the value '.' for NDK_PROJECT_PATH. This reduces the length of all paths passed to build commands (source files, object files, binaries), which can be useful for modules with a ton of sources (especially on Cygwin where the maximum command-line lenght is quite limited). Change-Id: I35a60df243c156690dc3020983b6232cd9b92ec6
-
David 'Digit' Turner authored
Ensure that if 'foo' imports static library 'bar' which imports static library 'zoo', then libfoo.so will be linked against both libbar.a and libzoo.a Before this patch, only libbar.a was used, which resulted in a link error. Change-Id: Icabb2d8eaa4c09b12d00b71919b4c3723d4f90e6
-
David 'Digit' Turner authored
This patch ensures that imported shared libraries are now copied to the install location (libs/<abi>) by default. Previously, one had to list them explicitely in APP_MODULES to do that (only top-level project modules were installed). Change-Id: I5a8628d2246d1ce4b4a8a56970fda64541bf3f19
-