History log of /ndk/build/tools/build-gnu-libstdc++.sh
Revision Date Author Comments
34b3f0c1a953da194ca398dd3a4e2ed51febac67 06-Jun-2014 Andrew Hsieh <andrewhsieh@google.com> misc fixes

Change-Id: I2d8d27609f1113d31590b1fb8bea68056b086769
ffed559fdff774543ede98b63bec26ef79e9415a 04-Jun-2014 Pavel Chupin <pavel.v.chupin@intel.com> Add gnustl multilibs copying for x86_64

Redesign copying in make-standalone-toolchain.sh to include multilib
case. Tested on arm and x86_64 and checked that layout is not changing.

Change-Id: I2dd0b7e097e2f37e1502dd06b89a53d0b40dd6bb
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
87e5a8725afdc616668dc156d323acea1ff85135 04-Jun-2014 Andrew Hsieh <andrewhsieh@google.com> Support mips64el multilib sysroot

mils64el-* toolchain has multib options, and their os-directory
-mabi=64 : lib64 (defualt)
-mabi=32 : lib (the original mips ABI)
-mabi=n32 : lib32 (the new 32-bit ABI, compatible with 64

We need this to build libatomic and libgomp, etc. Both are also
enabled in this CL

Change-Id: Ib11716493bd34aa3cb40ac51657b6efa6dfc941c
7b8c2d29558813aa55d8d6ea81002904911f9cf8 30-May-2014 Pavel Chupin <pavel.v.chupin@intel.com> Add 32/bits and x32/bits for multilib case

Multilib toolchain when building 32-bit C++ apps (with -m32) adds
dir "32" to lookup path where it's expected to find bits headers.

e.g. [STANDALONE_TOOLCHAIN]/bin/../lib/gcc/x86_64-linux-android/4.8/32

Patch turns on multilib for x86_64 libstdc++ build and fix
make-standalone-toolchain.sh to copy dirs.

Change-Id: I92f056bdea0c3bbf0b5046e3a3464014419596b5
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
8f59f826cd36a610bdb466d12306b126f4d6cd30 26-May-2014 Andrew Hsieh <andrewhsieh@google.com> Use toolchains/prebuilt/$HOST_TAG/ to compile target prebuilts

Previously we always choose 32-bit $HOST_TAG32 toolchains to compile
target prebuilts, when most developers are on 64-bit host and only
download the 64-bit host NDK. On 64-bit host, this CL will try
64-bit host toolchains first before falling back to 32-bit host
toolchains

Change-Id: I4eb3f6ce2e56d0a4c79a1cb70a6a47562b8a1a0c
4d0352f01e1ab1811b83c00f37b1e4c2fc35717f 16-Apr-2014 Andrew Hsieh <andrewhsieh@google.com> Add gcc-4.9/binutils-2.24

Now gcc4.8 also compile with binutils-2.24 as well (from 2.23)

Change-Id: I249dd4414182d2b42c231ca9dbe1e2ec960b995e
9a311503035b598a1ddfb24ebbb368ba7e4cb924 12-Apr-2014 Andrew Hsieh <andrewhsieh@google.com> Auto-configure gcc version for target prebuilts

By default, use gcc4.6 to build 32-bit target prebuilts, and
use gcc4.8 to build 64-bit target prebuilts

Change-Id: I271d12422b154fcdcef74351b85f7580dbd45612
b4d9896f9557fbd4d554349729aadd0d1ce602bf 10-Apr-2014 Andrew Hsieh <andrewhsieh@google.com> Initial 64-bit supports

Change-Id: Ie3cb416b34d97a9c42f889f9c47a0a54434e5c3e
f5a79e2e02a48f91954a680049782066682187ac 03-Feb-2014 Pavel Chupin <pavel.v.chupin@intel.com> Fix scope of CPPFLAGS

Otherwise there is a snowball of --sysroot flags on many archs build.

Change-Id: I3465621960ea026129a2cd63143b208d2e442d7f
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
1fcb2ce4859b08e93bcdc07743798b8cdaf4033c 29-Jan-2014 Pavel Chupin <pavel.v.chupin@intel.com> Fix lib dirs paths for ndk build for LP64 archs

64-bit library dir is lib64.
Includes also trivial llvm target enabling change.

Change-Id: If3e56d40f048550fcb57f3d24d0fbc19ea451c23
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
a10519bb111ec0ee86c13d65c0cadd10eba66e9c 24-Mar-2014 Andrew Hsieh <andrewhsieh@google.com> Build 64-bit gnu-libstdc++

Change-Id: I379acaf4479ce619e160c5b87dd1a942215b7cb4
a2ca65e20207c50dec423ab128e1eea5171e2030 10-Feb-2014 Andrew Hsieh <andrewhsieh@google.com> Preliminary 64-bit support

Change-Id: I815e80740223335b54c0ca44cda446f7af77715c
748416e5a7654ce6cfce9f680cf4e7a9728bd6be 23-Jan-2014 Andrew Hsieh <andrewhsieh@google.com> Support APP_ABI=armeabi-v7a-hard

Add a new NDK-only ABI armeabi-v7a-hard in order to solve
-mfloat-abi=hard issue.

1. Note that this is NDK-only ABI. No known devices
support armeabi-v7a-hard, and they can't w/o breaking existing float-abi=softfp
code
2. APP_ABI=armeabi-v7a-hard still installs libraries in libs/armeabi-v7a.
As a result, armeabi-v7a-hard and armeabi-v7a can't co-exist ("make"
will ignore one of the "install"), unless when _NDK_TESTING_ALL_=yes for
internal testing (where lib is installed to libs/armeabi-v7a-hard)
3. Both GCC 4.6/4.8 and Clang3.3/3.4 has additional multilib
option "-mfloat-abi=hard" to look for libraries in /hard
sub-directory.
5be615df32ce970fcccda93cf577e9ce35b1d397 (gcc4.6,4.8)
7e8798057dc5f28b44b5608fd98fff1cba6909a2 (clang3.4)
deedd8557b7d82c6931b6942bd39a00127780835 (clang3.3)
4. APP_ABI=all still expand to armeabi,armeabi-v7a,x86,mips

