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 15 cc_library_static { 16 name: "libelf", 17 host_supported: true, 18 19 srcs: [ 20 "elf32_checksum.c", 21 "elf32_fsize.c", 22 "elf32_getchdr.c", 23 "elf32_getehdr.c", 24 "elf32_getphdr.c", 25 "elf32_getshdr.c", 26 "elf32_newehdr.c", 27 "elf32_newphdr.c", 28 "elf32_offscn.c", 29 "elf32_updatefile.c", 30 "elf32_updatenull.c", 31 "elf32_xlatetof.c", 32 "elf32_xlatetom.c", 33 "elf64_checksum.c", 34 "elf64_fsize.c", 35 "elf64_getchdr.c", 36 "elf64_getehdr.c", 37 "elf64_getphdr.c", 38 "elf64_getshdr.c", 39 "elf64_newehdr.c", 40 "elf64_newphdr.c", 41 "elf64_offscn.c", 42 "elf64_updatefile.c", 43 "elf64_updatenull.c", 44 "elf64_xlatetof.c", 45 "elf64_xlatetom.c", 46 "elf_begin.c", 47 "elf_clone.c", 48 "elf_cntl.c", 49 "elf_compress.c", 50 "elf_end.c", 51 "elf_error.c", 52 "elf_fill.c", 53 "elf_flagdata.c", 54 "elf_flagehdr.c", 55 "elf_flagelf.c", 56 "elf_flagphdr.c", 57 "elf_flagscn.c", 58 "elf_flagshdr.c", 59 "elf_getarhdr.c", 60 "elf_getaroff.c", 61 "elf_getarsym.c", 62 "elf_getbase.c", 63 "elf_getdata.c", 64 "elf_getdata_rawchunk.c", 65 "elf_getident.c", 66 "elf_getphdrnum.c", 67 "elf_getscn.c", 68 "elf_getshdrnum.c", 69 "elf_getshdrstrndx.c", 70 "elf_gnu_hash.c", 71 "elf_hash.c", 72 "elf_kind.c", 73 "elf_memory.c", 74 "elf_ndxscn.c", 75 "elf_newdata.c", 76 "elf_newscn.c", 77 "elf_next.c", 78 "elf_nextscn.c", 79 "elf_rand.c", 80 "elf_rawdata.c", 81 "elf_rawfile.c", 82 "elf_readall.c", 83 "elf_scnshndx.c", 84 "elf_strptr.c", 85 "elf_update.c", 86 "elf_version.c", 87 "gelf_checksum.c", 88 "gelf_fsize.c", 89 "gelf_getauxv.c", 90 "gelf_getchdr.c", 91 "gelf_getclass.c", 92 "gelf_getdyn.c", 93 "gelf_getehdr.c", 94 "gelf_getlib.c", 95 "gelf_getmove.c", 96 "gelf_getnote.c", 97 "gelf_getphdr.c", 98 "gelf_getrela.c", 99 "gelf_getrel.c", 100 "gelf_getshdr.c", 101 "gelf_getsym.c", 102 "gelf_getsyminfo.c", 103 "gelf_getsymshndx.c", 104 "gelf_getverdaux.c", 105 "gelf_getverdef.c", 106 "gelf_getvernaux.c", 107 "gelf_getverneed.c", 108 "gelf_getversym.c", 109 "gelf_newehdr.c", 110 "gelf_newphdr.c", 111 "gelf_offscn.c", 112 "gelf_update_auxv.c", 113 "gelf_update_dyn.c", 114 "gelf_update_ehdr.c", 115 "gelf_update_lib.c", 116 "gelf_update_move.c", 117 "gelf_update_phdr.c", 118 "gelf_update_rela.c", 119 "gelf_update_rel.c", 120 "gelf_update_shdr.c", 121 "gelf_update_sym.c", 122 "gelf_update_syminfo.c", 123 "gelf_update_symshndx.c", 124 "gelf_update_verdaux.c", 125 "gelf_update_verdef.c", 126 "gelf_update_vernaux.c", 127 "gelf_update_verneed.c", 128 "gelf_update_versym.c", 129 "gelf_xlate.c", 130 "gelf_xlatetof.c", 131 "gelf_xlatetom.c", 132 "libelf_crc32.c", 133 "libelf_next_prime.c", 134 "nlist.c", 135 ], 136 137 cflags: [ 138 "-DHAVE_CONFIG_H", 139 "-std=gnu99", 140 "-D_GNU_SOURCE", 141 // to suppress the "pointer of type void * used in arithmetic" warning 142 "-Wno-pointer-arith", 143 ], 144 145 static_libs: [ 146 "libz", 147 "libelf_headers", 148 ], 149 150 export_include_dirs: ["."], 151 152 target: { 153 darwin: { 154 enabled: false, 155 }, 156 android: { 157 cflags: [ 158 "-D_FILE_OFFSET_BITS=64", 159 "-include AndroidFixup.h", 160 ], 161 }, 162 }, 163 } 164