diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-07-16 07:29:28 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-07-16 07:29:28 +0000 |
commit | 5e188ac7a524b1f5a8b1c3d68de02d3b0cad57d0 (patch) | |
tree | 339a2d27fea731c53a68df652582fe0635ce7c98 | |
parent | 89c397ec14b5c00aece877c551b2a13ce677f942 (diff) | |
parent | 5f131c01b2029e4f1d2a4e9aa9f55aaa49047601 (diff) | |
download | prebuilts_clang_host_linux-x86-5e188ac7a524b1f5a8b1c3d68de02d3b0cad57d0.tar.gz prebuilts_clang_host_linux-x86-5e188ac7a524b1f5a8b1c3d68de02d3b0cad57d0.tar.bz2 prebuilts_clang_host_linux-x86-5e188ac7a524b1f5a8b1c3d68de02d3b0cad57d0.zip |
release-request-05263112-375a-4b1f-a657-a14bb2a5c5a3-for-git_oc-mr1-release-4185249 snap-temp-L63000000082739046
Change-Id: Ieba7565850de813df4ed89c58f50991547a376f2
-rw-r--r-- | Android.bp | 132 | ||||
-rw-r--r-- | Android.mk | 132 | ||||
-rw-r--r-- | soong/Android.bp | 6 | ||||
-rw-r--r-- | soong/clangprebuilts.go (renamed from soong/libfuzzer.go) | 113 |
4 files changed, 217 insertions, 166 deletions
@@ -21,6 +21,138 @@ libfuzzer_prebuilt_library_static { }, } +libclang_rt_prebuilt_library_shared { + name: "libclang_rt.asan-arm-android", + enabled: false, + vendor_available: true, + arch: { + arm: { + enabled: true, + }, + }, +} + +libclang_rt_prebuilt_library_shared { + name: "libclang_rt.asan-aarch64-android", + enabled: false, + vendor_available: true, + arch: { + arm64: { + enabled: true, + }, + }, +} + +libclang_rt_prebuilt_library_shared { + name: "libclang_rt.asan-mips-android", + enabled: false, + vendor_available: true, + arch: { + mips: { + enabled: true, + }, + }, +} + +libclang_rt_prebuilt_library_shared { + name: "libclang_rt.asan-mips64-android", + enabled: false, + vendor_available: true, + arch: { + mips64: { + enabled: true, + }, + }, +} + +libclang_rt_prebuilt_library_shared { + name: "libclang_rt.asan-i686-android", + enabled: false, + vendor_available: true, + arch: { + x86: { + enabled: true, + }, + }, +} + +libclang_rt_prebuilt_library_shared { + name: "libclang_rt.asan-x86_64-android", + enabled: false, + vendor_available: true, + arch: { + x86_64: { + enabled: true, + }, + }, +} + +libclang_rt_prebuilt_library_shared { + name: "libclang_rt.ubsan_standalone-arm-android", + enabled: false, + vendor_available: true, + arch: { + arm: { + enabled: true, + }, + }, +} + +libclang_rt_prebuilt_library_shared { + name: "libclang_rt.ubsan_standalone-aarch64-android", + enabled: false, + vendor_available: true, + arch: { + arm64: { + enabled: true, + }, + }, +} + +libclang_rt_prebuilt_library_shared { + name: "libclang_rt.ubsan_standalone-mips-android", + enabled: false, + vendor_available: true, + arch: { + mips: { + enabled: true, + }, + }, +} + +libclang_rt_prebuilt_library_shared { + name: "libclang_rt.ubsan_standalone-mips64-android", + enabled: false, + vendor_available: true, + arch: { + mips64: { + enabled: true, + }, + }, +} + +libclang_rt_prebuilt_library_shared { + name: "libclang_rt.ubsan_standalone-i686-android", + enabled: false, + vendor_available: true, + arch: { + x86: { + enabled: true, + }, + }, +} + +libclang_rt_prebuilt_library_shared { + name: "libclang_rt.ubsan_standalone-x86_64-android", + enabled: false, + vendor_available: true, + arch: { + x86_64: { + enabled: true, + }, + }, +} + subdirs = [ "soong", ] @@ -22,138 +22,6 @@ ifneq (true,$(FORCE_BUILD_SANITIZER_SHARED_OBJECTS)) libclang_dir := $(LLVM_PREBUILTS_VERSION)/lib64/clang/$(LLVM_RELEASE_VERSION) -include $(CLEAR_VARS) -LOCAL_MODULE := libclang_rt.asan-arm-android -LOCAL_SRC_FILES := $(libclang_dir)/lib/linux/$(LOCAL_MODULE).so -LOCAL_MODULE_CLASS := SHARED_LIBRARIES -LOCAL_MODULE_SUFFIX := .so -LOCAL_MODULE_TARGET_ARCH := arm -LOCAL_MODULE_PATH := $(TARGET_OUT)/lib -LOCAL_SANITIZE := never -LOCAL_SYSTEM_SHARED_LIBRARIES := -LOCAL_CXX_STL := none -include $(BUILD_PREBUILT) - -include $(CLEAR_VARS) -LOCAL_MODULE := libclang_rt.asan-aarch64-android -LOCAL_SRC_FILES := $(libclang_dir)/lib/linux/$(LOCAL_MODULE).so -LOCAL_MODULE_CLASS := SHARED_LIBRARIES -LOCAL_MODULE_SUFFIX := .so -LOCAL_MODULE_TARGET_ARCH := arm64 -LOCAL_MODULE_PATH := $(TARGET_OUT)/lib64 -LOCAL_SANITIZE := never -LOCAL_SYSTEM_SHARED_LIBRARIES := -LOCAL_CXX_STL := none -include $(BUILD_PREBUILT) - -include $(CLEAR_VARS) -LOCAL_MODULE := libclang_rt.asan-i686-android -LOCAL_SRC_FILES := $(libclang_dir)/lib/linux/$(LOCAL_MODULE).so -LOCAL_MODULE_CLASS := SHARED_LIBRARIES -LOCAL_MODULE_SUFFIX := .so -LOCAL_MODULE_TARGET_ARCH := x86 -LOCAL_MODULE_PATH := $(TARGET_OUT)/lib -LOCAL_SANITIZE := never -LOCAL_SYSTEM_SHARED_LIBRARIES := -LOCAL_CXX_STL := none -include $(BUILD_PREBUILT) - -include $(CLEAR_VARS) -LOCAL_MODULE := libclang_rt.asan-mips-android -LOCAL_SRC_FILES := $(libclang_dir)/lib/linux/$(LOCAL_MODULE).so -LOCAL_MODULE_CLASS := SHARED_LIBRARIES -LOCAL_MODULE_SUFFIX := .so -LOCAL_MODULE_TARGET_ARCH := mips -LOCAL_MODULE_PATH := $(TARGET_OUT)/lib -LOCAL_SANITIZE := never -LOCAL_SYSTEM_SHARED_LIBRARIES := -LOCAL_CXX_STL := none -include $(BUILD_PREBUILT) - -include $(CLEAR_VARS) -LOCAL_MODULE := libclang_rt.asan-mips64-android -LOCAL_SRC_FILES := $(libclang_dir)/lib/linux/$(LOCAL_MODULE).so -LOCAL_MODULE_CLASS := SHARED_LIBRARIES -LOCAL_MODULE_SUFFIX := .so -LOCAL_MODULE_TARGET_ARCH := mips64 -LOCAL_MODULE_PATH := $(TARGET_OUT)/lib64 -LOCAL_SANITIZE := never -LOCAL_SYSTEM_SHARED_LIBRARIES := -LOCAL_CXX_STL := none -include $(BUILD_PREBUILT) - -include $(CLEAR_VARS) -LOCAL_MODULE := libclang_rt.ubsan_standalone-arm-android -LOCAL_SRC_FILES := $(libclang_dir)/lib/linux/$(LOCAL_MODULE).so -LOCAL_MODULE_CLASS := SHARED_LIBRARIES -LOCAL_MODULE_SUFFIX := .so -LOCAL_MODULE_TARGET_ARCH := arm -LOCAL_MODULE_PATH := $(TARGET_OUT)/lib -LOCAL_SANITIZE := never -LOCAL_SYSTEM_SHARED_LIBRARIES := -LOCAL_CXX_STL := none -include $(BUILD_PREBUILT) - -include $(CLEAR_VARS) -LOCAL_MODULE := libclang_rt.ubsan_standalone-aarch64-android -LOCAL_SRC_FILES := $(libclang_dir)/lib/linux/$(LOCAL_MODULE).so -LOCAL_MODULE_CLASS := SHARED_LIBRARIES -LOCAL_MODULE_SUFFIX := .so -LOCAL_MODULE_TARGET_ARCH := arm64 -LOCAL_MODULE_PATH := $(TARGET_OUT)/lib64 -LOCAL_SANITIZE := never -LOCAL_SYSTEM_SHARED_LIBRARIES := -LOCAL_CXX_STL := none -include $(BUILD_PREBUILT) - -include $(CLEAR_VARS) -LOCAL_MODULE := libclang_rt.ubsan_standalone-i686-android -LOCAL_SRC_FILES := $(libclang_dir)/lib/linux/$(LOCAL_MODULE).so -LOCAL_MODULE_CLASS := SHARED_LIBRARIES -LOCAL_MODULE_SUFFIX := .so -LOCAL_MODULE_TARGET_ARCH := x86 -LOCAL_MODULE_PATH := $(TARGET_OUT)/lib -LOCAL_SANITIZE := never -LOCAL_SYSTEM_SHARED_LIBRARIES := -LOCAL_CXX_STL := none -include $(BUILD_PREBUILT) - -include $(CLEAR_VARS) -LOCAL_MODULE := libclang_rt.ubsan_standalone-x86_64-android -LOCAL_SRC_FILES := $(libclang_dir)/lib/linux/$(LOCAL_MODULE).so -LOCAL_MODULE_CLASS := SHARED_LIBRARIES -LOCAL_MODULE_SUFFIX := .so -LOCAL_MODULE_TARGET_ARCH := x86_64 -LOCAL_MODULE_PATH_64 := $(TARGET_OUT)/lib64 -LOCAL_SANITIZE := never -LOCAL_SYSTEM_SHARED_LIBRARIES := -LOCAL_CXX_STL := none -include $(BUILD_PREBUILT) - -include $(CLEAR_VARS) -LOCAL_MODULE := libclang_rt.ubsan_standalone-mips-android -LOCAL_SRC_FILES := $(libclang_dir)/lib/linux/$(LOCAL_MODULE).so -LOCAL_MODULE_CLASS := SHARED_LIBRARIES -LOCAL_MODULE_SUFFIX := .so -LOCAL_MODULE_TARGET_ARCH := mips -LOCAL_MODULE_PATH := $(TARGET_OUT)/lib -LOCAL_SANITIZE := never -LOCAL_SYSTEM_SHARED_LIBRARIES := -LOCAL_CXX_STL := none -include $(BUILD_PREBUILT) - -include $(CLEAR_VARS) -LOCAL_MODULE := libclang_rt.ubsan_standalone-mips64-android -LOCAL_SRC_FILES := $(libclang_dir)/lib/linux/$(LOCAL_MODULE).so -LOCAL_MODULE_CLASS := SHARED_LIBRARIES -LOCAL_MODULE_SUFFIX := .so -LOCAL_MODULE_TARGET_ARCH := mips64 -LOCAL_MODULE_PATH := $(TARGET_OUT)/lib64 -LOCAL_SANITIZE := never -LOCAL_SYSTEM_SHARED_LIBRARIES := -LOCAL_CXX_STL := none -include $(BUILD_PREBUILT) - # Also build/install the newest asan_test for each arch # We rename it to asan-test for now to avoid duplicate definitions. diff --git a/soong/Android.bp b/soong/Android.bp index 0bb87a89..ab020a59 100644 --- a/soong/Android.bp +++ b/soong/Android.bp @@ -15,8 +15,8 @@ // bootstrap_go_package { - name: "soong-libfuzzer", - pkgPath: "android/soong/prebuilts/clang/host/linux-x86", + name: "soong-clang-prebuilts", + pkgPath: "android/soong/prebuilts/clang/host/linux-x86/clangprebuilts", deps: [ "blueprint", "soong-android", @@ -24,7 +24,7 @@ bootstrap_go_package { "soong-cc-config" ], srcs: [ - "libfuzzer.go", + "clangprebuilts.go", ], pluginFor: ["soong_build"], } diff --git a/soong/libfuzzer.go b/soong/clangprebuilts.go index b6cc70aa..71e0b50a 100644 --- a/soong/libfuzzer.go +++ b/soong/clangprebuilts.go @@ -14,11 +14,12 @@ // limitations under the License. // -package libfuzzer +package clangprebuilts import ( "path" "path/filepath" + "strings" "github.com/google/blueprint/proptools" @@ -27,13 +28,48 @@ import ( "android/soong/cc/config" ) -// This module is used to generate libfuzzer static libraries. When +// This module is used to generate libfuzzer static libraries and libclang_rt.* shared libraries. When // LLVM_PREBUILTS_VERSION and LLVM_RELEASE_VERSION are set, the library will // generated from the given path. func init() { android.RegisterModuleType("libfuzzer_prebuilt_library_static", libfuzzerPrebuiltLibraryStaticFactory) + android.RegisterModuleType("libclang_rt_prebuilt_library_shared", + libClangRtPrebuiltLibrarySharedFactory) +} + +func getClangDirs(ctx android.LoadHookContext) (libDir string, headerDir string) { + clangDir := path.Join( + "./", + ctx.AConfig().GetenvWithDefault("LLVM_PREBUILTS_VERSION", config.ClangDefaultVersion), + ) + headerDir = path.Join(clangDir, "prebuilt_include", "llvm", "lib", "Fuzzer") + releaseVersion := ctx.AConfig().GetenvWithDefault("LLVM_RELEASE_VERSION", + config.ClangDefaultShortVersion) + libDir = path.Join(clangDir, "lib64", "clang", releaseVersion, "lib", "linux") + return +} + +type archProps struct { + Android_arm struct { + Srcs []string + } + Android_arm64 struct { + Srcs []string + } + Android_mips struct { + Srcs []string + } + Android_mips64 struct { + Srcs []string + } + Android_x86 struct { + Srcs []string + } + Android_x86_64 struct { + Srcs []string + } } func libfuzzerPrebuiltLibraryStatic(ctx android.LoadHookContext) { @@ -52,38 +88,12 @@ func libfuzzerPrebuiltLibraryStatic(ctx android.LoadHookContext) { } } - clangDir := path.Join( - "./", - ctx.AConfig().GetenvWithDefault("LLVM_PREBUILTS_VERSION", config.ClangDefaultVersion), - ) - headerDir := path.Join(clangDir, "prebuilt_include", "llvm", "lib", "Fuzzer") - releaseVersion := ctx.AConfig().GetenvWithDefault("LLVM_RELEASE_VERSION", - config.ClangDefaultShortVersion) - libDir := path.Join(clangDir, "lib64", "clang", releaseVersion, "lib", "linux") + libDir, headerDir := getClangDirs(ctx) type props struct { - Enabled *bool + Enabled *bool Export_include_dirs []string - Target struct { - Android_arm struct { - Srcs []string - } - Android_arm64 struct { - Srcs []string - } - Android_mips struct { - Srcs []string - } - Android_mips64 struct { - Srcs []string - } - Android_x86 struct { - Srcs []string - } - Android_x86_64 struct { - Srcs []string - } - } + Target archProps } p := &props{} @@ -99,8 +109,49 @@ func libfuzzerPrebuiltLibraryStatic(ctx android.LoadHookContext) { ctx.AppendProperties(p) } +func libClangRtPrebuiltLibraryShared(ctx android.LoadHookContext) { + if ctx.AConfig().IsEnvTrue("FORCE_BUILD_SANITIZER_SHARED_OBJECTS") { + return + } + + libDir, _ := getClangDirs(ctx) + + type props struct { + Srcs []string + System_shared_libs []string + Sanitize struct { + Never bool + } + Strip struct { + None bool + } + Pack_relocations *bool + Stl *string + } + + p := &props{} + + name := strings.Replace(ctx.ModuleName(), "prebuilt_", "", 1) + + p.Srcs = []string{path.Join(libDir, name+".so")} + p.System_shared_libs = []string{} + p.Sanitize.Never = true + p.Strip.None = true + disable := false + p.Pack_relocations = &disable + none := "none" + p.Stl = &none + ctx.AppendProperties(p) +} + func libfuzzerPrebuiltLibraryStaticFactory() android.Module { module, _ := cc.NewPrebuiltStaticLibrary(android.HostAndDeviceSupported) android.AddLoadHook(module, libfuzzerPrebuiltLibraryStatic) return module.Init() } + +func libClangRtPrebuiltLibrarySharedFactory() android.Module { + module, _ := cc.NewPrebuiltSharedLibrary(android.DeviceSupported) + android.AddLoadHook(module, libClangRtPrebuiltLibraryShared) + return module.Init() +} |