# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= elftoolchain VERSION= 0.7.1 KEYWORDS= devel VARIANTS= standard SDESC[standard]= Compilation tools and libraries for ELF HOMEPAGE= https://sourceforge.net/p/elftoolchain/wiki/Home/ CONTACT= nobody DOWNLOAD_GROUPS= main SITES[main]= SF/elftoolchain/Sources/elftoolchain-0.7.1 DISTFILE[1]= elftoolchain-0.7.1.tar.bz2:main DF_INDEX= 1 SPKGS[standard]= complete libraries tools OPTIONS_AVAILABLE= none OPTIONS_STANDARD= none EXRUN[tools]= elftoolchain:libraries:standard USES= cmake LICENSE= BSD2CLAUSE:libraries LICENSE_FILE= BSD2CLAUSE:{{WRKDIR}}/LICENSE LICENSE_AWK= BSD2CLAUSE:"^$$" LICENSE_SOURCE= BSD2CLAUSE:{{WRKSRC}}/libelf/libelf.h LICENSE_SCHEME= solo SUB_FILES= elftc_version.c SUB_LIST= VERSION=0.7.1 CFLAGS= -Wno-error=sign-conversion -Wno-error=conversion -Wno-error=unused-but-set-variable -Wno-error=old-style-definition -Wno-error=shift-negative-value CMAKE_ARGS= -DRAVDEST:STRING="{{STAGEDIR}}" post-patch: ${MV} ${WRKDIR}/elftc_version.c ${WRKSRC}/libelftc/ post-install: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/* ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so post-extract: ${CP} ${FILESDIR}/top_CMakeLists.txt ${WRKSRC}/CMakeLists.txt ${CP} ${FILESDIR}/libelf_CMakeLists.txt ${WRKSRC}/libelf/CMakeLists.txt ${CP} ${FILESDIR}/libdwarf_CMakeLists.txt ${WRKSRC}/libdwarf/CMakeLists.txt ${CP} ${FILESDIR}/libpe_CMakeLists.txt ${WRKSRC}/libpe/CMakeLists.txt ${CP} ${FILESDIR}/libelftc_CMakeLists.txt ${WRKSRC}/libelftc/CMakeLists.txt .for prog in addr2line readelf brandelf cxxfilt elfdump findtextrel \ nm size strings # todo elfcopy/strip/mac ar/ranlib ld ${CP} ${FILESDIR}/${prog}_CMakeLists.txt ${WRKSRC}/${prog}/CMakeLists.txt .endfor post-patch-sunos: ${CP} ${FILESDIR}/sun_err.h ${WRKSRC}/common/ .for prog in nm brandelf cxxfilt elfdump size addr2line \ findtextrel readelf strings ${REINPLACE_CMD} -e '//d' \ -e 's|^ELFTC_VCSID.*|#include |' \ ${WRKSRC}/${prog}/${prog}.c .endfor [FILE:369:descriptions/desc.libraries] A BSD-licensed implementation of compilation tools (nm, ar, as, ld, etc.) for the ELF object format. This release contains BSD-licensed implementations of the "libdwarf" and "libelf" libraries. The release also contains API and utility reference documentation (300+ manual entries in all), and contains test suites for some of these released utilities and libraries. [FILE:334:descriptions/desc.tools] A BSD-licensed implementation of compilation tools (nm, ar, as, ld, etc.) for the ELF object format. This release contains BSD-licensed implementations of the "addr2line", "ar", "brandelf", "c++filt", "elfcopy", "elfdump", "findtextrel", "mcs", "nm", "ranlib", "readelf", "size", "strings" and "strip" program development utilities. [FILE:105:distinfo] 44f14591fcf21294387215dd7562f3fb4bec2f42f476cf32420a6bbabb2bd2b5 5361427 elftoolchain-0.7.1.tar.bz2 [FILE:8716:manifests/plist.libraries] include/ dwarf.h elfdefinitions.h gelf.h libdwarf.h libelf.h libelftc.h libpe.h pe.h lib/ libdwarf.a libdwarf.so libdwarf.so.3 libdwarf.so.3.0 libdwarf_pic.a libelf.a libelf.so libelf.so.1 libelf.so.1.0 libelf_pic.a libelftc.a libelftc.so libelftc.so.1 libelftc.so.1.0 libelftc_pic.a libpe.a libpe.so libpe.so.1 libpe.so.1.0 libpe_pic.a share/man/man3/ dwarf.3.gz dwarf_add_AT_comp_dir.3.gz dwarf_add_AT_const_value_signedint.3.gz dwarf_add_AT_const_value_string.3.gz dwarf_add_AT_const_value_unsignedint.3.gz dwarf_add_AT_dataref.3.gz dwarf_add_AT_flag.3.gz dwarf_add_AT_location_expr.3.gz dwarf_add_AT_name.3.gz dwarf_add_AT_producer.3.gz dwarf_add_AT_ref_address.3.gz dwarf_add_AT_reference.3.gz dwarf_add_AT_signed_const.3.gz dwarf_add_AT_string.3.gz dwarf_add_AT_targ_address.3.gz dwarf_add_AT_targ_address_b.3.gz dwarf_add_AT_unsigned_const.3.gz dwarf_add_arange.3.gz dwarf_add_arange_b.3.gz dwarf_add_die_to_debug.3.gz dwarf_add_directory_decl.3.gz dwarf_add_expr_addr.3.gz dwarf_add_expr_addr_b.3.gz dwarf_add_expr_gen.3.gz dwarf_add_fde_inst.3.gz dwarf_add_file_decl.3.gz dwarf_add_frame_cie.3.gz dwarf_add_frame_fde.3.gz dwarf_add_frame_fde_b.3.gz dwarf_add_funcname.3.gz dwarf_add_line_entry.3.gz dwarf_add_pubname.3.gz dwarf_add_typename.3.gz dwarf_add_varname.3.gz dwarf_add_weakname.3.gz dwarf_arrayorder.3.gz dwarf_attr.3.gz dwarf_attrlist.3.gz dwarf_attroffset.3.gz dwarf_attrval_flag.3.gz dwarf_attrval_signed.3.gz dwarf_attrval_string.3.gz dwarf_attrval_unsigned.3.gz dwarf_bitoffset.3.gz dwarf_bitsize.3.gz dwarf_bytesize.3.gz dwarf_child.3.gz dwarf_dealloc.3.gz dwarf_def_macro.3.gz dwarf_die_CU_offset.3.gz dwarf_die_CU_offset_range.3.gz dwarf_die_abbrev_code.3.gz dwarf_die_link.3.gz dwarf_diename.3.gz dwarf_dieoffset.3.gz dwarf_elf_init.3.gz dwarf_end_macro_file.3.gz dwarf_errmsg.3.gz dwarf_errno.3.gz dwarf_expand_frame_instructions.3.gz dwarf_expr_current_offset.3.gz dwarf_expr_into_block.3.gz dwarf_fde_cfa_offset.3.gz dwarf_fde_cie_list_dealloc.3.gz dwarf_find_macro_value_start.3.gz dwarf_finish.3.gz dwarf_formaddr.3.gz dwarf_formblock.3.gz dwarf_formexprloc.3.gz dwarf_formflag.3.gz dwarf_formref.3.gz dwarf_formsdata.3.gz dwarf_formsig8.3.gz dwarf_formstring.3.gz dwarf_formudata.3.gz dwarf_func_cu_offset.3.gz dwarf_func_die_offset.3.gz dwarf_func_name_offsets.3.gz dwarf_funcname.3.gz dwarf_funcs_dealloc.3.gz dwarf_get_ACCESS_name.3.gz dwarf_get_ATE_name.3.gz dwarf_get_AT_name.3.gz dwarf_get_CC_name.3.gz dwarf_get_CFA_name.3.gz dwarf_get_CHILDREN_name.3.gz dwarf_get_DSC_name.3.gz dwarf_get_DS_name.3.gz dwarf_get_EH_name.3.gz dwarf_get_END_name.3.gz dwarf_get_FORM_name.3.gz dwarf_get_ID_name.3.gz dwarf_get_INL_name.3.gz dwarf_get_LANG_name.3.gz dwarf_get_LNE_name.3.gz dwarf_get_LNS_name.3.gz dwarf_get_MACINFO_name.3.gz dwarf_get_OP_name.3.gz dwarf_get_ORD_name.3.gz dwarf_get_TAG_name.3.gz dwarf_get_VIRTUALITY_name.3.gz dwarf_get_VIS_name.3.gz dwarf_get_abbrev.3.gz dwarf_get_abbrev_children_flag.3.gz dwarf_get_abbrev_code.3.gz dwarf_get_abbrev_entry.3.gz dwarf_get_abbrev_tag.3.gz dwarf_get_address_size.3.gz dwarf_get_arange.3.gz dwarf_get_arange_cu_header_offset.3.gz dwarf_get_arange_info.3.gz dwarf_get_aranges.3.gz dwarf_get_cie_index.3.gz dwarf_get_cie_info.3.gz dwarf_get_cie_of_fde.3.gz dwarf_get_cu_die_offset.3.gz dwarf_get_cu_die_offset_given_cu_header_offset.3.gz dwarf_get_cu_die_offset_given_cu_header_offset_b.3.gz dwarf_get_die_infotypes_flag.3.gz dwarf_get_elf.3.gz dwarf_get_fde_at_pc.3.gz dwarf_get_fde_info_for_all_regs.3.gz dwarf_get_fde_info_for_all_regs3.3.gz dwarf_get_fde_info_for_cfa_reg3.3.gz dwarf_get_fde_info_for_reg.3.gz dwarf_get_fde_info_for_reg3.3.gz dwarf_get_fde_instr_bytes.3.gz dwarf_get_fde_list.3.gz dwarf_get_fde_list_eh.3.gz dwarf_get_fde_n.3.gz dwarf_get_fde_range.3.gz dwarf_get_form_class.3.gz dwarf_get_funcs.3.gz dwarf_get_globals.3.gz dwarf_get_loclist_entry.3.gz dwarf_get_macro_details.3.gz dwarf_get_pubtypes.3.gz dwarf_get_ranges.3.gz dwarf_get_ranges_a.3.gz dwarf_get_relocation_info.3.gz dwarf_get_relocation_info_count.3.gz dwarf_get_section_bytes.3.gz dwarf_get_section_max_offsets.3.gz dwarf_get_section_max_offsets_b.3.gz dwarf_get_str.3.gz dwarf_get_types.3.gz dwarf_get_vars.3.gz dwarf_get_weaks.3.gz dwarf_global_cu_offset.3.gz dwarf_global_die_offset.3.gz dwarf_global_formref.3.gz dwarf_global_name_offsets.3.gz dwarf_globals_dealloc.3.gz dwarf_globname.3.gz dwarf_hasattr.3.gz dwarf_hasform.3.gz dwarf_highpc.3.gz dwarf_highpc_b.3.gz dwarf_init.3.gz dwarf_line_srcfileno.3.gz dwarf_lineaddr.3.gz dwarf_linebeginstatement.3.gz dwarf_lineblock.3.gz dwarf_lineendsequence.3.gz dwarf_lineno.3.gz dwarf_lineoff.3.gz dwarf_linesrc.3.gz dwarf_lne_end_sequence.3.gz dwarf_lne_set_address.3.gz dwarf_loclist.3.gz dwarf_loclist_from_expr.3.gz dwarf_loclist_from_expr_b.3.gz dwarf_loclist_n.3.gz dwarf_lowpc.3.gz dwarf_new_die.3.gz dwarf_new_expr.3.gz dwarf_new_fde.3.gz dwarf_next_cu_header.3.gz dwarf_next_cu_header_b.3.gz dwarf_next_cu_header_c.3.gz dwarf_next_types_section.3.gz dwarf_object_finish.3.gz dwarf_object_init.3.gz dwarf_offdie.3.gz dwarf_offdie_b.3.gz dwarf_producer_init.3.gz dwarf_producer_init_b.3.gz dwarf_producer_set_isa.3.gz dwarf_pubtype_cu_offset.3.gz dwarf_pubtype_die_offset.3.gz dwarf_pubtype_name_offsets.3.gz dwarf_pubtypename.3.gz dwarf_pubtypes_dealloc.3.gz dwarf_ranges_dealloc.3.gz dwarf_reset_section_bytes.3.gz dwarf_set_frame_cfa_value.3.gz dwarf_set_frame_rule_initial_value.3.gz dwarf_set_frame_rule_table_size.3.gz dwarf_set_frame_same_value.3.gz dwarf_set_frame_undefined_value.3.gz dwarf_set_reloc_application.3.gz dwarf_seterrarg.3.gz dwarf_seterrhand.3.gz dwarf_siblingof.3.gz dwarf_siblingof_b.3.gz dwarf_srcfiles.3.gz dwarf_srclang.3.gz dwarf_srclines.3.gz dwarf_srclines_dealloc.3.gz dwarf_start_macro_file.3.gz dwarf_tag.3.gz dwarf_transform_to_disk_form.3.gz dwarf_type_cu_offset.3.gz dwarf_type_die_offset.3.gz dwarf_type_name_offsets.3.gz dwarf_typename.3.gz dwarf_types_dealloc.3.gz dwarf_undef_macro.3.gz dwarf_var_cu_offset.3.gz dwarf_var_die_offset.3.gz dwarf_var_name_offsets.3.gz dwarf_varname.3.gz dwarf_vars_dealloc.3.gz dwarf_vendor_ext.3.gz dwarf_weak_cu_offset.3.gz dwarf_weak_die_offset.3.gz dwarf_weak_name_offsets.3.gz dwarf_weakname.3.gz dwarf_weaks_dealloc.3.gz dwarf_whatattr.3.gz dwarf_whatform.3.gz dwarf_whatform_direct.3.gz elf.3.gz elf32_checksum.3.gz elf32_fsize.3.gz elf32_getehdr.3.gz elf32_getphdr.3.gz elf32_getshdr.3.gz elf32_newehdr.3.gz elf32_newphdr.3.gz elf32_xlatetof.3.gz elf32_xlatetom.3.gz elf64_checksum.3.gz elf64_fsize.3.gz elf64_getehdr.3.gz elf64_getphdr.3.gz elf64_getshdr.3.gz elf64_newehdr.3.gz elf64_newphdr.3.gz elf64_xlatetof.3.gz elf64_xlatetom.3.gz elf_begin.3.gz elf_cntl.3.gz elf_end.3.gz elf_errmsg.3.gz elf_errno.3.gz elf_fill.3.gz elf_flagarhdr.3.gz elf_flagdata.3.gz elf_flagehdr.3.gz elf_flagelf.3.gz elf_flagphdr.3.gz elf_flagscn.3.gz elf_flagshdr.3.gz elf_getarhdr.3.gz elf_getarsym.3.gz elf_getbase.3.gz elf_getdata.3.gz elf_getident.3.gz elf_getphdrnum.3.gz elf_getphnum.3.gz elf_getscn.3.gz elf_getshdrnum.3.gz elf_getshdrstrndx.3.gz elf_getshnum.3.gz elf_getshstrndx.3.gz elf_hash.3.gz elf_kind.3.gz elf_memory.3.gz elf_ndxscn.3.gz elf_newdata.3.gz elf_newscn.3.gz elf_next.3.gz elf_nextscn.3.gz elf_open.3.gz elf_openmemory.3.gz elf_rand.3.gz elf_rawdata.3.gz elf_rawfile.3.gz elf_setshstrndx.3.gz elf_strptr.3.gz elf_update.3.gz elf_version.3.gz elftc.3.gz elftc_bfd_find_target.3.gz elftc_bfd_target_byteorder.3.gz elftc_bfd_target_class.3.gz elftc_bfd_target_flavor.3.gz elftc_copyfile.3.gz elftc_demangle.3.gz elftc_set_timestamps.3.gz elftc_string_table_create.3.gz elftc_string_table_destroy.3.gz elftc_string_table_from_section.3.gz elftc_string_table_image.3.gz elftc_string_table_insert.3.gz elftc_string_table_lookup.3.gz elftc_version.3.gz gelf.3.gz gelf_checksum.3.gz gelf_fsize.3.gz gelf_getcap.3.gz gelf_getclass.3.gz gelf_getdyn.3.gz gelf_getehdr.3.gz gelf_getmove.3.gz gelf_getphdr.3.gz gelf_getrel.3.gz gelf_getrela.3.gz gelf_getshdr.3.gz gelf_getsym.3.gz gelf_getsyminfo.3.gz gelf_getsymshndx.3.gz gelf_newehdr.3.gz gelf_newphdr.3.gz gelf_update_cap.3.gz gelf_update_dyn.3.gz gelf_update_ehdr.3.gz gelf_update_move.3.gz gelf_update_phdr.3.gz gelf_update_rel.3.gz gelf_update_rela.3.gz gelf_update_shdr.3.gz gelf_update_sym.3.gz gelf_update_syminfo.3.gz gelf_update_symshndx.3.gz gelf_xlatetof.3.gz gelf_xlatetom.3.gz [FILE:572:manifests/plist.tools] @comment bin/ar @comment bin/elfcopy @comment bin/ld @comment bin/mcs @comment bin/ranlib @comment bin/strip @comment share/man/man1/ar.1.gz @comment share/man/man1/elfcopy.1.gz @comment share/man/man1/ld.1.gz @comment share/man/man1/mcs.1.gz @comment share/man/man1/ranlib.1.gz @comment share/man/man1/strip.1.gz @comment share/man/man5/ar.5.gz bin/ addr2line brandelf c++filt elfdump findtextrel nm readelf size strings share/man/man1/ addr2line.1.gz brandelf.1.gz c++filt.1.gz elfdump.1.gz findtextrel.1.gz nm.1.gz readelf.1.gz size.1.gz strings.1.gz [FILE:1086:patches/patch-common___elftc.h] --- common/_elftc.h.orig 2015-08-31 19:53:08 UTC +++ common/_elftc.h @@ -295,7 +295,7 @@ struct name { \ #endif #if defined(__APPLE__) || defined(__GLIBC__) || defined(__GNU__) || \ - defined(__linux__) + defined(__linux__) || defined(__sun__) #if defined(__GNUC__) #define ELFTC_VCSID(ID) __asm__(".ident\t\"" ID "\"") #else @@ -365,6 +365,9 @@ extern const char *__progname; #endif /* ELFTC_GETPROGNAME */ +#ifdef __sun__ +#define ELFTC_GETPROGNAME() getexecname +#endif /** ** Per-OS configuration. @@ -481,4 +484,20 @@ extern const char *__progname; #endif /* __OpenBSD__ */ +#ifdef __sun__ + +#define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) /* to any y */ +#define roundup2(x, y) (((x)+((y)-1))&(~((y)-1))) /* if y is powers of two */ + + + +#define ELFTC_BYTE_ORDER __BYTE_ORDER +#define ELFTC_BYTE_ORDER_LITTLE_ENDIAN __LITTLE_ENDIAN +#define ELFTC_BYTE_ORDER_BIG_ENDIAN __BIG_ENDIAN +#define ELFTC_HAVE_MMAP 1 +#define ELFTC_HAVE_STRMODE 0 +#define ELFTC_NEED_BYTEORDER_EXTENSIONS 1 + +#endif /* __sun__ */ + #endif /* _ELFTC_H */ [FILE:349:patches/patch-libelf___libelf__config.h] --- libelf/_libelf_config.h.orig 2015-02-24 19:17:47 UTC +++ libelf/_libelf_config.h @@ -26,7 +26,7 @@ * $Id: _libelf_config.h 3168 2015-02-24 19:17:47Z emaste $ */ -#if defined(__APPLE__) || defined(__DragonFly__) +#if defined(__APPLE__) || defined(__DragonFly__) || defined(__sun__) #if defined(__amd64__) #define LIBELF_ARCH EM_X86_64 [FILE:1488:patches/patch-libelftc_libelftc__dem__gnu3.c] --- libelftc/libelftc_dem_gnu3.c.orig 2016-01-04 02:36:38 UTC +++ libelftc/libelftc_dem_gnu3.c @@ -33,6 +33,7 @@ #include #include #include +#include #include "_libelftc.h" @@ -165,6 +166,48 @@ static int vector_type_qualifier_init(st static int vector_type_qualifier_push(struct vector_type_qualifier *, enum type_qualifier); +/* + * Compatibility funcs + */ + +static int +port_vasprintf(char **strp, const char *fmt, va_list args) +{ + va_list args_copy; + int status, needed; + + va_copy(args_copy, args); + needed = vsnprintf(NULL, 0, fmt, args_copy); + va_end(args_copy); + if (needed < 0) { + *strp = NULL; + return needed; + } + *strp = malloc(needed + 1); + if (*strp == NULL) + return -1; + status = vsnprintf(*strp, needed + 1, fmt, args); + if (status >= 0) + return status; + else { + free(*strp); + *strp = NULL; + return status; + } +} + +static int +port_asprintf(char **strp, const char *fmt, ...) +{ + va_list args; + int status; + + va_start(args, fmt); + status = port_vasprintf(strp, fmt, args); + va_end(args); + return status; +} + /** * @brief Decode the input string by IA-64 C++ ABI style. * @@ -1704,7 +1747,7 @@ cpp_demangle_read_number_as_string(struc return (0); } - if (asprintf(str, "%ld", n) < 0) { + if (port_asprintf(str, "%ld", n) < 0) { *str = NULL; return (0); } [FILE:1679:patches/patch-readelf_readelf.c] --- readelf/readelf.c.orig 2019-07-18 03:57:34 UTC +++ readelf/readelf.c @@ -210,6 +210,47 @@ struct mips_option { const char *desc; }; +/* + * compatibility functions + */ + +static size_t +port_strnlen(const char *s, size_t maxlen) +{ + size_t len; + for (len = 0; len < maxlen; len++, s++) { + if (!*s) break; + } + return (len); +} + +static char * +port_strsep(char **stringp, const char *delim) +{ + char *s; + const char *spanp; + int c, sc; + char *tok; + + if ((s = *stringp) == NULL) + return (NULL); + for (tok = s;;) { + c = *s++; + spanp = delim; + do { + if ((sc = *spanp++) == c) { + if (c == 0) + s = NULL; + else + s[-1] = 0; + *stringp = s; + return (tok); + } + } while (sc != 0); + } + /* NOTREACHED */ +} + static void add_dumpop(struct readelf *re, size_t si, const char *sn, int op, int t); static const char *aeabi_adv_simd_arch(uint64_t simd); @@ -3857,7 +3898,7 @@ dump_notes_content(struct readelf *re, c name = ""; else if (note->n_namesz == 4 && strncmp(name, "CORE", 4) == 0) name = "CORE"; - else if (strnlen(name, note->n_namesz) >= note->n_namesz) + else if (port_strnlen(name, note->n_namesz) >= note->n_namesz) name = ""; printf(" %-13s %#010jx", name, (uintmax_t) note->n_descsz); printf(" %s\n", note_type(name, re->ehdr.e_type, @@ -7340,7 +7381,7 @@ parse_dwarf_op_long(struct readelf *re, err(EXIT_FAILURE, "strdup failed"); bp = p; - while ((token = strsep(&p, ",")) != NULL) { + while ((token = port_strsep(&p, ",")) != NULL) { for (i = 0; dwarf_op[i].ln != NULL; i++) { if (!strcmp(token, dwarf_op[i].ln)) { re->dop |= dwarf_op[i].value; [FILE:410:files/addr2line_CMakeLists.txt] set(prog addr2line) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf ${CMAKE_CURRENT_SOURCE_DIR}/../libelf ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc ${CMAKE_CURRENT_SOURCE_DIR}/../common ) add_executable(${prog} ${prog}.c) target_link_libraries(${prog} elf elftc dwarf) install(TARGETS ${prog} DESTINATION bin) install(FILES ${prog}.1 DESTINATION share/man/man1) [FILE:403:files/brandelf_CMakeLists.txt] set(prog brandelf) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf ${CMAKE_CURRENT_SOURCE_DIR}/../libelf ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc ${CMAKE_CURRENT_SOURCE_DIR}/../common ) add_executable(${prog} ${prog}.c) target_link_libraries(${prog} elf elftc) install(TARGETS ${prog} DESTINATION bin) install(FILES ${prog}.1 DESTINATION share/man/man1) [FILE:402:files/cxxfilt_CMakeLists.txt] set(prog c++filt) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf ${CMAKE_CURRENT_SOURCE_DIR}/../libelf ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc ${CMAKE_CURRENT_SOURCE_DIR}/../common ) add_executable(${prog} cxxfilt.c) target_link_libraries(${prog} elf elftc) install(TARGETS ${prog} DESTINATION bin) install(FILES c++filt.1 DESTINATION share/man/man1) [FILE:402:files/elfdump_CMakeLists.txt] set(prog elfdump) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf ${CMAKE_CURRENT_SOURCE_DIR}/../libelf ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc ${CMAKE_CURRENT_SOURCE_DIR}/../common ) add_executable(${prog} ${prog}.c) target_link_libraries(${prog} elf elftc) install(TARGETS ${prog} DESTINATION bin) install(FILES ${prog}.1 DESTINATION share/man/man1) [FILE:131:files/elftc_version.c.in] #include #include const char * elftc_version(void) { return "elftcname %%VERSION%% release"; } [FILE:412:files/findtextrel_CMakeLists.txt] set(prog findtextrel) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf ${CMAKE_CURRENT_SOURCE_DIR}/../libelf ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc ${CMAKE_CURRENT_SOURCE_DIR}/../common ) add_executable(${prog} ${prog}.c) target_link_libraries(${prog} elf elftc dwarf) install(TARGETS ${prog} DESTINATION bin) install(FILES ${prog}.1 DESTINATION share/man/man1) [FILE:13989:files/libdwarf_CMakeLists.txt] include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../common ${CMAKE_CURRENT_SOURCE_DIR}/../libelf ) set(gensrcs ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_pubnames.c ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_pubtypes.c ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_weaks.c ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_funcs.c ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_vars.c ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_types.c ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_pro_pubnames.c ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_pro_weaks.c ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_pro_funcs.c ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_pro_types.c ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_pro_vars.c ) set(libsrcs dwarf_abbrev.c dwarf_arange.c dwarf_attr.c dwarf_attrval.c dwarf_cu.c dwarf_dealloc.c dwarf_die.c dwarf_dump.c dwarf_errmsg.c dwarf_finish.c dwarf_form.c dwarf_frame.c dwarf_funcs.c dwarf_init.c dwarf_lineno.c dwarf_loclist.c dwarf_macinfo.c dwarf_pro_arange.c dwarf_pro_attr.c dwarf_pro_die.c dwarf_pro_expr.c dwarf_pro_finish.c dwarf_pro_frame.c dwarf_pro_funcs.c dwarf_pro_init.c dwarf_pro_lineno.c dwarf_pro_macinfo.c dwarf_pro_pubnames.c dwarf_pro_reloc.c dwarf_pro_sections.c dwarf_pro_types.c dwarf_pro_vars.c dwarf_pro_weaks.c dwarf_pubnames.c dwarf_pubtypes.c dwarf_ranges.c dwarf_reloc.c dwarf_sections.c dwarf_seterror.c dwarf_str.c dwarf_types.c dwarf_vars.c dwarf_weaks.c libdwarf.c libdwarf_abbrev.c libdwarf_arange.c libdwarf_attr.c libdwarf_die.c libdwarf_error.c libdwarf_elf_access.c libdwarf_elf_init.c libdwarf_frame.c libdwarf_info.c libdwarf_init.c libdwarf_lineno.c libdwarf_loc.c libdwarf_loclist.c libdwarf_macinfo.c libdwarf_nametbl.c libdwarf_ranges.c libdwarf_reloc.c libdwarf_rw.c libdwarf_sections.c libdwarf_str.c ${gensrcs} ) set(man3 dwarf.3 dwarf_add_arange.3 dwarf_add_AT_comp_dir.3 dwarf_add_AT_const_value_string.3 dwarf_add_AT_dataref.3 dwarf_add_AT_flag.3 dwarf_add_AT_location_expr.3 dwarf_add_AT_name.3 dwarf_add_AT_producer.3 dwarf_add_AT_ref_address.3 dwarf_add_AT_reference.3 dwarf_add_AT_signed_const.3 dwarf_add_AT_string.3 dwarf_add_AT_targ_address.3 dwarf_add_die_to_debug.3 dwarf_add_directory_decl.3 dwarf_add_expr_addr.3 dwarf_add_expr_gen.3 dwarf_add_fde_inst.3 dwarf_add_file_decl.3 dwarf_add_frame_cie.3 dwarf_add_frame_fde.3 dwarf_add_funcname.3 dwarf_add_line_entry.3 dwarf_add_pubname.3 dwarf_add_typename.3 dwarf_add_varname.3 dwarf_add_weakname.3 dwarf_attr.3 dwarf_attrlist.3 dwarf_attroffset.3 dwarf_attrval_signed.3 dwarf_child.3 dwarf_dealloc.3 dwarf_def_macro.3 dwarf_die_abbrev_code.3 dwarf_die_link.3 dwarf_diename.3 dwarf_dieoffset.3 dwarf_end_macro_file.3 dwarf_errmsg.3 dwarf_errno.3 dwarf_expand_frame_instructions.3 dwarf_expr_current_offset.3 dwarf_expr_into_block.3 dwarf_fde_cfa_offset.3 dwarf_find_macro_value_start.3 dwarf_finish.3 dwarf_formaddr.3 dwarf_formblock.3 dwarf_formexprloc.3 dwarf_formflag.3 dwarf_formref.3 dwarf_formsig8.3 dwarf_formstring.3 dwarf_formudata.3 dwarf_get_abbrev.3 dwarf_get_abbrev_children_flag.3 dwarf_get_abbrev_code.3 dwarf_get_abbrev_entry.3 dwarf_get_abbrev_tag.3 dwarf_get_address_size.3 dwarf_get_arange.3 dwarf_get_arange_info.3 dwarf_get_aranges.3 dwarf_get_AT_name.3 dwarf_get_cie_index.3 dwarf_get_cie_info.3 dwarf_get_cie_of_fde.3 dwarf_get_cu_die_offset.3 dwarf_get_die_infotypes_flag.3 dwarf_get_elf.3 dwarf_get_fde_at_pc.3 dwarf_get_fde_info_for_all_regs.3 dwarf_get_fde_info_for_all_regs3.3 dwarf_get_fde_info_for_cfa_reg3.3 dwarf_get_fde_info_for_reg.3 dwarf_get_fde_info_for_reg3.3 dwarf_get_fde_instr_bytes.3 dwarf_get_fde_list.3 dwarf_get_fde_n.3 dwarf_get_fde_range.3 dwarf_get_form_class.3 dwarf_get_funcs.3 dwarf_get_globals.3 dwarf_get_loclist_entry.3 dwarf_get_macro_details.3 dwarf_get_pubtypes.3 dwarf_get_ranges.3 dwarf_get_relocation_info.3 dwarf_get_relocation_info_count.3 dwarf_get_section_bytes.3 dwarf_get_section_max_offsets.3 dwarf_get_str.3 dwarf_get_types.3 dwarf_get_vars.3 dwarf_get_weaks.3 dwarf_hasattr.3 dwarf_hasform.3 dwarf_highpc.3 dwarf_init.3 dwarf_lineno.3 dwarf_lne_end_sequence.3 dwarf_lne_set_address.3 dwarf_loclist.3 dwarf_loclist_from_expr.3 dwarf_new_die.3 dwarf_new_expr.3 dwarf_new_fde.3 dwarf_next_cu_header.3 dwarf_next_types_section.3 dwarf_object_init.3 dwarf_producer_init.3 dwarf_producer_set_isa.3 dwarf_reset_section_bytes.3 dwarf_seterrarg.3 dwarf_set_frame_cfa_value.3 dwarf_set_reloc_application.3 dwarf_srcfiles.3 dwarf_srclines.3 dwarf_start_macro_file.3 dwarf_tag.3 dwarf_transform_to_disk_form.3 dwarf_undef_macro.3 dwarf_vendor_ext.3 dwarf_whatattr.3 ) add_library(dwarfobj OBJECT ${libsrcs}) set_property(TARGET dwarfobj PROPERTY POSITION_INDEPENDENT_CODE 1) add_library(dwarf SHARED $) add_library(dwarf_pic STATIC $) add_library(dwarf_static ${libsrcs}) set_target_properties(dwarf PROPERTIES VERSION 3.0) set_target_properties(dwarf PROPERTIES SOVERSION 3) set_target_properties(dwarf PROPERTIES PUBLIC_HEADER libdwarf.h) target_link_libraries(dwarf elf) macro(m4toc outfilename) add_custom_command( OUTPUT ${CMAKE_SOURCE_DIR}/libdwarf/${outfilename}.c COMMAND m4 -DSRCDIR=${CMAKE_SOURCE_DIR}/libdwarf ${CMAKE_SOURCE_DIR}/libdwarf/${outfilename}.m4 > ${CMAKE_SOURCE_DIR}/libdwarf/${outfilename}.c DEPENDS ${CMAKE_SOURCE_DIR}/libdwarf/${outfilename}.m4 COMMENT "Generated ${outfilename}.c" ) set_source_files_properties(${CMAKE_SOURCE_DIR}/libdwarf/${outfilename}.c PROPERTIES GENERATED true) endmacro(m4toc) macro(install_symlink filepath sympath) install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${filepath} ${sympath})") install(CODE "message(\"-- Created symlink: ${sympath} -> ${filepath}\")") endmacro(install_symlink) m4toc(dwarf_pubnames) m4toc(dwarf_pubtypes) m4toc(dwarf_weaks) m4toc(dwarf_funcs) m4toc(dwarf_vars) m4toc(dwarf_types) m4toc(dwarf_pro_pubnames) m4toc(dwarf_pro_weaks) m4toc(dwarf_pro_funcs) m4toc(dwarf_pro_types) m4toc(dwarf_pro_vars) install(TARGETS dwarf LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(TARGETS dwarf_pic LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libdwarf_static.a RENAME libdwarf.a DESTINATION lib) install(FILES dwarf.h DESTINATION include) install(FILES ${man3} DESTINATION share/man/man3) # man page links set(m3dir ${RAVDEST}${CMAKE_INSTALL_MANDIR}/man3) install_symlink(dwarf_add_AT_const_value_string.3 ${m3dir}/dwarf_add_AT_const_value_signedint.3) install_symlink(dwarf_add_AT_const_value_string.3 ${m3dir}/dwarf_add_AT_const_value_unsignedint.3) install_symlink(dwarf_add_AT_signed_const.3 ${m3dir}/dwarf_add_AT_unsigned_const.3) install_symlink(dwarf_add_AT_targ_address.3 ${m3dir}/dwarf_add_AT_targ_address_b.3) install_symlink(dwarf_add_arange.3 ${m3dir}/dwarf_add_arange_b.3) install_symlink(dwarf_add_expr_addr.3 ${m3dir}/dwarf_add_expr_addr_b.3) install_symlink(dwarf_add_frame_fde.3 ${m3dir}/dwarf_add_frame_fde_b.3) install_symlink(dwarf_attrval_signed.3 ${m3dir}/dwarf_attrval_flag.3) install_symlink(dwarf_attrval_signed.3 ${m3dir}/dwarf_attrval_string.3) install_symlink(dwarf_attrval_signed.3 ${m3dir}/dwarf_attrval_unsigned.3) install_symlink(dwarf_child.3 ${m3dir}/dwarf_offdie.3) install_symlink(dwarf_child.3 ${m3dir}/dwarf_offdie_b.3) install_symlink(dwarf_child.3 ${m3dir}/dwarf_siblingof.3) install_symlink(dwarf_child.3 ${m3dir}/dwarf_siblingof_b.3) install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_fde_cie_list_dealloc.3) install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_funcs_dealloc.3) install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_globals_dealloc.3) install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_pubtypes_dealloc.3) install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_types_dealloc.3) install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_vars_dealloc.3) install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_weaks_dealloc.3) install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_ranges_dealloc.3) install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_srclines_dealloc.3) install_symlink(dwarf_init.3 ${m3dir}/dwarf_elf_init.3) install_symlink(dwarf_dieoffset.3 ${m3dir}/dwarf_die_CU_offset.3) install_symlink(dwarf_dieoffset.3 ${m3dir}/dwarf_die_CU_offset_range.3) install_symlink(dwarf_dieoffset.3 ${m3dir}/dwarf_get_cu_die_offset_given_cu_header_offset.3) install_symlink(dwarf_dieoffset.3 ${m3dir}/dwarf_get_cu_die_offset_given_cu_header_offset_b.3) install_symlink(dwarf_finish.3 ${m3dir}/dwarf_object_finish.3) install_symlink(dwarf_formref.3 ${m3dir}/dwarf_global_formref.3) install_symlink(dwarf_formudata.3 ${m3dir}/dwarf_formsdata.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_ACCESS_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_ATE_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_CC_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_CFA_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_CHILDREN_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_DS_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_DSC_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_EH_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_END_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_FORM_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_ID_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_INL_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_LANG_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_LNE_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_LNS_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_MACINFO_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_OP_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_ORD_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_TAG_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_VIRTUALITY_name.3) install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_VIS_name.3) install_symlink(dwarf_get_cu_die_offset.3 ${m3dir}/dwarf_get_arange_cu_header_offset.3) install_symlink(dwarf_get_fde_list.3 ${m3dir}/dwarf_get_fde_list_eh.3) install_symlink(dwarf_get_funcs.3 ${m3dir}/dwarf_func_die_offset.3) install_symlink(dwarf_get_funcs.3 ${m3dir}/dwarf_func_cu_offset.3) install_symlink(dwarf_get_funcs.3 ${m3dir}/dwarf_func_name_offsets.3) install_symlink(dwarf_get_funcs.3 ${m3dir}/dwarf_funcname.3) install_symlink(dwarf_get_globals.3 ${m3dir}/dwarf_global_die_offset.3) install_symlink(dwarf_get_globals.3 ${m3dir}/dwarf_global_cu_offset.3) install_symlink(dwarf_get_globals.3 ${m3dir}/dwarf_global_name_offsets.3) install_symlink(dwarf_get_globals.3 ${m3dir}/dwarf_globname.3) install_symlink(dwarf_get_pubtypes.3 ${m3dir}/dwarf_pubtype_die_offset.3) install_symlink(dwarf_get_pubtypes.3 ${m3dir}/dwarf_pubtype_cu_offset.3) install_symlink(dwarf_get_pubtypes.3 ${m3dir}/dwarf_pubtype_name_offsets.3) install_symlink(dwarf_get_pubtypes.3 ${m3dir}/dwarf_pubtypename.3) install_symlink(dwarf_get_ranges.3 ${m3dir}/dwarf_get_ranges_a.3) install_symlink(dwarf_get_section_max_offsets.3 ${m3dir}/dwarf_get_section_max_offsets_b.3) install_symlink(dwarf_get_types.3 ${m3dir}/dwarf_type_die_offset.3) install_symlink(dwarf_get_types.3 ${m3dir}/dwarf_type_cu_offset.3) install_symlink(dwarf_get_types.3 ${m3dir}/dwarf_type_name_offsets.3) install_symlink(dwarf_get_types.3 ${m3dir}/dwarf_typename.3) install_symlink(dwarf_get_vars.3 ${m3dir}/dwarf_var_die_offset.3) install_symlink(dwarf_get_vars.3 ${m3dir}/dwarf_var_cu_offset.3) install_symlink(dwarf_get_vars.3 ${m3dir}/dwarf_var_name_offsets.3) install_symlink(dwarf_get_vars.3 ${m3dir}/dwarf_varname.3) install_symlink(dwarf_get_weaks.3 ${m3dir}/dwarf_weak_die_offset.3) install_symlink(dwarf_get_weaks.3 ${m3dir}/dwarf_weak_cu_offset.3) install_symlink(dwarf_get_weaks.3 ${m3dir}/dwarf_weak_name_offsets.3) install_symlink(dwarf_get_weaks.3 ${m3dir}/dwarf_weakname.3) install_symlink(dwarf_hasform.3 ${m3dir}/dwarf_whatform.3) install_symlink(dwarf_hasform.3 ${m3dir}/dwarf_whatform_direct.3) install_symlink(dwarf_highpc.3 ${m3dir}/dwarf_arrayorder.3) install_symlink(dwarf_highpc.3 ${m3dir}/dwarf_bitoffset.3) install_symlink(dwarf_highpc.3 ${m3dir}/dwarf_bitsize.3) install_symlink(dwarf_highpc.3 ${m3dir}/dwarf_bytesize.3) install_symlink(dwarf_highpc.3 ${m3dir}/dwarf_highpc_b.3) install_symlink(dwarf_highpc.3 ${m3dir}/dwarf_lowpc.3) install_symlink(dwarf_highpc.3 ${m3dir}/dwarf_srclang.3) install_symlink(dwarf_lineno.3 ${m3dir}/dwarf_lineaddr.3) install_symlink(dwarf_lineno.3 ${m3dir}/dwarf_linebeginstatement.3) install_symlink(dwarf_lineno.3 ${m3dir}/dwarf_lineblock.3) install_symlink(dwarf_lineno.3 ${m3dir}/dwarf_lineendsequence.3) install_symlink(dwarf_lineno.3 ${m3dir}/dwarf_lineoff.3) install_symlink(dwarf_lineno.3 ${m3dir}/dwarf_linesrc.3) install_symlink(dwarf_lineno.3 ${m3dir}/dwarf_line_srcfileno.3) install_symlink(dwarf_loclist.3 ${m3dir}/dwarf_loclist_n.3) install_symlink(dwarf_loclist_from_expr.3 ${md3dir}/dwarf_loclist_from_expr_a.3) install_symlink(dwarf_loclist_from_expr.3 ${m3dir}/dwarf_loclist_from_expr_b.3) install_symlink(dwarf_next_cu_header.3 ${m3dir}/dwarf_next_cu_header_b.3) install_symlink(dwarf_next_cu_header.3 ${m3dir}/dwarf_next_cu_header_c.3) install_symlink(dwarf_producer_init.3 ${m3dir}/dwarf_producer_init_b.3) install_symlink(dwarf_seterrarg.3 ${m3dir}/dwarf_seterrhand.3) install_symlink(dwarf_set_frame_cfa_value.3 ${m3dir}/dwarf_set_frame_rule_initial_value.3) install_symlink(dwarf_set_frame_cfa_value.3 ${m3dir}/dwarf_set_frame_rule_table_size.3) install_symlink(dwarf_set_frame_cfa_value.3 ${m3dir}/dwarf_set_frame_same_value.3) install_symlink(dwarf_set_frame_cfa_value.3 ${m3dir}/dwarf_set_frame_undefined_value.3) [FILE:6466:files/libelf_CMakeLists.txt] include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../common ) if (CMAKE_SYSTEM_NAME MATCHES "Linux") set(NEF ${CMAKE_SOURCE_DIR}/libelf/native-elf-format.h) endif() set(gensrcs ${CMAKE_SOURCE_DIR}/libelf/libelf_fsize.c ${CMAKE_SOURCE_DIR}/libelf/libelf_msize.c ${CMAKE_SOURCE_DIR}/libelf/libelf_convert.c ${NEF} ) set(libsrcs elf.c elf_begin.c elf_cntl.c elf_end.c elf_errmsg.c elf_errno.c elf_data.c elf_fill.c elf_flag.c elf_getarhdr.c elf_getarsym.c elf_getbase.c elf_getident.c elf_hash.c elf_kind.c elf_memory.c elf_next.c elf_open.c elf_rand.c elf_rawfile.c elf_phnum.c elf_shnum.c elf_shstrndx.c elf_scn.c elf_strptr.c elf_update.c elf_version.c gelf_cap.c gelf_checksum.c gelf_dyn.c gelf_ehdr.c gelf_getclass.c gelf_fsize.c gelf_move.c gelf_phdr.c gelf_rel.c gelf_rela.c gelf_shdr.c gelf_sym.c gelf_syminfo.c gelf_symshndx.c gelf_xlate.c libelf_align.c libelf_allocate.c libelf_ar.c libelf_ar_util.c libelf_checksum.c libelf_data.c libelf_ehdr.c libelf_extended.c libelf_memory.c libelf_open.c libelf_phdr.c libelf_shdr.c libelf_xlate.c ${gensrcs} ) set(man3 elf.3 elf_begin.3 elf_cntl.3 elf_end.3 elf_errmsg.3 elf_fill.3 elf_flagdata.3 elf_getarhdr.3 elf_getarsym.3 elf_getbase.3 elf_getdata.3 elf_getident.3 elf_getscn.3 elf_getphdrnum.3 elf_getphnum.3 elf_getshdrnum.3 elf_getshnum.3 elf_getshdrstrndx.3 elf_getshstrndx.3 elf_hash.3 elf_kind.3 elf_memory.3 elf_next.3 elf_open.3 elf_rawfile.3 elf_rand.3 elf_strptr.3 elf_update.3 elf_version.3 gelf.3 gelf_checksum.3 gelf_fsize.3 gelf_getcap.3 gelf_getclass.3 gelf_getdyn.3 gelf_getehdr.3 gelf_getmove.3 gelf_getphdr.3 gelf_getrel.3 gelf_getrela.3 gelf_getshdr.3 gelf_getsym.3 gelf_getsyminfo.3 gelf_getsymshndx.3 gelf_newehdr.3 gelf_newphdr.3 gelf_update_ehdr.3 gelf_xlatetof.3 ) add_library(elfobj OBJECT ${libsrcs}) set_property(TARGET elfobj PROPERTY POSITION_INDEPENDENT_CODE 1) add_library(elf SHARED $) add_library(elf_pic STATIC $) add_library(elf_static ${libsrcs}) set_target_properties(elf PROPERTIES VERSION 1.0) set_target_properties(elf PROPERTIES SOVERSION 1) set_target_properties(elf PROPERTIES PUBLIC_HEADER libelf.h) macro(m4toc outfilename) add_custom_command( OUTPUT ${CMAKE_SOURCE_DIR}/libelf/${outfilename}.c COMMAND m4 -DSRCDIR=${CMAKE_SOURCE_DIR}/libelf ${CMAKE_SOURCE_DIR}/libelf/${outfilename}.m4 > ${CMAKE_SOURCE_DIR}/libelf/${outfilename}.c DEPENDS ${CMAKE_SOURCE_DIR}/libelf/${outfilename}.m4 COMMENT "Generated ${outfilename}.c" ) set_source_files_properties(${CMAKE_SOURCE_DIR}/lib/${outfilename}.c PROPERTIES GENERATED true) endmacro(m4toc) macro(install_symlink filepath sympath) install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${filepath} ${sympath})") install(CODE "message(\"-- Created symlink: ${sympath} -> ${filepath}\")") endmacro(install_symlink) add_custom_command( OUTPUT ${CMAKE_SOURCE_DIR}/libelf/native-elf-format.h COMMAND ${CMAKE_SOURCE_DIR}/common/native-elf-format > ${CMAKE_SOURCE_DIR}/libelf/native-elf-format.h DEPENDS ${CMAKE_SOURCE_DIR}/common/native-elf-format COMMENT "Generated native-elf-format.h" ) set_source_files_properties(${CMAKE_SOURCE_DIR}/lib/native-elf-format.h PROPERTIES GENERATED true) m4toc(libelf_fsize) m4toc(libelf_msize) m4toc(libelf_convert) install(TARGETS elf LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(TARGETS elf_pic LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libelf_static.a RENAME libelf.a DESTINATION lib) install(FILES gelf.h ../common/elfdefinitions.h DESTINATION include) install(FILES ${man3} DESTINATION share/man/man3) # man page links set(m3dir ${RAVDEST}${CMAKE_INSTALL_MANDIR}/man3) install_symlink(gelf_checksum.3 ${m3dir}/elf32_checksum.3) install_symlink(gelf_checksum.3 ${m3dir}/elf64_checksum.3) install_symlink(gelf_fsize.3 ${m3dir}/elf32_fsize.3) install_symlink(gelf_fsize.3 ${m3dir}/elf64_fsize.3) install_symlink(gelf_getehdr.3 ${m3dir}/elf32_getehdr.3) install_symlink(gelf_getehdr.3 ${m3dir}/elf64_getehdr.3) install_symlink(gelf_getphdr.3 ${m3dir}/elf32_getphdr.3) install_symlink(gelf_getphdr.3 ${m3dir}/elf64_getphdr.3) install_symlink(gelf_getshdr.3 ${m3dir}/elf32_getshdr.3) install_symlink(gelf_getshdr.3 ${m3dir}/elf64_getshdr.3) install_symlink(gelf_newehdr.3 ${m3dir}/elf32_newehdr.3) install_symlink(gelf_newehdr.3 ${m3dir}/elf64_newehdr.3) install_symlink(gelf_newphdr.3 ${m3dir}/elf32_newphdr.3) install_symlink(gelf_newphdr.3 ${m3dir}/elf64_newphdr.3) install_symlink(gelf_xlatetof.3 ${m3dir}/elf32_xlatetof.3) install_symlink(gelf_xlatetof.3 ${m3dir}/elf64_xlatetof.3) install_symlink(gelf_xlatetof.3 ${m3dir}/elf32_xlatetom.3) install_symlink(gelf_xlatetof.3 ${m3dir}/elf64_xlatetom.3) install_symlink(elf_errmsg.3 ${m3dir}/elf_errno.3) install_symlink(elf_flagdata.3 ${m3dir}/elf_flagarhdr.3) install_symlink(elf_flagdata.3 ${m3dir}/elf_flagehdr.3) install_symlink(elf_flagdata.3 ${m3dir}/elf_flagelf.3) install_symlink(elf_flagdata.3 ${m3dir}/elf_flagphdr.3) install_symlink(elf_flagdata.3 ${m3dir}/elf_flagscn.3) install_symlink(elf_flagdata.3 ${m3dir}/elf_flagshdr.3) install_symlink(elf_getdata.3 ${m3dir}/elf_newdata.3) install_symlink(elf_getdata.3 ${m3dir}/elf_rawdata.3) install_symlink(elf_getscn.3 ${m3dir}/elf_ndxscn.3) install_symlink(elf_getscn.3 ${m3dir}/elf_newscn.3) install_symlink(elf_getscn.3 ${m3dir}/elf_nextscn.3) install_symlink(elf_getshstrndx.3 ${m3dir}/elf_setshstrndx.3) install_symlink(elf_open.3 ${m3dir}/elf_openmemory.3) install_symlink(gelf_getcap.3 ${m3dir}/gelf_update_cap.3) install_symlink(gelf_getdyn.3 ${m3dir}/gelf_update_dyn.3) install_symlink(gelf_getmove.3 ${m3dir}/gelf_update_move.3) install_symlink(gelf_getrel.3 ${m3dir}/gelf_update_rel.3) install_symlink(gelf_getrela.3 ${m3dir}/gelf_update_rela.3) install_symlink(gelf_getsym.3 ${m3dir}/gelf_update_sym.3) install_symlink(gelf_getsyminfo.3 ${m3dir}/gelf_update_syminfo.3) install_symlink(gelf_getsymshndx.3 ${m3dir}/gelf_update_symshndx.3) install_symlink(gelf_update_ehdr.3 ${m3dir}/gelf_update_phdr.3) install_symlink(gelf_update_ehdr.3 ${m3dir}/gelf_update_shdr.3) install_symlink(gelf_xlatetof.3 ${m3dir}/gelf_xlatetom.3) [FILE:2440:files/libelftc_CMakeLists.txt] include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../common ${CMAKE_CURRENT_SOURCE_DIR}/../libelf ) set(libsrcs elftc_bfdtarget.c elftc_copyfile.c elftc_demangle.c elftc_set_timestamps.c elftc_string_table.c elftc_version.c libelftc_bfdtarget.c libelftc_dem_arm.c libelftc_dem_gnu2.c libelftc_dem_gnu3.c libelftc_hash.c libelftc_vstr.c ) set(man3 elftc.3 elftc_bfd_find_target.3 elftc_copyfile.3 elftc_demangle.3 elftc_set_timestamps.3 elftc_string_table_create.3 elftc_version.3 ) add_library(elftcobj OBJECT ${libsrcs}) set_property(TARGET elftcobj PROPERTY POSITION_INDEPENDENT_CODE 1) add_library(elftc SHARED $) add_library(elftc_pic STATIC $) add_library(elftc_static ${libsrcs}) set_target_properties(elftc PROPERTIES VERSION 1.0) set_target_properties(elftc PROPERTIES SOVERSION 1) set_target_properties(elftc PROPERTIES PUBLIC_HEADER libelftc.h) target_link_libraries(elftc elf) macro(install_symlink filepath sympath) install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${filepath} ${sympath})") install(CODE "message(\"-- Created symlink: ${sympath} -> ${filepath}\")") endmacro(install_symlink) install(TARGETS elftc LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(TARGETS elftc_pic LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libelftc_static.a RENAME libelftc.a DESTINATION lib) # install(FILES gelf.h ../common/elfdefinitions.h DESTINATION include) install(FILES ${man3} DESTINATION share/man/man3) # man page links set(m3dir ${RAVDEST}${CMAKE_INSTALL_MANDIR}/man3) install_symlink(elftc_bfd_find_target.3 ${m3dir}/elftc_bfd_target_byteorder.3) install_symlink(elftc_bfd_find_target.3 ${m3dir}/elftc_bfd_target_class.3) install_symlink(elftc_bfd_find_target.3 ${m3dir}/elftc_bfd_target_flavor.3) install_symlink(elftc_string_table_create.3 ${m3dir}/elftc_string_table_from_section.3) install_symlink(elftc_string_table_create.3 ${m3dir}/elftc_string_table_destroy.3) install_symlink(elftc_string_table_create.3 ${m3dir}/elftc_string_table_image.3) install_symlink(elftc_string_table_create.3 ${m3dir}/elftc_string_table_insert.3) install_symlink(elftc_string_table_create.3 ${m3dir}/elftc_string_table_lookup.3) [FILE:1111:files/libpe_CMakeLists.txt] include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../common ) set(libsrcs libpe_buffer.c libpe_coff.c libpe_dos.c libpe_init.c libpe_rich.c libpe_section.c libpe_utils.c pe_buffer.c pe_cntl.c pe_coff.c pe_dos.c pe_flag.c pe_init.c pe_rich.c pe_section.c pe_symtab.c pe_update.c ) add_library(peobj OBJECT ${libsrcs}) set_property(TARGET peobj PROPERTY POSITION_INDEPENDENT_CODE 1) add_library(pe SHARED $) add_library(pe_pic STATIC $) add_library(pe_static ${libsrcs}) set_target_properties(pe PROPERTIES VERSION 1.0) set_target_properties(pe PROPERTIES SOVERSION 1) set_target_properties(pe PROPERTIES PUBLIC_HEADER libpe.h) install(TARGETS pe LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(TARGETS pe_pic LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpe_static.a RENAME libpe.a DESTINATION lib) install(FILES pe.h DESTINATION include) [FILE:403:files/nm_CMakeLists.txt] set(prog nm) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf ${CMAKE_CURRENT_SOURCE_DIR}/../libelf ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc ${CMAKE_CURRENT_SOURCE_DIR}/../common ) add_executable(${prog} ${prog}.c) target_link_libraries(${prog} elf elftc dwarf) install(TARGETS ${prog} DESTINATION bin) install(FILES ${prog}.1 DESTINATION share/man/man1) [FILE:408:files/readelf_CMakeLists.txt] set(prog readelf) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf ${CMAKE_CURRENT_SOURCE_DIR}/../libelf ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc ${CMAKE_CURRENT_SOURCE_DIR}/../common ) add_executable(${prog} ${prog}.c) target_link_libraries(${prog} elf elftc dwarf) install(TARGETS ${prog} DESTINATION bin) install(FILES ${prog}.1 DESTINATION share/man/man1) [FILE:399:files/size_CMakeLists.txt] set(prog size) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf ${CMAKE_CURRENT_SOURCE_DIR}/../libelf ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc ${CMAKE_CURRENT_SOURCE_DIR}/../common ) add_executable(${prog} ${prog}.c) target_link_libraries(${prog} elf elftc) install(TARGETS ${prog} DESTINATION bin) install(FILES ${prog}.1 DESTINATION share/man/man1) [FILE:402:files/strings_CMakeLists.txt] set(prog strings) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf ${CMAKE_CURRENT_SOURCE_DIR}/../libelf ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc ${CMAKE_CURRENT_SOURCE_DIR}/../common ) add_executable(${prog} ${prog}.c) target_link_libraries(${prog} elf elftc) install(TARGETS ${prog} DESTINATION bin) install(FILES ${prog}.1 DESTINATION share/man/man1) [FILE:542:files/sun_err.h] #ifndef LIBBSD_ERR_H #define LIBBSD_ERR_H #include #include #include #define err(exitcode, format, args...) \ errx(exitcode, format ": %s", ## args, strerror(errno)) #define errx(exitcode, format, args...) \ { warnx(format, ## args); exit(exitcode); } #define warn(format, args...) \ warnx(format ": %s", ## args, strerror(errno)) #define warnx(format, args...) \ fprintf(stderr, format "\n", ## args) // more sun fixes #include #define u_int64_t uint64_t #endif [FILE:458:files/top_CMakeLists.txt] cmake_minimum_required(VERSION 3.14.1) project(elftoolchain) include(GNUInstallDirs) SET(CMAKE_SKIP_BUILD_RPATH TRUE) add_subdirectory(libelf) add_subdirectory(libdwarf) add_subdirectory(libpe) add_subdirectory(libelftc) add_subdirectory(addr2line) add_subdirectory(brandelf) add_subdirectory(cxxfilt) add_subdirectory(elfdump) add_subdirectory(findtextrel) add_subdirectory(nm) add_subdirectory(readelf) add_subdirectory(size) add_subdirectory(strings)