Change-Id: I08c26bfa6580c80260185c2fef398848aebd197d
409c951c8d0c4b31e71494c53388b43064c64e8e 02-Dec-2013 Andrew Hsieh <andrewhsieh@google.com> Build STL with debugging info in separate packages

STL libraries with debugging info (build with "-g") is ~200MB more than libs
built w/o "-g", and causes NDK windows pacakge to exceed 512MB.

This CL builds STL with "-g" in separate packages (with "-g" suffix), then
manually repacked together into optional package tentatively called
android-ndk-r??-cxx-stl-libs-with-debugging-info.zip for developers who
need better stack dump across STL

Change-Id: Ie16f3cf79e0090ecb237f76e35192c37d676a2c1
0bfd84193793592935a0dca2a371f84434ad2be2 15-Nov-2013 Andrew Hsieh <andrewhsieh@google.com> Build STL with -g

To make ndk-stack work better across STL function calls.
The final stripped binaries shouldn't be affected.

Change-Id: I0ad7df7a6c2b004f16bcac6befec7939f4625f35
bb979c93fc536a7c8fd9e339c5545ae3faa478d5 06-Mar-2013 Andrew Hsieh <andrewhsieh@google.com> Fix build-gnu-libstdc++.sh to not depend on toolchain's sysroot

CFLAGS and CXXFLAGS already contain correct --sysroot. Add/export
CPPFLAGS to also contain --sysroot otherwise in NDK package
where toolchains/*/*/*/sysroot doesn't exist, libstdc++-v3/configure
may fail to find correct headers and fail the build.

Change-Id: Ia2810ec1820f581251532af3d31b9daa2f433bf3
732d3dd872bf85103b3cd391a3519d0ca957a10f 03-Feb-2013 Ray Donnelly <mingw.android@gmail.com> gnu-libstdc++: --visible-libgnustl-static option

