Index: build/config/compiler/BUILD.gn |
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn |
index 9739093b64a7a1cbe4e287783288c24e3db8af00..b50a64c2595049a735f91314a33571e2c674ed1a 100644 |
--- a/build/config/compiler/BUILD.gn |
+++ b/build/config/compiler/BUILD.gn |
@@ -529,7 +529,7 @@ config("runtime_library") { |
] |
} |
- # Stlport setup. Android uses a different (smaller) version of the STL. |
+ # Android standard library setup. |
if (is_android) { |
if (is_clang) { |
# Work around incompatibilities between bionic and clang headers. |
@@ -539,55 +539,44 @@ config("runtime_library") { |
] |
} |
- defines += [ |
- "USE_STLPORT=1", |
- "_STLP_USE_PTR_SPECIALIZATIONS=1", |
- "__GNU_SOURCE=1", # Necessary for clone(). |
- ] |
+ defines += [ "__GNU_SOURCE=1" ] # Necessary for clone(). |
ldflags += [ |
"-Wl,--warn-shared-textrel", |
"-nostdlib", |
] |
- # NOTE: The stlport header include paths below are specified in cflags |
- # rather than include_dirs because they need to come after include_dirs. |
- # Think of them like system headers, but don't use '-isystem' because the |
- # arm-linux-androideabi-4.4.3 toolchain (circa Gingerbread) will exhibit |
- # strange errors. The include ordering here is important; change with |
- # caution. |
- android_stlport_root = "$android_ndk_root/sources/cxx-stl/stlport" |
+ android_libcpp_root = "$android_ndk_root/sources/cxx-stl/llvm-libc++" |
- cflags += [ "-isystem" + |
- rebase_path("$android_stlport_root/stlport", root_build_dir) ] |
- lib_dirs += [ "$android_stlport_root/libs/$android_app_abi" ] |
+ cflags += [ |
+ "-isystem" + |
+ rebase_path("$android_libcpp_root/libcxx/include", root_build_dir), |
+ "-isystem" + rebase_path( |
+ "$android_ndk_root/sources/cxx-stl/llvm-libc++abi/libcxxabi/include", |
+ root_build_dir), |
+ "-isystem" + |
+ rebase_path("$android_ndk_root/sources/android/support/include", |
+ root_build_dir), |
+ ] |
- if (component_mode == "shared_library") { |
- libs += [ "stlport_shared" ] |
- } else { |
- libs += [ "stlport_static" ] |
- } |
+ lib_dirs += [ "$android_libcpp_root/libs/$android_app_abi" ] |
- if (cpu_arch == "mipsel") { |
- libs += [ |
- # ld linker is used for mips Android, and ld does not accept library |
- # absolute path prefixed by "-l"; Since libgcc does not exist in mips |
- # sysroot the proper library will be linked. |
- # TODO(gordanac): Remove once gold linker is used for mips Android. |
- "gcc", |
- ] |
+ if (component_mode == "shared_library") { |
+ android_libcpp_library = "c++_shared" |
} else { |
- libs += [ |
- # Manually link the libgcc.a that the cross compiler uses. This is |
- # absolute because the linker will look inside the sysroot if it's not. |
- rebase_path(android_libgcc_file), |
- ] |
+ android_libcpp_library = "c++_static" |
} |
libs += [ |
+ "$android_libcpp_library", |
+ "atomic", |
+ |
+ # Manually link the libgcc.a that the cross compiler uses. This is |
+ # absolute because the linker will look inside the sysroot if it's not. |
+ rebase_path(android_libgcc_file), |
+ "m", |
"c", |
"dl", |
- "m", |
] |
} |
} |