Home | History | Annotate | Download | only in libelf
      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