Change-Id: I41bb0f3bb2c0a5dfdb35a945d2f0840bf62063d0
43bf909e9d130a767c4780cff0e9e89552804b4b 28-Dec-2012 Andrew Hsieh <andrewhsieh@google.com> Add --enable-libstdcxx-time, remove -nostdinc

To get the following for
http://code.google.com/p/android/issues/detail?id=39680
_GLIBCXX_USE_CLOCK_MONOTONIC
_GLIBCXX_USE_CLOCK_REALTIME
_GLIBCXX_USE_GETTIMEOFDAY

And a lots more. See
sources/cxx-stl/gnu-libstdc++/<ver>/libs/armeabi/include/bits/c++config.h
https://android-review.googlesource.com/#/c/48800/

Change-Id: I32de5ef12ea540442caaf7c0eb6e8ed9dd455989
5e3746e7a73af31bbf05cf35987bb99a1b39b1d7 20-Dec-2012 Andrew Hsieh <andrewhsieh@google.com> Build additional GNU libstdc++ libaries in thumb for ARM

Build thumb libraries and put them in
sources/cxx-stl/gnu-libstdc++/<gcc-version>/libs/armeabi/thumb and
sources/cxx-stl/gnu-libstdc++/<gcc-version>/libs/armeabi-v7a/thumb

Also modify make-standalone-toolchain.sh to copy from /thumb

Change-Id: I185b3662552488ade3508d6eec460fb80171b362
f3d3bad40a9ee16cef37fb4519488d4378fb7faf 13-Sep-2012 Pavel Chupin <pavel.v.chupin@intel.com> Clean up configure flags for different compiler versions

Note: --disable-libstdcxx-visibility is for future gcc version
enabling, i.e 4.7+

Change-Id: I1c09a34999f7cb0eb4a644ca08517bd6199b7c24
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
6099deecb0b4f2805135f3670c41be971fbe4e3d 24-Sep-2012 Andrew Hsieh <andrewhsieh@google.com> Rename switches *-ver- to *-version-

To be more straightforward, rename the following

--gcc-ver -> --gcc-version
--llvm-ver -> --llvm-version
--llvm-ver-list -> --llvm-version-list

Also, correct typo in make-standalone-toolchain.sh

Change-Id: Ic697ddc2b2c3833e19aa2b353d37f7a277ea4956
351ab73952dcfe5fdcd501fc5c46b66ca1b1ad6b 20-Sep-2012 Andrew Hsieh <andrewhsieh@google.com> Add --gcc-ver=<vers> option to build list of GNU STL version

Also cleanup duplicated -j option

Change-Id: I17c05ba66cbaa620e7b5fbad7a31f428ef2ceddc
4ec84cccdda14ab4ebcafbc6f3200a2cd2868586 24-Jul-2012 Ray Donnelly <mingw.android@gmail.com> Fix patching, mingw-w64 build, Python build

Change-Id: If1093fc20e5be8924ccd253bdaddb5fe8ce4a5f9
0136e5405c99a3fbe1be109ee8ff186475c0d99a 03-Jul-2012 Andrew Hsieh <andrewhsieh@google.com> Change default GCC to 4.6; Build separate gnu-libstdc++ for GCC 4.4.3 and GCC 4.6

All target prebuilt will be built with GCC 4.6.

GNU libstdc++ is GCC dependent. GCC 4.6 seems to take header/libraries
built by GCC 4.4.3, but the reverse isnĘžt true. With this CL GCC will
now use its own version of libstdc++.

make-standalone-toolchain by default install GCC 4.6. Use --toolchain to
select GCC 4.4.3.

Change-Id: I2f4042501989fbfce94a521e6c24e1102d95a3aa
5e5e5486e3a2465734d691cab9689bd394b8829e 08-Jun-2012 David 'Digit' Turner <digit@google.com> Use -funwind-tables when building target libraries

This patch adds the -funwind-tables flag when building our prebuilt
libraries in order to ensure that the generated code can easily be
unwound at runtime.

This prevents stack-traces from being incorrectly shortened, for
example when using the malloc leak checked, the STLport/GABI++
operator new implementation could not be unwound, and the stack
trace could not show where the code was really allocated/freed
in the original source code.

