1# Copyright (C) 2013 The Android Open Source Project 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15LOCAL_PATH := $(call my-dir) 16 17LIBELF_SRC_FILES := \ 18 elf32_checksum.c \ 19 elf32_fsize.c \ 20 elf32_getchdr.c \ 21 elf32_getehdr.c \ 22 elf32_getphdr.c \ 23 elf32_getshdr.c \ 24 elf32_newehdr.c \ 25 elf32_newphdr.c \ 26 elf32_offscn.c \ 27 elf32_updatefile.c \ 28 elf32_updatenull.c \ 29 elf32_xlatetof.c \ 30 elf32_xlatetom.c \ 31 elf64_checksum.c \ 32 elf64_fsize.c \ 33 elf64_getchdr.c \ 34 elf64_getehdr.c \ 35 elf64_getphdr.c \ 36 elf64_getshdr.c \ 37 elf64_newehdr.c \ 38 elf64_newphdr.c \ 39 elf64_offscn.c \ 40 elf64_updatefile.c \ 41 elf64_updatenull.c \ 42 elf64_xlatetof.c \ 43 elf64_xlatetom.c \ 44 elf_begin.c \ 45 elf_clone.c \ 46 elf_cntl.c \ 47 elf_compress.c \ 48 elf_end.c \ 49 elf_error.c \ 50 elf_fill.c \ 51 elf_flagdata.c \ 52 elf_flagehdr.c \ 53 elf_flagelf.c \ 54 elf_flagphdr.c \ 55 elf_flagscn.c \ 56 elf_flagshdr.c \ 57 elf_getarhdr.c \ 58 elf_getaroff.c \ 59 elf_getarsym.c \ 60 elf_getbase.c \ 61 elf_getdata.c \ 62 elf_getdata_rawchunk.c \ 63 elf_getident.c \ 64 elf_getphdrnum.c \ 65 elf_getscn.c \ 66 elf_getshdrnum.c \ 67 elf_getshdrstrndx.c \ 68 elf_gnu_hash.c \ 69 elf_hash.c \ 70 elf_kind.c \ 71 elf_memory.c \ 72 elf_ndxscn.c \ 73 elf_newdata.c \ 74 elf_newscn.c \ 75 elf_next.c \ 76 elf_nextscn.c \ 77 elf_rand.c \ 78 elf_rawdata.c \ 79 elf_rawfile.c \ 80 elf_readall.c \ 81 elf_scnshndx.c \ 82 elf_strptr.c \ 83 elf_update.c \ 84 elf_version.c \ 85 gelf_checksum.c \ 86 gelf_fsize.c \ 87 gelf_getauxv.c \ 88 gelf_getchdr.c \ 89 gelf_getclass.c \ 90 gelf_getdyn.c \ 91 gelf_getehdr.c \ 92 gelf_getlib.c \ 93 gelf_getmove.c \ 94 gelf_getnote.c \ 95 gelf_getphdr.c \ 96 gelf_getrela.c \ 97 gelf_getrel.c \ 98 gelf_getshdr.c \ 99 gelf_getsym.c \ 100 gelf_getsyminfo.c \ 101 gelf_getsymshndx.c \ 102 gelf_getverdaux.c \ 103 gelf_getverdef.c \ 104 gelf_getvernaux.c \ 105 gelf_getverneed.c \ 106 gelf_getversym.c \ 107 gelf_newehdr.c \ 108 gelf_newphdr.c \ 109 gelf_offscn.c \ 110 gelf_update_auxv.c \ 111 gelf_update_dyn.c \ 112 gelf_update_ehdr.c \ 113 gelf_update_lib.c \ 114 gelf_update_move.c \ 115 gelf_update_phdr.c \ 116 gelf_update_rela.c \ 117 gelf_update_rel.c \ 118 gelf_update_shdr.c \ 119 gelf_update_sym.c \ 120 gelf_update_syminfo.c \ 121 gelf_update_symshndx.c \ 122 gelf_update_verdaux.c \ 123 gelf_update_verdef.c \ 124 gelf_update_vernaux.c \ 125 gelf_update_verneed.c \ 126 gelf_update_versym.c \ 127 gelf_xlate.c \ 128 gelf_xlatetof.c \ 129 gelf_xlatetom.c \ 130 libelf_crc32.c \ 131 libelf_next_prime.c \ 132 nlist.c 133 134ifeq ($(HOST_OS),linux) 135 136# 137# host libelf 138# 139 140include $(CLEAR_VARS) 141 142LOCAL_SRC_FILES := $(LIBELF_SRC_FILES) 143 144LOCAL_C_INCLUDES := \ 145 $(LOCAL_PATH)/.. \ 146 $(LOCAL_PATH)/../lib \ 147 148LOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -D_GNU_SOURCE 149 150# to suppress the "pointer of type ‘void *’ used in arithmetic" warning 151LOCAL_CFLAGS += -Wno-pointer-arith 152 153LOCAL_MODULE := libelf 154 155LOCAL_STATIC_LIBRARIES := libz 156 157LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) 158 159include $(BUILD_HOST_STATIC_LIBRARY) 160 161endif # linux 162 163# 164# target libelf 165# 166 167include $(CLEAR_VARS) 168 169# b/25642296, local __thread variable does not work with arm64 clang/llvm. 170LOCAL_CLANG_arm64 := false 171 172LOCAL_SRC_FILES := $(LIBELF_SRC_FILES) 173 174LOCAL_C_INCLUDES := \ 175 $(LOCAL_PATH)/.. \ 176 $(LOCAL_PATH)/../lib \ 177 178LOCAL_C_INCLUDES += $(LOCAL_PATH)/../bionic-fixup 179 180LOCAL_STATIC_LIBRARIES := libz 181 182LOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 183 184# to suppress the "pointer of type ‘void *’ used in arithmetic" warning 185LOCAL_CFLAGS += -Wno-pointer-arith 186 187LOCAL_CFLAGS += -include $(LOCAL_PATH)/../bionic-fixup/AndroidFixup.h 188 189LOCAL_MODULE := libelf 190 191LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) 192 193include $(BUILD_STATIC_LIBRARY) 194