# Copyright (C) 2013 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. LOCAL_PATH := $(call my-dir) LIBELF_SRC_FILES := \ elf32_checksum.c \ elf32_fsize.c \ elf32_getchdr.c \ elf32_getehdr.c \ elf32_getphdr.c \ elf32_getshdr.c \ elf32_newehdr.c \ elf32_newphdr.c \ elf32_offscn.c \ elf32_updatefile.c \ elf32_updatenull.c \ elf32_xlatetof.c \ elf32_xlatetom.c \ elf64_checksum.c \ elf64_fsize.c \ elf64_getchdr.c \ elf64_getehdr.c \ elf64_getphdr.c \ elf64_getshdr.c \ elf64_newehdr.c \ elf64_newphdr.c \ elf64_offscn.c \ elf64_updatefile.c \ elf64_updatenull.c \ elf64_xlatetof.c \ elf64_xlatetom.c \ elf_begin.c \ elf_clone.c \ elf_cntl.c \ elf_compress.c \ elf_end.c \ elf_error.c \ elf_fill.c \ elf_flagdata.c \ elf_flagehdr.c \ elf_flagelf.c \ elf_flagphdr.c \ elf_flagscn.c \ elf_flagshdr.c \ elf_getarhdr.c \ elf_getaroff.c \ elf_getarsym.c \ elf_getbase.c \ elf_getdata.c \ elf_getdata_rawchunk.c \ elf_getident.c \ elf_getphdrnum.c \ elf_getscn.c \ elf_getshdrnum.c \ elf_getshdrstrndx.c \ elf_gnu_hash.c \ elf_hash.c \ elf_kind.c \ elf_memory.c \ elf_ndxscn.c \ elf_newdata.c \ elf_newscn.c \ elf_next.c \ elf_nextscn.c \ elf_rand.c \ elf_rawdata.c \ elf_rawfile.c \ elf_readall.c \ elf_scnshndx.c \ elf_strptr.c \ elf_update.c \ elf_version.c \ gelf_checksum.c \ gelf_fsize.c \ gelf_getauxv.c \ gelf_getchdr.c \ gelf_getclass.c \ gelf_getdyn.c \ gelf_getehdr.c \ gelf_getlib.c \ gelf_getmove.c \ gelf_getnote.c \ gelf_getphdr.c \ gelf_getrela.c \ gelf_getrel.c \ gelf_getshdr.c \ gelf_getsym.c \ gelf_getsyminfo.c \ gelf_getsymshndx.c \ gelf_getverdaux.c \ gelf_getverdef.c \ gelf_getvernaux.c \ gelf_getverneed.c \ gelf_getversym.c \ gelf_newehdr.c \ gelf_newphdr.c \ gelf_offscn.c \ gelf_update_auxv.c \ gelf_update_dyn.c \ gelf_update_ehdr.c \ gelf_update_lib.c \ gelf_update_move.c \ gelf_update_phdr.c \ gelf_update_rela.c \ gelf_update_rel.c \ gelf_update_shdr.c \ gelf_update_sym.c \ gelf_update_syminfo.c \ gelf_update_symshndx.c \ gelf_update_verdaux.c \ gelf_update_verdef.c \ gelf_update_vernaux.c \ gelf_update_verneed.c \ gelf_update_versym.c \ gelf_xlate.c \ gelf_xlatetof.c \ gelf_xlatetom.c \ libelf_crc32.c \ libelf_next_prime.c \ nlist.c ifeq ($(HOST_OS),linux) # # host libelf # include $(CLEAR_VARS) LOCAL_SRC_FILES := $(LIBELF_SRC_FILES) LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/.. \ $(LOCAL_PATH)/../lib \ LOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -D_GNU_SOURCE # to suppress the "pointer of type ‘void *’ used in arithmetic" warning LOCAL_CFLAGS += -Wno-pointer-arith LOCAL_MODULE := libelf LOCAL_STATIC_LIBRARIES := libz LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) include $(BUILD_HOST_STATIC_LIBRARY) endif # linux # # target libelf # include $(CLEAR_VARS) # b/25642296, local __thread variable does not work with arm64 clang/llvm. LOCAL_CLANG_arm64 := false LOCAL_SRC_FILES := $(LIBELF_SRC_FILES) LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/.. \ $(LOCAL_PATH)/../lib \ LOCAL_C_INCLUDES += $(LOCAL_PATH)/../bionic-fixup LOCAL_STATIC_LIBRARIES := libz LOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 # to suppress the "pointer of type ‘void *’ used in arithmetic" warning LOCAL_CFLAGS += -Wno-pointer-arith LOCAL_CFLAGS += -include $(LOCAL_PATH)/../bionic-fixup/AndroidFixup.h LOCAL_MODULE := libelf LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) include $(BUILD_STATIC_LIBRARY)