Change-Id: I424754c4d891416b34ba1f67099fbed62252286e
a5412f7470564e09bbabe4134af49c15d2cd25e9 04-Jun-2012 Pavel Chupin <pavel.v.chupin@intel.com> Specify installation directory for c++ headers

This fix is required for libstdc++ build with 4.6 where version of
compiler is 4.6.x-google but script expects 4.6. Other versions are not
affected.

Change-Id: I31f88c80aa323435c77414c593a445a468d5a704
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
61c1722b71ed63f0a3098610459459a51ca041b8 17-May-2012 Chao-Ying Fu <fu@mips.com> Remove mipself.x, mipself.xsc, and MIPS linker commands, since binutils 2.21
has modified linker scripts.
Please check https://android-review.googlesource.com/#/c/34960/ .

Change-Id: I8b74bd76f2b80e1673d43ddb85740f35a037d4c1
fccac5708744076f26aaf708844c531601b0c56e 09-May-2012 Andrew Hsieh <andrewhsieh@google.com> Rename x86 toolchain prefix from i686-android-linux- to i686-linux-android-

Requested by Intel.
Various configure scripts check linux-android for Android specific features.
ARM and MIPS toolchain alrady follow this convension.

Related CL: https://android-review.googlesource.com/#/c/36450/
Depends on: https://android-review.googlesource.com/#/c/36421/

Change-Id: Icd5f5eab2a97495ef1e53eeb37af48f062a9eb33
8db29a81de9ca8d047884a038364f96530f88359 20-Apr-2012 David 'Digit' Turner <digit@google.com> Fix typo that prevent building mips target prebuilts.

Due to a typo, building mips prebuilts would fail if NDK
is not defined in your environment.

Change-Id: Id4eda46e256bf375915aeef3ec1009c9c6ae6443
248296a021718020905a736f9b3c7bc24a830139 20-Apr-2012 David 'Digit' Turner <digit@google.com> Fix typo that prevent building mips target prebuilts.

Due to a typo, building mips prebuilts would fail if NDK
is not defined in your environment.

Change-Id: Id4eda46e256bf375915aeef3ec1009c9c6ae6443
49472609babc8e7b998d9314d4040f234a2a3cb2 05-Apr-2012 Chao-Ying Fu <fu@mips.com> Change toolchain name from mips-linux-android to mipsel-linux-android,
because the target triplet requires el for MIPS little-endian targets.

Change-Id: I1ff6b888c2d7e2517ce00979dfa3719616d13d71
097812d190ebd3539c82c9c2b24161ae5e75cbb8 30-Mar-2012 Chao-Ying Fu <fu@mips.com> [MIPS] Support to ndk scripts to build MIPS NDK

Change-Id: I36e85a57d409d3f56c37737713bbeb9953b24eaa
0c7d919edf0eb9dc5a72fb2ef6cbc75db28b4f07 14-Mar-2012 Chao-Ying Fu <fu@mips.com> Fix the typo for LIBTYPE_FLAGS
96de6d98a79d3cd031b09f35e6659b1dd5645278 07-Mar-2012 David 'Digit' Turner <digit@google.com> Fix armeabi-v7a prebuilt binaries (GNU libstdc++ + STLport)

Due to a typo in build-gnu-libstdc++.sh and build-funcs.sh,
the armeabi-v7a prebuilt binaries were built assuming a
VFPv3-D32 capable CPU (i.e. 32 FPU double registers,
while the ABI only mandates VFPv3-D16).

This resulted in crashes when running programs linked to it on
Tegra devices and other non-NEON capable ones.

Fixes http://code.google.com/p/android/issues/detail?id=26199

+ new unit test that checks that all our armeabi-v7a prebuilt binaries
are of the correct type.

Change-Id: I567e202921881f76d1e70bed930182ea7d517b4e
3da8f16cb524b943d2a0896ec7e14b2eaf98c8be 15-Dec-2011 David 'Digit' Turner <digit@google.com> Fix the armeabi-v7a gnu libstdc++ library

This patch ensures that the content of
sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a
really contains armeabi-v7a binaries, instead of
armeabi ones.

