blob: 1709dfd973d69bd80f172d4044e507a6b7002cd8 [file] [log] [blame]
// Copyright (C) 2016 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package {
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "frameworks_base_license"
// to get the below license kinds:
// SPDX-license-identifier-Apache-2.0
default_applicable_licenses: ["frameworks_base_license"],
}
cc_library_shared {
name: "libjnigraphics",
cflags: [
"-Wall",
"-Werror",
"-Wunused",
"-Wunreachable-code",
],
srcs: [
"imagedecoder.cpp",
],
shared_libs: [
"libhwui",
"liblog",
],
header_libs: [
"jni_headers",
"libhwui_internal_headers",
],
static_libs: ["libarect"],
arch: {
arm: {
// TODO: This is to work around b/24465209. Remove after root cause is fixed
pack_relocations: false,
ldflags: ["-Wl,--hash-style=both"],
},
},
host_supported: true,
target: {
android: {
srcs: [
"aassetstreamadaptor.cpp",
"bitmap.cpp",
],
shared_libs: [
"libandroid",
],
version_script: "libjnigraphics.map.txt",
},
host: {
header_libs: [
"libnativewindow_headers",
],
},
},
}
// The headers module is in frameworks/native/Android.bp.
ndk_library {
name: "libjnigraphics",
symbol_file: "libjnigraphics.map.txt",
first_version: "9",
unversioned_until: "current",
}
cc_defaults {
name: "imagedecoder_fuzzer_defaults",
srcs: ["fuzz/fuzz_imagedecoder.cpp"],
header_libs: ["jni_headers"],
shared_libs: [
"libbinder",
"libjnigraphics",
"libutils",
],
static_libs: ["libarect"],
fuzz_config: {
cc: ["scroggo@google.com"],
asan_options: [
"detect_odr_violation=1",
],
hwasan_options: [
// Image decoders may attempt to allocate a large amount of memory
// (especially if the encoded image is large). This doesn't
// necessarily mean there is a bug. Set allocator_may_return_null=1
// for hwasan so the fuzzer can continue running.
"allocator_may_return_null = 1",
],
},
host_supported: true,
}
cc_fuzz {
name: "imagedecoder_fuzzer",
defaults: ["imagedecoder_fuzzer_defaults"],
corpus: ["fuzz/corpus/*"],
}
cc_fuzz {
name: "imagedecoder_png_fuzzer",
defaults: ["imagedecoder_fuzzer_defaults"],
shared_libs: [
"libz",
],
cflags: [
"-DPNG_MUTATOR_DEFINE_LIBFUZZER_CUSTOM_MUTATOR",
],
}