http://code.google.com/p/android/issues/detail?id=22141

Change-Id: I729d6504641f9c481901bc6ad017add56be9dbf5
66850386d842e890ae22c5f220a2a24a167602cd 02-Dec-2011 David 'Digit' Turner <digit@google.com> Fix standalone toolchain C++ linking issue.

Gets rid of a regression introduced with NDK r7

This patches gets rid of libstdc++.so in the standalone
toolchain installation, because when used at link time,
it generated executables and shared libraries that could
not be properly loaded by the dynamic linker.

Instead, one has to link with -lgnustl_shared now to be
able to use the shared version of the GNU STL with the
standalone toolchain. You can still use -lstdc++ but this
will always use the static version of the library, just
as before NDK r7.

+ fix tests/run-standalone-tests.sh

Change-Id: Ib992ce6f5a97bbd02cc318748636dca766b80857
b462323772ec0096652fe194b0fdb8428ec27ebb 20-Oct-2011 David 'Digit' Turner <digit@google.com> build-gnu-libstdc++.sh: separate static and shared library builds

This change uses different configuration flags for the static and
shared builds of GNU libstdc++, this allows up to disable visible
symbols for the static library, but keep them for the shared one.

+ Fix gnustl_shared module exports. We need to export the
static libsupc++ library as well. Curiously the library
isn't part of the shared library (but is part of the
static one).

It's probably something we would want to fix with a local
GNU libstdc++ in the future.

+ New unit test to check that exceptions cross binaries
properly (i.e. an exception thrown in a shared library
is properly caught in the executable that links against
it).

Change-Id: Iba1f9bc6f0d4f7333dd3b7a87d5b84dbd7991be2
1c663b4a2961e4c9bde69eb740327083bbc92ed8 14-Oct-2011 David 'Digit' Turner <digit@google.com> build-target-prebuilts.sh: new script

This patch adds a new script that can be used to rebuild
all target prebuilts at once. This assumes that you have run
build-host-toolchain.sh previously (and thus have all cross
toolchains installed in your NDK directory).

+ Add check_toolchain_src_dir in prebuilt-common.sh and modify
other scripts to use it.

+ Add missing --sysroot compiled flags in builder-funcs.sh

Change-Id: I75ee8d6dffb9fba3155b71a291b1f9240e02f76f
f2c6c623ae6aae0b9b82a4433326a01c95da6f4c 10-Oct-2011 David 'Digit' Turner <digit@google.com> gnu-libstdc++: Fix rebuild script and NDK build system

Change-Id: Id0c2ce8f7c8a95f8633db9161e73d61249962c08
0059fb2aa9c710cfe7dfd3d67a1cdc7b5e3e284a 10-Oct-2011 David 'Digit' Turner <digit@google.com> gnustl_shared: New C++ runtime

This patch fixes build-gnu-libstdc++.sh to work properly
and generate libgnustl_shared.so from the GNU libstdc++ sources.

This is done by a custom patch to the gcc toolchain source tree
to force the generation of libgnustl_shared.so from the same objects
than libstdc++.so. This is required because there is no way to change
the internal DT_SONAME of a given shared library, so a simple rename
will not work.

We also ensure that libgnustl_static.a is properly generated and
used by the make-standalone-toolchain.sh script (which uses
copy-libstdcxx.sh)

+ Update definitions.mk to make "gnustl_shared" available in APP_STL
+ Update documentation to reflect that STLport now supports RTTI
+ Update documentation to reflect the new gnustl_shared runtime

Change-Id: Ie3ffaf825ba2d65eca027ec0be5e320d0ee39cbc
b0d90531b30c42891feaa4860e21ed43af63c93a 10-Oct-2011 David 'Digit' Turner <digit@google.com> build/tools/dev-defaults.sh: new script

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
d1fdfe9fd78c7fa55c9ed6d66a14c6c522858bde 03-Oct-2011 David 'Digit' Turner <digit@google.com> build-gnu-libstdc++.sh: refinements

+ Add a patch to disable libtool versioning when building
the GNU libstdc++.so

Change-Id: I450513be84e00d02dd52a49ffccf18cfc9064e81