Ravenports generated: 10 Feb 2024 22:55
[ravenports.git] / bucket_EE / elftoolchain
1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
2
3 NAMEBASE=               elftoolchain
4 VERSION=                0.7.1
5 KEYWORDS=               devel
6 VARIANTS=               standard
7 SDESC[standard]=        Compilation tools and libraries for ELF
8 HOMEPAGE=               https://sourceforge.net/p/elftoolchain/wiki/Home/
9 CONTACT=                nobody
10
11 DOWNLOAD_GROUPS=        main
12 SITES[main]=            SF/elftoolchain/Sources/elftoolchain-0.7.1
13 DISTFILE[1]=            elftoolchain-0.7.1.tar.bz2:main
14 DF_INDEX=               1
15 SPKGS[standard]=        complete
16                         libraries
17                         tools
18
19 OPTIONS_AVAILABLE=      none
20 OPTIONS_STANDARD=       none
21
22 EXRUN[tools]=           elftoolchain:libraries:standard
23
24 USES=                   cmake
25
26 LICENSE=                BSD2CLAUSE:libraries
27 LICENSE_FILE=           BSD2CLAUSE:{{WRKDIR}}/LICENSE
28 LICENSE_AWK=            BSD2CLAUSE:"^$$"
29 LICENSE_SOURCE=         BSD2CLAUSE:{{WRKSRC}}/libelf/libelf.h
30 LICENSE_SCHEME=         solo
31
32 SUB_FILES=              elftc_version.c
33 SUB_LIST=               VERSION=0.7.1
34
35 CFLAGS=                 -Wno-error=sign-conversion
36                         -Wno-error=conversion
37                         -Wno-error=unused-but-set-variable
38                         -Wno-error=old-style-definition
39                         -Wno-error=shift-negative-value
40 CMAKE_ARGS=             -DRAVDEST:STRING="{{STAGEDIR}}"
41
42 post-patch:
43         ${MV} ${WRKDIR}/elftc_version.c ${WRKSRC}/libelftc/
44
45 post-install:
46         ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/*
47         ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so
48
49 post-extract:
50         ${CP} ${FILESDIR}/top_CMakeLists.txt ${WRKSRC}/CMakeLists.txt
51         ${CP} ${FILESDIR}/libelf_CMakeLists.txt ${WRKSRC}/libelf/CMakeLists.txt
52         ${CP} ${FILESDIR}/libdwarf_CMakeLists.txt ${WRKSRC}/libdwarf/CMakeLists.txt
53         ${CP} ${FILESDIR}/libpe_CMakeLists.txt ${WRKSRC}/libpe/CMakeLists.txt
54         ${CP} ${FILESDIR}/libelftc_CMakeLists.txt ${WRKSRC}/libelftc/CMakeLists.txt
55 .for prog in addr2line readelf brandelf cxxfilt elfdump findtextrel \
56         nm size strings
57         # todo elfcopy/strip/mac ar/ranlib ld
58         ${CP} ${FILESDIR}/${prog}_CMakeLists.txt ${WRKSRC}/${prog}/CMakeLists.txt
59 .endfor
60
61 post-patch-sunos:
62         ${CP} ${FILESDIR}/sun_err.h ${WRKSRC}/common/
63 .for prog in nm brandelf cxxfilt elfdump size addr2line \
64         findtextrel readelf strings
65         ${REINPLACE_CMD} -e '/<err.h>/d' \
66                 -e 's|^ELFTC_VCSID.*|#include <sun_err.h>|' \
67                 ${WRKSRC}/${prog}/${prog}.c
68 .endfor
69
70 [FILE:369:descriptions/desc.libraries]
71 A BSD-licensed implementation of compilation tools (nm, ar, as, ld,
72 etc.) for the ELF object format.
73
74 This release contains BSD-licensed implementations of the "libdwarf"
75 and "libelf" libraries.
76
77 The release also contains API and utility reference documentation
78 (300+ manual entries in all), and contains test suites for some of
79 these released utilities and libraries.
80
81
82 [FILE:334:descriptions/desc.tools]
83 A BSD-licensed implementation of compilation tools (nm, ar, as, ld,
84 etc.) for the ELF object format.
85
86 This release contains BSD-licensed implementations of the "addr2line",
87 "ar", "brandelf", "c++filt", "elfcopy", "elfdump", "findtextrel", "mcs",
88 "nm", "ranlib", "readelf", "size", "strings" and "strip" program
89 development utilities.
90
91
92 [FILE:105:distinfo]
93 44f14591fcf21294387215dd7562f3fb4bec2f42f476cf32420a6bbabb2bd2b5      5361427 elftoolchain-0.7.1.tar.bz2
94
95
96 [FILE:8716:manifests/plist.libraries]
97 include/
98  dwarf.h
99  elfdefinitions.h
100  gelf.h
101  libdwarf.h
102  libelf.h
103  libelftc.h
104  libpe.h
105  pe.h
106 lib/
107  libdwarf.a
108  libdwarf.so
109  libdwarf.so.3
110  libdwarf.so.3.0
111  libdwarf_pic.a
112  libelf.a
113  libelf.so
114  libelf.so.1
115  libelf.so.1.0
116  libelf_pic.a
117  libelftc.a
118  libelftc.so
119  libelftc.so.1
120  libelftc.so.1.0
121  libelftc_pic.a
122  libpe.a
123  libpe.so
124  libpe.so.1
125  libpe.so.1.0
126  libpe_pic.a
127 share/man/man3/
128  dwarf.3.gz
129  dwarf_add_AT_comp_dir.3.gz
130  dwarf_add_AT_const_value_signedint.3.gz
131  dwarf_add_AT_const_value_string.3.gz
132  dwarf_add_AT_const_value_unsignedint.3.gz
133  dwarf_add_AT_dataref.3.gz
134  dwarf_add_AT_flag.3.gz
135  dwarf_add_AT_location_expr.3.gz
136  dwarf_add_AT_name.3.gz
137  dwarf_add_AT_producer.3.gz
138  dwarf_add_AT_ref_address.3.gz
139  dwarf_add_AT_reference.3.gz
140  dwarf_add_AT_signed_const.3.gz
141  dwarf_add_AT_string.3.gz
142  dwarf_add_AT_targ_address.3.gz
143  dwarf_add_AT_targ_address_b.3.gz
144  dwarf_add_AT_unsigned_const.3.gz
145  dwarf_add_arange.3.gz
146  dwarf_add_arange_b.3.gz
147  dwarf_add_die_to_debug.3.gz
148  dwarf_add_directory_decl.3.gz
149  dwarf_add_expr_addr.3.gz
150  dwarf_add_expr_addr_b.3.gz
151  dwarf_add_expr_gen.3.gz
152  dwarf_add_fde_inst.3.gz
153  dwarf_add_file_decl.3.gz
154  dwarf_add_frame_cie.3.gz
155  dwarf_add_frame_fde.3.gz
156  dwarf_add_frame_fde_b.3.gz
157  dwarf_add_funcname.3.gz
158  dwarf_add_line_entry.3.gz
159  dwarf_add_pubname.3.gz
160  dwarf_add_typename.3.gz
161  dwarf_add_varname.3.gz
162  dwarf_add_weakname.3.gz
163  dwarf_arrayorder.3.gz
164  dwarf_attr.3.gz
165  dwarf_attrlist.3.gz
166  dwarf_attroffset.3.gz
167  dwarf_attrval_flag.3.gz
168  dwarf_attrval_signed.3.gz
169  dwarf_attrval_string.3.gz
170  dwarf_attrval_unsigned.3.gz
171  dwarf_bitoffset.3.gz
172  dwarf_bitsize.3.gz
173  dwarf_bytesize.3.gz
174  dwarf_child.3.gz
175  dwarf_dealloc.3.gz
176  dwarf_def_macro.3.gz
177  dwarf_die_CU_offset.3.gz
178  dwarf_die_CU_offset_range.3.gz
179  dwarf_die_abbrev_code.3.gz
180  dwarf_die_link.3.gz
181  dwarf_diename.3.gz
182  dwarf_dieoffset.3.gz
183  dwarf_elf_init.3.gz
184  dwarf_end_macro_file.3.gz
185  dwarf_errmsg.3.gz
186  dwarf_errno.3.gz
187  dwarf_expand_frame_instructions.3.gz
188  dwarf_expr_current_offset.3.gz
189  dwarf_expr_into_block.3.gz
190  dwarf_fde_cfa_offset.3.gz
191  dwarf_fde_cie_list_dealloc.3.gz
192  dwarf_find_macro_value_start.3.gz
193  dwarf_finish.3.gz
194  dwarf_formaddr.3.gz
195  dwarf_formblock.3.gz
196  dwarf_formexprloc.3.gz
197  dwarf_formflag.3.gz
198  dwarf_formref.3.gz
199  dwarf_formsdata.3.gz
200  dwarf_formsig8.3.gz
201  dwarf_formstring.3.gz
202  dwarf_formudata.3.gz
203  dwarf_func_cu_offset.3.gz
204  dwarf_func_die_offset.3.gz
205  dwarf_func_name_offsets.3.gz
206  dwarf_funcname.3.gz
207  dwarf_funcs_dealloc.3.gz
208  dwarf_get_ACCESS_name.3.gz
209  dwarf_get_ATE_name.3.gz
210  dwarf_get_AT_name.3.gz
211  dwarf_get_CC_name.3.gz
212  dwarf_get_CFA_name.3.gz
213  dwarf_get_CHILDREN_name.3.gz
214  dwarf_get_DSC_name.3.gz
215  dwarf_get_DS_name.3.gz
216  dwarf_get_EH_name.3.gz
217  dwarf_get_END_name.3.gz
218  dwarf_get_FORM_name.3.gz
219  dwarf_get_ID_name.3.gz
220  dwarf_get_INL_name.3.gz
221  dwarf_get_LANG_name.3.gz
222  dwarf_get_LNE_name.3.gz
223  dwarf_get_LNS_name.3.gz
224  dwarf_get_MACINFO_name.3.gz
225  dwarf_get_OP_name.3.gz
226  dwarf_get_ORD_name.3.gz
227  dwarf_get_TAG_name.3.gz
228  dwarf_get_VIRTUALITY_name.3.gz
229  dwarf_get_VIS_name.3.gz
230  dwarf_get_abbrev.3.gz
231  dwarf_get_abbrev_children_flag.3.gz
232  dwarf_get_abbrev_code.3.gz
233  dwarf_get_abbrev_entry.3.gz
234  dwarf_get_abbrev_tag.3.gz
235  dwarf_get_address_size.3.gz
236  dwarf_get_arange.3.gz
237  dwarf_get_arange_cu_header_offset.3.gz
238  dwarf_get_arange_info.3.gz
239  dwarf_get_aranges.3.gz
240  dwarf_get_cie_index.3.gz
241  dwarf_get_cie_info.3.gz
242  dwarf_get_cie_of_fde.3.gz
243  dwarf_get_cu_die_offset.3.gz
244  dwarf_get_cu_die_offset_given_cu_header_offset.3.gz
245  dwarf_get_cu_die_offset_given_cu_header_offset_b.3.gz
246  dwarf_get_die_infotypes_flag.3.gz
247  dwarf_get_elf.3.gz
248  dwarf_get_fde_at_pc.3.gz
249  dwarf_get_fde_info_for_all_regs.3.gz
250  dwarf_get_fde_info_for_all_regs3.3.gz
251  dwarf_get_fde_info_for_cfa_reg3.3.gz
252  dwarf_get_fde_info_for_reg.3.gz
253  dwarf_get_fde_info_for_reg3.3.gz
254  dwarf_get_fde_instr_bytes.3.gz
255  dwarf_get_fde_list.3.gz
256  dwarf_get_fde_list_eh.3.gz
257  dwarf_get_fde_n.3.gz
258  dwarf_get_fde_range.3.gz
259  dwarf_get_form_class.3.gz
260  dwarf_get_funcs.3.gz
261  dwarf_get_globals.3.gz
262  dwarf_get_loclist_entry.3.gz
263  dwarf_get_macro_details.3.gz
264  dwarf_get_pubtypes.3.gz
265  dwarf_get_ranges.3.gz
266  dwarf_get_ranges_a.3.gz
267  dwarf_get_relocation_info.3.gz
268  dwarf_get_relocation_info_count.3.gz
269  dwarf_get_section_bytes.3.gz
270  dwarf_get_section_max_offsets.3.gz
271  dwarf_get_section_max_offsets_b.3.gz
272  dwarf_get_str.3.gz
273  dwarf_get_types.3.gz
274  dwarf_get_vars.3.gz
275  dwarf_get_weaks.3.gz
276  dwarf_global_cu_offset.3.gz
277  dwarf_global_die_offset.3.gz
278  dwarf_global_formref.3.gz
279  dwarf_global_name_offsets.3.gz
280  dwarf_globals_dealloc.3.gz
281  dwarf_globname.3.gz
282  dwarf_hasattr.3.gz
283  dwarf_hasform.3.gz
284  dwarf_highpc.3.gz
285  dwarf_highpc_b.3.gz
286  dwarf_init.3.gz
287  dwarf_line_srcfileno.3.gz
288  dwarf_lineaddr.3.gz
289  dwarf_linebeginstatement.3.gz
290  dwarf_lineblock.3.gz
291  dwarf_lineendsequence.3.gz
292  dwarf_lineno.3.gz
293  dwarf_lineoff.3.gz
294  dwarf_linesrc.3.gz
295  dwarf_lne_end_sequence.3.gz
296  dwarf_lne_set_address.3.gz
297  dwarf_loclist.3.gz
298  dwarf_loclist_from_expr.3.gz
299  dwarf_loclist_from_expr_b.3.gz
300  dwarf_loclist_n.3.gz
301  dwarf_lowpc.3.gz
302  dwarf_new_die.3.gz
303  dwarf_new_expr.3.gz
304  dwarf_new_fde.3.gz
305  dwarf_next_cu_header.3.gz
306  dwarf_next_cu_header_b.3.gz
307  dwarf_next_cu_header_c.3.gz
308  dwarf_next_types_section.3.gz
309  dwarf_object_finish.3.gz
310  dwarf_object_init.3.gz
311  dwarf_offdie.3.gz
312  dwarf_offdie_b.3.gz
313  dwarf_producer_init.3.gz
314  dwarf_producer_init_b.3.gz
315  dwarf_producer_set_isa.3.gz
316  dwarf_pubtype_cu_offset.3.gz
317  dwarf_pubtype_die_offset.3.gz
318  dwarf_pubtype_name_offsets.3.gz
319  dwarf_pubtypename.3.gz
320  dwarf_pubtypes_dealloc.3.gz
321  dwarf_ranges_dealloc.3.gz
322  dwarf_reset_section_bytes.3.gz
323  dwarf_set_frame_cfa_value.3.gz
324  dwarf_set_frame_rule_initial_value.3.gz
325  dwarf_set_frame_rule_table_size.3.gz
326  dwarf_set_frame_same_value.3.gz
327  dwarf_set_frame_undefined_value.3.gz
328  dwarf_set_reloc_application.3.gz
329  dwarf_seterrarg.3.gz
330  dwarf_seterrhand.3.gz
331  dwarf_siblingof.3.gz
332  dwarf_siblingof_b.3.gz
333  dwarf_srcfiles.3.gz
334  dwarf_srclang.3.gz
335  dwarf_srclines.3.gz
336  dwarf_srclines_dealloc.3.gz
337  dwarf_start_macro_file.3.gz
338  dwarf_tag.3.gz
339  dwarf_transform_to_disk_form.3.gz
340  dwarf_type_cu_offset.3.gz
341  dwarf_type_die_offset.3.gz
342  dwarf_type_name_offsets.3.gz
343  dwarf_typename.3.gz
344  dwarf_types_dealloc.3.gz
345  dwarf_undef_macro.3.gz
346  dwarf_var_cu_offset.3.gz
347  dwarf_var_die_offset.3.gz
348  dwarf_var_name_offsets.3.gz
349  dwarf_varname.3.gz
350  dwarf_vars_dealloc.3.gz
351  dwarf_vendor_ext.3.gz
352  dwarf_weak_cu_offset.3.gz
353  dwarf_weak_die_offset.3.gz
354  dwarf_weak_name_offsets.3.gz
355  dwarf_weakname.3.gz
356  dwarf_weaks_dealloc.3.gz
357  dwarf_whatattr.3.gz
358  dwarf_whatform.3.gz
359  dwarf_whatform_direct.3.gz
360  elf.3.gz
361  elf32_checksum.3.gz
362  elf32_fsize.3.gz
363  elf32_getehdr.3.gz
364  elf32_getphdr.3.gz
365  elf32_getshdr.3.gz
366  elf32_newehdr.3.gz
367  elf32_newphdr.3.gz
368  elf32_xlatetof.3.gz
369  elf32_xlatetom.3.gz
370  elf64_checksum.3.gz
371  elf64_fsize.3.gz
372  elf64_getehdr.3.gz
373  elf64_getphdr.3.gz
374  elf64_getshdr.3.gz
375  elf64_newehdr.3.gz
376  elf64_newphdr.3.gz
377  elf64_xlatetof.3.gz
378  elf64_xlatetom.3.gz
379  elf_begin.3.gz
380  elf_cntl.3.gz
381  elf_end.3.gz
382  elf_errmsg.3.gz
383  elf_errno.3.gz
384  elf_fill.3.gz
385  elf_flagarhdr.3.gz
386  elf_flagdata.3.gz
387  elf_flagehdr.3.gz
388  elf_flagelf.3.gz
389  elf_flagphdr.3.gz
390  elf_flagscn.3.gz
391  elf_flagshdr.3.gz
392  elf_getarhdr.3.gz
393  elf_getarsym.3.gz
394  elf_getbase.3.gz
395  elf_getdata.3.gz
396  elf_getident.3.gz
397  elf_getphdrnum.3.gz
398  elf_getphnum.3.gz
399  elf_getscn.3.gz
400  elf_getshdrnum.3.gz
401  elf_getshdrstrndx.3.gz
402  elf_getshnum.3.gz
403  elf_getshstrndx.3.gz
404  elf_hash.3.gz
405  elf_kind.3.gz
406  elf_memory.3.gz
407  elf_ndxscn.3.gz
408  elf_newdata.3.gz
409  elf_newscn.3.gz
410  elf_next.3.gz
411  elf_nextscn.3.gz
412  elf_open.3.gz
413  elf_openmemory.3.gz
414  elf_rand.3.gz
415  elf_rawdata.3.gz
416  elf_rawfile.3.gz
417  elf_setshstrndx.3.gz
418  elf_strptr.3.gz
419  elf_update.3.gz
420  elf_version.3.gz
421  elftc.3.gz
422  elftc_bfd_find_target.3.gz
423  elftc_bfd_target_byteorder.3.gz
424  elftc_bfd_target_class.3.gz
425  elftc_bfd_target_flavor.3.gz
426  elftc_copyfile.3.gz
427  elftc_demangle.3.gz
428  elftc_set_timestamps.3.gz
429  elftc_string_table_create.3.gz
430  elftc_string_table_destroy.3.gz
431  elftc_string_table_from_section.3.gz
432  elftc_string_table_image.3.gz
433  elftc_string_table_insert.3.gz
434  elftc_string_table_lookup.3.gz
435  elftc_version.3.gz
436  gelf.3.gz
437  gelf_checksum.3.gz
438  gelf_fsize.3.gz
439  gelf_getcap.3.gz
440  gelf_getclass.3.gz
441  gelf_getdyn.3.gz
442  gelf_getehdr.3.gz
443  gelf_getmove.3.gz
444  gelf_getphdr.3.gz
445  gelf_getrel.3.gz
446  gelf_getrela.3.gz
447  gelf_getshdr.3.gz
448  gelf_getsym.3.gz
449  gelf_getsyminfo.3.gz
450  gelf_getsymshndx.3.gz
451  gelf_newehdr.3.gz
452  gelf_newphdr.3.gz
453  gelf_update_cap.3.gz
454  gelf_update_dyn.3.gz
455  gelf_update_ehdr.3.gz
456  gelf_update_move.3.gz
457  gelf_update_phdr.3.gz
458  gelf_update_rel.3.gz
459  gelf_update_rela.3.gz
460  gelf_update_shdr.3.gz
461  gelf_update_sym.3.gz
462  gelf_update_syminfo.3.gz
463  gelf_update_symshndx.3.gz
464  gelf_xlatetof.3.gz
465  gelf_xlatetom.3.gz
466
467
468 [FILE:572:manifests/plist.tools]
469 @comment bin/ar
470 @comment bin/elfcopy
471 @comment bin/ld
472 @comment bin/mcs
473 @comment bin/ranlib
474 @comment bin/strip
475 @comment share/man/man1/ar.1.gz
476 @comment share/man/man1/elfcopy.1.gz
477 @comment share/man/man1/ld.1.gz
478 @comment share/man/man1/mcs.1.gz
479 @comment share/man/man1/ranlib.1.gz
480 @comment share/man/man1/strip.1.gz
481 @comment share/man/man5/ar.5.gz
482 bin/
483  addr2line
484  brandelf
485  c++filt
486  elfdump
487  findtextrel
488  nm
489  readelf
490  size
491  strings
492 share/man/man1/
493  addr2line.1.gz
494  brandelf.1.gz
495  c++filt.1.gz
496  elfdump.1.gz
497  findtextrel.1.gz
498  nm.1.gz
499  readelf.1.gz
500  size.1.gz
501  strings.1.gz
502
503
504 [FILE:1086:patches/patch-common___elftc.h]
505 --- common/_elftc.h.orig        2015-08-31 19:53:08 UTC
506 +++ common/_elftc.h
507 @@ -295,7 +295,7 @@ struct name {                                                       \
508  #endif
509  
510  #if defined(__APPLE__) || defined(__GLIBC__) || defined(__GNU__) || \
511 -    defined(__linux__)
512 +    defined(__linux__) || defined(__sun__)
513  #if defined(__GNUC__)
514  #define        ELFTC_VCSID(ID)         __asm__(".ident\t\"" ID "\"")
515  #else
516 @@ -365,6 +365,9 @@ extern const char *__progname;
517  
518  #endif /* ELFTC_GETPROGNAME */
519  
520 +#ifdef __sun__
521 +#define ELFTC_GETPROGNAME()    getexecname
522 +#endif
523  
524  /**
525   ** Per-OS configuration.
526 @@ -481,4 +484,20 @@ extern const char *__progname;
527  
528  #endif /* __OpenBSD__ */
529  
530 +#ifdef __sun__
531 +
532 +#define roundup(x, y)  ((((x)+((y)-1))/(y))*(y))  /* to any y */
533 +#define roundup2(x, y) (((x)+((y)-1))&(~((y)-1))) /* if y is powers of two */
534 +
535 +
536 +
537 +#define        ELFTC_BYTE_ORDER                        __BYTE_ORDER
538 +#define        ELFTC_BYTE_ORDER_LITTLE_ENDIAN          __LITTLE_ENDIAN
539 +#define        ELFTC_BYTE_ORDER_BIG_ENDIAN             __BIG_ENDIAN
540 +#define        ELFTC_HAVE_MMAP                         1
541 +#define        ELFTC_HAVE_STRMODE                      0
542 +#define        ELFTC_NEED_BYTEORDER_EXTENSIONS         1
543 +
544 +#endif /* __sun__ */
545 +
546  #endif /* _ELFTC_H */
547
548
549 [FILE:349:patches/patch-libelf___libelf__config.h]
550 --- libelf/_libelf_config.h.orig        2015-02-24 19:17:47 UTC
551 +++ libelf/_libelf_config.h
552 @@ -26,7 +26,7 @@
553   * $Id: _libelf_config.h 3168 2015-02-24 19:17:47Z emaste $
554   */
555  
556 -#if defined(__APPLE__) || defined(__DragonFly__)
557 +#if defined(__APPLE__) || defined(__DragonFly__) || defined(__sun__)
558  
559  #if    defined(__amd64__)
560  #define        LIBELF_ARCH             EM_X86_64
561
562
563 [FILE:1488:patches/patch-libelftc_libelftc__dem__gnu3.c]
564 --- libelftc/libelftc_dem_gnu3.c.orig   2016-01-04 02:36:38 UTC
565 +++ libelftc/libelftc_dem_gnu3.c
566 @@ -33,6 +33,7 @@
567  #include <stdio.h>
568  #include <stdlib.h>
569  #include <string.h>
570 +#include <stdarg.h>
571  
572  #include "_libelftc.h"
573  
574 @@ -165,6 +166,48 @@ static int vector_type_qualifier_init(st
575  static int     vector_type_qualifier_push(struct vector_type_qualifier *,
576                     enum type_qualifier);
577  
578 +/*
579 + * Compatibility funcs
580 + */
581 +
582 +static int
583 +port_vasprintf(char **strp, const char *fmt, va_list args)
584 +{
585 +    va_list args_copy;
586 +    int status, needed;
587 +
588 +    va_copy(args_copy, args);
589 +    needed = vsnprintf(NULL, 0, fmt, args_copy);
590 +    va_end(args_copy);
591 +    if (needed < 0) {
592 +        *strp = NULL;
593 +        return needed;
594 +    }
595 +    *strp = malloc(needed + 1);
596 +    if (*strp == NULL)
597 +        return -1;
598 +    status = vsnprintf(*strp, needed + 1, fmt, args);
599 +    if (status >= 0)
600 +        return status;
601 +    else {
602 +        free(*strp);
603 +        *strp = NULL;
604 +        return status;
605 +    }
606 +}
607 +
608 +static int
609 +port_asprintf(char **strp, const char *fmt, ...)
610 +{
611 +    va_list args;
612 +    int status;
613 +
614 +    va_start(args, fmt);
615 +    status = port_vasprintf(strp, fmt, args);
616 +    va_end(args);
617 +    return status;
618 +}
619 +
620  /**
621   * @brief Decode the input string by IA-64 C++ ABI style.
622   *
623 @@ -1704,7 +1747,7 @@ cpp_demangle_read_number_as_string(struc
624                 return (0);
625         }
626  
627 -       if (asprintf(str, "%ld", n) < 0) {
628 +       if (port_asprintf(str, "%ld", n) < 0) {
629                 *str = NULL;
630                 return (0);
631         }
632
633
634 [FILE:1679:patches/patch-readelf_readelf.c]
635 --- readelf/readelf.c.orig      2019-07-18 03:57:34 UTC
636 +++ readelf/readelf.c
637 @@ -210,6 +210,47 @@ struct mips_option {
638         const char *desc;
639  };
640  
641 +/*
642 + * compatibility functions
643 + */
644 +
645 +static size_t
646 +port_strnlen(const char *s, size_t maxlen)
647 +{
648 +       size_t len;
649 +       for (len = 0; len < maxlen; len++, s++) {
650 +               if (!*s) break;
651 +       }
652 +       return (len);
653 +}
654 +
655 +static char *
656 +port_strsep(char **stringp, const char *delim)
657 +{
658 +       char *s;
659 +       const char *spanp;
660 +       int c, sc;
661 +       char *tok;
662 +
663 +       if ((s = *stringp) == NULL)
664 +               return (NULL);
665 +       for (tok = s;;) {
666 +               c = *s++;
667 +               spanp = delim;
668 +               do {
669 +                       if ((sc = *spanp++) == c) {
670 +                               if (c == 0)
671 +                                       s = NULL;
672 +                               else
673 +                                       s[-1] = 0;
674 +                               *stringp = s;
675 +                               return (tok);
676 +                       }
677 +               } while (sc != 0);
678 +       }
679 +       /* NOTREACHED */
680 +}
681 +
682  static void add_dumpop(struct readelf *re, size_t si, const char *sn, int op,
683      int t);
684  static const char *aeabi_adv_simd_arch(uint64_t simd);
685 @@ -3857,7 +3898,7 @@ dump_notes_content(struct readelf *re, c
686                         name = "";
687                 else if (note->n_namesz == 4 && strncmp(name, "CORE", 4) == 0)
688                         name = "CORE";
689 -               else if (strnlen(name, note->n_namesz) >= note->n_namesz)
690 +               else if (port_strnlen(name, note->n_namesz) >= note->n_namesz)
691                         name = "<invalid>";
692                 printf("  %-13s %#010jx", name, (uintmax_t) note->n_descsz);
693                 printf("      %s\n", note_type(name, re->ehdr.e_type,
694 @@ -7340,7 +7381,7 @@ parse_dwarf_op_long(struct readelf *re,
695                 err(EXIT_FAILURE, "strdup failed");
696         bp = p;
697  
698 -       while ((token = strsep(&p, ",")) != NULL) {
699 +       while ((token = port_strsep(&p, ",")) != NULL) {
700                 for (i = 0; dwarf_op[i].ln != NULL; i++) {
701                         if (!strcmp(token, dwarf_op[i].ln)) {
702                                 re->dop |= dwarf_op[i].value;
703
704
705 [FILE:410:files/addr2line_CMakeLists.txt]
706 set(prog addr2line)
707
708 include_directories(
709         ${CMAKE_CURRENT_SOURCE_DIR}
710         ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf
711         ${CMAKE_CURRENT_SOURCE_DIR}/../libelf
712         ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc
713         ${CMAKE_CURRENT_SOURCE_DIR}/../common
714 )
715
716 add_executable(${prog} ${prog}.c)
717
718 target_link_libraries(${prog} elf elftc dwarf)
719
720 install(TARGETS ${prog} DESTINATION bin)
721 install(FILES ${prog}.1 DESTINATION share/man/man1)
722
723
724 [FILE:403:files/brandelf_CMakeLists.txt]
725 set(prog brandelf)
726
727 include_directories(
728         ${CMAKE_CURRENT_SOURCE_DIR}
729         ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf
730         ${CMAKE_CURRENT_SOURCE_DIR}/../libelf
731         ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc
732         ${CMAKE_CURRENT_SOURCE_DIR}/../common
733 )
734
735 add_executable(${prog} ${prog}.c)
736
737 target_link_libraries(${prog} elf elftc)
738
739 install(TARGETS ${prog} DESTINATION bin)
740 install(FILES ${prog}.1 DESTINATION share/man/man1)
741
742
743 [FILE:402:files/cxxfilt_CMakeLists.txt]
744 set(prog c++filt)
745
746 include_directories(
747         ${CMAKE_CURRENT_SOURCE_DIR}
748         ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf
749         ${CMAKE_CURRENT_SOURCE_DIR}/../libelf
750         ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc
751         ${CMAKE_CURRENT_SOURCE_DIR}/../common
752 )
753
754 add_executable(${prog} cxxfilt.c)
755
756 target_link_libraries(${prog} elf elftc)
757
758 install(TARGETS ${prog} DESTINATION bin)
759 install(FILES c++filt.1 DESTINATION share/man/man1)
760
761
762 [FILE:402:files/elfdump_CMakeLists.txt]
763 set(prog elfdump)
764
765 include_directories(
766         ${CMAKE_CURRENT_SOURCE_DIR}
767         ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf
768         ${CMAKE_CURRENT_SOURCE_DIR}/../libelf
769         ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc
770         ${CMAKE_CURRENT_SOURCE_DIR}/../common
771 )
772
773 add_executable(${prog} ${prog}.c)
774
775 target_link_libraries(${prog} elf elftc)
776
777 install(TARGETS ${prog} DESTINATION bin)
778 install(FILES ${prog}.1 DESTINATION share/man/man1)
779
780
781 [FILE:131:files/elftc_version.c.in]
782 #include <sys/types.h>
783 #include <libelftc.h>
784
785 const char *
786 elftc_version(void)
787 {
788         return "elftcname %%VERSION%% release";
789 }
790
791
792 [FILE:412:files/findtextrel_CMakeLists.txt]
793 set(prog findtextrel)
794
795 include_directories(
796         ${CMAKE_CURRENT_SOURCE_DIR}
797         ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf
798         ${CMAKE_CURRENT_SOURCE_DIR}/../libelf
799         ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc
800         ${CMAKE_CURRENT_SOURCE_DIR}/../common
801 )
802
803 add_executable(${prog} ${prog}.c)
804
805 target_link_libraries(${prog} elf elftc dwarf)
806
807 install(TARGETS ${prog} DESTINATION bin)
808 install(FILES ${prog}.1 DESTINATION share/man/man1)
809
810
811 [FILE:13989:files/libdwarf_CMakeLists.txt]
812 include_directories(
813         ${CMAKE_CURRENT_SOURCE_DIR}
814         ${CMAKE_CURRENT_SOURCE_DIR}/../common
815         ${CMAKE_CURRENT_SOURCE_DIR}/../libelf
816 )
817
818 set(gensrcs
819         ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_pubnames.c
820         ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_pubtypes.c
821         ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_weaks.c
822         ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_funcs.c
823         ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_vars.c
824         ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_types.c
825         ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_pro_pubnames.c
826         ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_pro_weaks.c
827         ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_pro_funcs.c
828         ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_pro_types.c
829         ${CMAKE_SOURCE_DIR}/libdwarf/dwarf_pro_vars.c
830 )
831
832 set(libsrcs
833         dwarf_abbrev.c
834         dwarf_arange.c
835         dwarf_attr.c
836         dwarf_attrval.c
837         dwarf_cu.c
838         dwarf_dealloc.c
839         dwarf_die.c
840         dwarf_dump.c
841         dwarf_errmsg.c
842         dwarf_finish.c
843         dwarf_form.c
844         dwarf_frame.c
845         dwarf_funcs.c
846         dwarf_init.c
847         dwarf_lineno.c
848         dwarf_loclist.c
849         dwarf_macinfo.c
850         dwarf_pro_arange.c
851         dwarf_pro_attr.c
852         dwarf_pro_die.c
853         dwarf_pro_expr.c
854         dwarf_pro_finish.c
855         dwarf_pro_frame.c
856         dwarf_pro_funcs.c
857         dwarf_pro_init.c
858         dwarf_pro_lineno.c
859         dwarf_pro_macinfo.c
860         dwarf_pro_pubnames.c
861         dwarf_pro_reloc.c
862         dwarf_pro_sections.c
863         dwarf_pro_types.c
864         dwarf_pro_vars.c
865         dwarf_pro_weaks.c
866         dwarf_pubnames.c
867         dwarf_pubtypes.c
868         dwarf_ranges.c
869         dwarf_reloc.c
870         dwarf_sections.c
871         dwarf_seterror.c
872         dwarf_str.c
873         dwarf_types.c
874         dwarf_vars.c
875         dwarf_weaks.c
876         libdwarf.c
877         libdwarf_abbrev.c
878         libdwarf_arange.c
879         libdwarf_attr.c
880         libdwarf_die.c
881         libdwarf_error.c
882         libdwarf_elf_access.c
883         libdwarf_elf_init.c
884         libdwarf_frame.c
885         libdwarf_info.c
886         libdwarf_init.c
887         libdwarf_lineno.c
888         libdwarf_loc.c
889         libdwarf_loclist.c
890         libdwarf_macinfo.c
891         libdwarf_nametbl.c
892         libdwarf_ranges.c
893         libdwarf_reloc.c
894         libdwarf_rw.c
895         libdwarf_sections.c
896         libdwarf_str.c
897         ${gensrcs}
898 )
899
900
901 set(man3
902         dwarf.3
903         dwarf_add_arange.3
904         dwarf_add_AT_comp_dir.3
905         dwarf_add_AT_const_value_string.3
906         dwarf_add_AT_dataref.3
907         dwarf_add_AT_flag.3
908         dwarf_add_AT_location_expr.3
909         dwarf_add_AT_name.3
910         dwarf_add_AT_producer.3
911         dwarf_add_AT_ref_address.3
912         dwarf_add_AT_reference.3
913         dwarf_add_AT_signed_const.3
914         dwarf_add_AT_string.3
915         dwarf_add_AT_targ_address.3
916         dwarf_add_die_to_debug.3
917         dwarf_add_directory_decl.3
918         dwarf_add_expr_addr.3
919         dwarf_add_expr_gen.3
920         dwarf_add_fde_inst.3
921         dwarf_add_file_decl.3
922         dwarf_add_frame_cie.3
923         dwarf_add_frame_fde.3
924         dwarf_add_funcname.3
925         dwarf_add_line_entry.3
926         dwarf_add_pubname.3
927         dwarf_add_typename.3
928         dwarf_add_varname.3
929         dwarf_add_weakname.3
930         dwarf_attr.3
931         dwarf_attrlist.3
932         dwarf_attroffset.3
933         dwarf_attrval_signed.3
934         dwarf_child.3
935         dwarf_dealloc.3
936         dwarf_def_macro.3
937         dwarf_die_abbrev_code.3
938         dwarf_die_link.3
939         dwarf_diename.3
940         dwarf_dieoffset.3
941         dwarf_end_macro_file.3
942         dwarf_errmsg.3
943         dwarf_errno.3
944         dwarf_expand_frame_instructions.3
945         dwarf_expr_current_offset.3
946         dwarf_expr_into_block.3
947         dwarf_fde_cfa_offset.3
948         dwarf_find_macro_value_start.3
949         dwarf_finish.3
950         dwarf_formaddr.3
951         dwarf_formblock.3
952         dwarf_formexprloc.3
953         dwarf_formflag.3
954         dwarf_formref.3
955         dwarf_formsig8.3
956         dwarf_formstring.3
957         dwarf_formudata.3
958         dwarf_get_abbrev.3
959         dwarf_get_abbrev_children_flag.3
960         dwarf_get_abbrev_code.3
961         dwarf_get_abbrev_entry.3
962         dwarf_get_abbrev_tag.3
963         dwarf_get_address_size.3
964         dwarf_get_arange.3
965         dwarf_get_arange_info.3
966         dwarf_get_aranges.3
967         dwarf_get_AT_name.3
968         dwarf_get_cie_index.3
969         dwarf_get_cie_info.3
970         dwarf_get_cie_of_fde.3
971         dwarf_get_cu_die_offset.3
972         dwarf_get_die_infotypes_flag.3
973         dwarf_get_elf.3
974         dwarf_get_fde_at_pc.3
975         dwarf_get_fde_info_for_all_regs.3
976         dwarf_get_fde_info_for_all_regs3.3
977         dwarf_get_fde_info_for_cfa_reg3.3
978         dwarf_get_fde_info_for_reg.3
979         dwarf_get_fde_info_for_reg3.3
980         dwarf_get_fde_instr_bytes.3
981         dwarf_get_fde_list.3
982         dwarf_get_fde_n.3
983         dwarf_get_fde_range.3
984         dwarf_get_form_class.3
985         dwarf_get_funcs.3
986         dwarf_get_globals.3
987         dwarf_get_loclist_entry.3
988         dwarf_get_macro_details.3
989         dwarf_get_pubtypes.3
990         dwarf_get_ranges.3
991         dwarf_get_relocation_info.3
992         dwarf_get_relocation_info_count.3
993         dwarf_get_section_bytes.3
994         dwarf_get_section_max_offsets.3
995         dwarf_get_str.3
996         dwarf_get_types.3
997         dwarf_get_vars.3
998         dwarf_get_weaks.3
999         dwarf_hasattr.3
1000         dwarf_hasform.3
1001         dwarf_highpc.3
1002         dwarf_init.3
1003         dwarf_lineno.3
1004         dwarf_lne_end_sequence.3
1005         dwarf_lne_set_address.3
1006         dwarf_loclist.3
1007         dwarf_loclist_from_expr.3
1008         dwarf_new_die.3
1009         dwarf_new_expr.3
1010         dwarf_new_fde.3
1011         dwarf_next_cu_header.3
1012         dwarf_next_types_section.3
1013         dwarf_object_init.3
1014         dwarf_producer_init.3
1015         dwarf_producer_set_isa.3
1016         dwarf_reset_section_bytes.3
1017         dwarf_seterrarg.3
1018         dwarf_set_frame_cfa_value.3
1019         dwarf_set_reloc_application.3
1020         dwarf_srcfiles.3
1021         dwarf_srclines.3
1022         dwarf_start_macro_file.3
1023         dwarf_tag.3
1024         dwarf_transform_to_disk_form.3
1025         dwarf_undef_macro.3
1026         dwarf_vendor_ext.3
1027         dwarf_whatattr.3
1028 )
1029
1030 add_library(dwarfobj OBJECT ${libsrcs})
1031 set_property(TARGET dwarfobj PROPERTY POSITION_INDEPENDENT_CODE 1)
1032
1033 add_library(dwarf SHARED $<TARGET_OBJECTS:dwarfobj>)
1034 add_library(dwarf_pic STATIC $<TARGET_OBJECTS:dwarfobj>)
1035 add_library(dwarf_static ${libsrcs})
1036
1037 set_target_properties(dwarf PROPERTIES VERSION 3.0)
1038 set_target_properties(dwarf PROPERTIES SOVERSION 3)
1039 set_target_properties(dwarf PROPERTIES PUBLIC_HEADER libdwarf.h)
1040 target_link_libraries(dwarf elf)
1041
1042 macro(m4toc outfilename)
1043 add_custom_command(
1044    OUTPUT ${CMAKE_SOURCE_DIR}/libdwarf/${outfilename}.c
1045    COMMAND m4 -DSRCDIR=${CMAKE_SOURCE_DIR}/libdwarf ${CMAKE_SOURCE_DIR}/libdwarf/${outfilename}.m4 > ${CMAKE_SOURCE_DIR}/libdwarf/${outfilename}.c
1046    DEPENDS ${CMAKE_SOURCE_DIR}/libdwarf/${outfilename}.m4
1047    COMMENT "Generated ${outfilename}.c"
1048 )
1049 set_source_files_properties(${CMAKE_SOURCE_DIR}/libdwarf/${outfilename}.c PROPERTIES GENERATED true)
1050 endmacro(m4toc)
1051
1052 macro(install_symlink filepath sympath)
1053     install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${filepath} ${sympath})")
1054     install(CODE "message(\"-- Created symlink: ${sympath} -> ${filepath}\")")
1055 endmacro(install_symlink)
1056
1057 m4toc(dwarf_pubnames)
1058 m4toc(dwarf_pubtypes)
1059 m4toc(dwarf_weaks)
1060 m4toc(dwarf_funcs)
1061 m4toc(dwarf_vars)
1062 m4toc(dwarf_types)
1063 m4toc(dwarf_pro_pubnames)
1064 m4toc(dwarf_pro_weaks)
1065 m4toc(dwarf_pro_funcs)
1066 m4toc(dwarf_pro_types)
1067 m4toc(dwarf_pro_vars)
1068
1069 install(TARGETS dwarf
1070     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
1071     PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
1072
1073 install(TARGETS dwarf_pic
1074     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
1075     PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
1076
1077 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libdwarf_static.a
1078         RENAME libdwarf.a
1079         DESTINATION lib)
1080
1081 install(FILES dwarf.h DESTINATION include)
1082 install(FILES ${man3} DESTINATION share/man/man3)
1083
1084 # man page links
1085 set(m3dir ${RAVDEST}${CMAKE_INSTALL_MANDIR}/man3)
1086 install_symlink(dwarf_add_AT_const_value_string.3 ${m3dir}/dwarf_add_AT_const_value_signedint.3)
1087 install_symlink(dwarf_add_AT_const_value_string.3 ${m3dir}/dwarf_add_AT_const_value_unsignedint.3)
1088 install_symlink(dwarf_add_AT_signed_const.3 ${m3dir}/dwarf_add_AT_unsigned_const.3)
1089 install_symlink(dwarf_add_AT_targ_address.3 ${m3dir}/dwarf_add_AT_targ_address_b.3)
1090 install_symlink(dwarf_add_arange.3 ${m3dir}/dwarf_add_arange_b.3)
1091 install_symlink(dwarf_add_expr_addr.3 ${m3dir}/dwarf_add_expr_addr_b.3)
1092 install_symlink(dwarf_add_frame_fde.3 ${m3dir}/dwarf_add_frame_fde_b.3)
1093 install_symlink(dwarf_attrval_signed.3 ${m3dir}/dwarf_attrval_flag.3)
1094 install_symlink(dwarf_attrval_signed.3 ${m3dir}/dwarf_attrval_string.3)
1095 install_symlink(dwarf_attrval_signed.3 ${m3dir}/dwarf_attrval_unsigned.3)
1096 install_symlink(dwarf_child.3 ${m3dir}/dwarf_offdie.3)
1097 install_symlink(dwarf_child.3 ${m3dir}/dwarf_offdie_b.3)
1098 install_symlink(dwarf_child.3 ${m3dir}/dwarf_siblingof.3)
1099 install_symlink(dwarf_child.3 ${m3dir}/dwarf_siblingof_b.3)
1100 install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_fde_cie_list_dealloc.3)
1101 install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_funcs_dealloc.3)
1102 install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_globals_dealloc.3)
1103 install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_pubtypes_dealloc.3)
1104 install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_types_dealloc.3)
1105 install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_vars_dealloc.3)
1106 install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_weaks_dealloc.3)
1107 install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_ranges_dealloc.3)
1108 install_symlink(dwarf_dealloc.3 ${m3dir}/dwarf_srclines_dealloc.3)
1109 install_symlink(dwarf_init.3 ${m3dir}/dwarf_elf_init.3)
1110 install_symlink(dwarf_dieoffset.3 ${m3dir}/dwarf_die_CU_offset.3)
1111 install_symlink(dwarf_dieoffset.3 ${m3dir}/dwarf_die_CU_offset_range.3)
1112 install_symlink(dwarf_dieoffset.3 ${m3dir}/dwarf_get_cu_die_offset_given_cu_header_offset.3)
1113 install_symlink(dwarf_dieoffset.3 ${m3dir}/dwarf_get_cu_die_offset_given_cu_header_offset_b.3)
1114 install_symlink(dwarf_finish.3 ${m3dir}/dwarf_object_finish.3)
1115 install_symlink(dwarf_formref.3 ${m3dir}/dwarf_global_formref.3)
1116 install_symlink(dwarf_formudata.3 ${m3dir}/dwarf_formsdata.3)
1117 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_ACCESS_name.3)
1118 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_ATE_name.3)
1119 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_CC_name.3)
1120 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_CFA_name.3)
1121 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_CHILDREN_name.3)
1122 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_DS_name.3)
1123 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_DSC_name.3)
1124 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_EH_name.3)
1125 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_END_name.3)
1126 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_FORM_name.3)
1127 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_ID_name.3)
1128 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_INL_name.3)
1129 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_LANG_name.3)
1130 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_LNE_name.3)
1131 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_LNS_name.3)
1132 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_MACINFO_name.3)
1133 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_OP_name.3)
1134 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_ORD_name.3)
1135 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_TAG_name.3)
1136 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_VIRTUALITY_name.3)
1137 install_symlink(dwarf_get_AT_name.3 ${m3dir}/dwarf_get_VIS_name.3)
1138 install_symlink(dwarf_get_cu_die_offset.3 ${m3dir}/dwarf_get_arange_cu_header_offset.3)
1139 install_symlink(dwarf_get_fde_list.3 ${m3dir}/dwarf_get_fde_list_eh.3)
1140 install_symlink(dwarf_get_funcs.3 ${m3dir}/dwarf_func_die_offset.3)
1141 install_symlink(dwarf_get_funcs.3 ${m3dir}/dwarf_func_cu_offset.3)
1142 install_symlink(dwarf_get_funcs.3 ${m3dir}/dwarf_func_name_offsets.3)
1143 install_symlink(dwarf_get_funcs.3 ${m3dir}/dwarf_funcname.3)
1144 install_symlink(dwarf_get_globals.3 ${m3dir}/dwarf_global_die_offset.3)
1145 install_symlink(dwarf_get_globals.3 ${m3dir}/dwarf_global_cu_offset.3)
1146 install_symlink(dwarf_get_globals.3 ${m3dir}/dwarf_global_name_offsets.3)
1147 install_symlink(dwarf_get_globals.3 ${m3dir}/dwarf_globname.3)
1148 install_symlink(dwarf_get_pubtypes.3 ${m3dir}/dwarf_pubtype_die_offset.3)
1149 install_symlink(dwarf_get_pubtypes.3 ${m3dir}/dwarf_pubtype_cu_offset.3)
1150 install_symlink(dwarf_get_pubtypes.3 ${m3dir}/dwarf_pubtype_name_offsets.3)
1151 install_symlink(dwarf_get_pubtypes.3 ${m3dir}/dwarf_pubtypename.3)
1152 install_symlink(dwarf_get_ranges.3 ${m3dir}/dwarf_get_ranges_a.3)
1153 install_symlink(dwarf_get_section_max_offsets.3 ${m3dir}/dwarf_get_section_max_offsets_b.3)
1154 install_symlink(dwarf_get_types.3 ${m3dir}/dwarf_type_die_offset.3)
1155 install_symlink(dwarf_get_types.3 ${m3dir}/dwarf_type_cu_offset.3)
1156 install_symlink(dwarf_get_types.3 ${m3dir}/dwarf_type_name_offsets.3)
1157 install_symlink(dwarf_get_types.3 ${m3dir}/dwarf_typename.3)
1158 install_symlink(dwarf_get_vars.3 ${m3dir}/dwarf_var_die_offset.3)
1159 install_symlink(dwarf_get_vars.3 ${m3dir}/dwarf_var_cu_offset.3)
1160 install_symlink(dwarf_get_vars.3 ${m3dir}/dwarf_var_name_offsets.3)
1161 install_symlink(dwarf_get_vars.3 ${m3dir}/dwarf_varname.3)
1162 install_symlink(dwarf_get_weaks.3 ${m3dir}/dwarf_weak_die_offset.3)
1163 install_symlink(dwarf_get_weaks.3 ${m3dir}/dwarf_weak_cu_offset.3)
1164 install_symlink(dwarf_get_weaks.3 ${m3dir}/dwarf_weak_name_offsets.3)
1165 install_symlink(dwarf_get_weaks.3 ${m3dir}/dwarf_weakname.3)
1166 install_symlink(dwarf_hasform.3 ${m3dir}/dwarf_whatform.3)
1167 install_symlink(dwarf_hasform.3 ${m3dir}/dwarf_whatform_direct.3)
1168 install_symlink(dwarf_highpc.3 ${m3dir}/dwarf_arrayorder.3)
1169 install_symlink(dwarf_highpc.3 ${m3dir}/dwarf_bitoffset.3)
1170 install_symlink(dwarf_highpc.3 ${m3dir}/dwarf_bitsize.3)
1171 install_symlink(dwarf_highpc.3 ${m3dir}/dwarf_bytesize.3)
1172 install_symlink(dwarf_highpc.3 ${m3dir}/dwarf_highpc_b.3)
1173 install_symlink(dwarf_highpc.3 ${m3dir}/dwarf_lowpc.3)
1174 install_symlink(dwarf_highpc.3 ${m3dir}/dwarf_srclang.3)
1175 install_symlink(dwarf_lineno.3 ${m3dir}/dwarf_lineaddr.3)
1176 install_symlink(dwarf_lineno.3 ${m3dir}/dwarf_linebeginstatement.3)
1177 install_symlink(dwarf_lineno.3 ${m3dir}/dwarf_lineblock.3)
1178 install_symlink(dwarf_lineno.3 ${m3dir}/dwarf_lineendsequence.3)
1179 install_symlink(dwarf_lineno.3 ${m3dir}/dwarf_lineoff.3)
1180 install_symlink(dwarf_lineno.3 ${m3dir}/dwarf_linesrc.3)
1181 install_symlink(dwarf_lineno.3 ${m3dir}/dwarf_line_srcfileno.3)
1182 install_symlink(dwarf_loclist.3 ${m3dir}/dwarf_loclist_n.3)
1183 install_symlink(dwarf_loclist_from_expr.3 ${md3dir}/dwarf_loclist_from_expr_a.3)
1184 install_symlink(dwarf_loclist_from_expr.3 ${m3dir}/dwarf_loclist_from_expr_b.3)
1185 install_symlink(dwarf_next_cu_header.3 ${m3dir}/dwarf_next_cu_header_b.3)
1186 install_symlink(dwarf_next_cu_header.3 ${m3dir}/dwarf_next_cu_header_c.3)
1187 install_symlink(dwarf_producer_init.3 ${m3dir}/dwarf_producer_init_b.3)
1188 install_symlink(dwarf_seterrarg.3 ${m3dir}/dwarf_seterrhand.3)
1189 install_symlink(dwarf_set_frame_cfa_value.3 ${m3dir}/dwarf_set_frame_rule_initial_value.3)
1190 install_symlink(dwarf_set_frame_cfa_value.3 ${m3dir}/dwarf_set_frame_rule_table_size.3)
1191 install_symlink(dwarf_set_frame_cfa_value.3 ${m3dir}/dwarf_set_frame_same_value.3)
1192 install_symlink(dwarf_set_frame_cfa_value.3 ${m3dir}/dwarf_set_frame_undefined_value.3)
1193
1194
1195 [FILE:6466:files/libelf_CMakeLists.txt]
1196 include_directories(
1197         ${CMAKE_CURRENT_SOURCE_DIR}
1198         ${CMAKE_CURRENT_SOURCE_DIR}/../common
1199 )
1200
1201 if (CMAKE_SYSTEM_NAME MATCHES "Linux")
1202         set(NEF ${CMAKE_SOURCE_DIR}/libelf/native-elf-format.h)
1203 endif()
1204
1205 set(gensrcs
1206         ${CMAKE_SOURCE_DIR}/libelf/libelf_fsize.c
1207         ${CMAKE_SOURCE_DIR}/libelf/libelf_msize.c
1208         ${CMAKE_SOURCE_DIR}/libelf/libelf_convert.c
1209         ${NEF}
1210 )
1211
1212 set(libsrcs
1213         elf.c
1214         elf_begin.c
1215         elf_cntl.c
1216         elf_end.c
1217         elf_errmsg.c
1218         elf_errno.c
1219         elf_data.c
1220         elf_fill.c
1221         elf_flag.c
1222         elf_getarhdr.c
1223         elf_getarsym.c
1224         elf_getbase.c
1225         elf_getident.c
1226         elf_hash.c
1227         elf_kind.c
1228         elf_memory.c
1229         elf_next.c
1230         elf_open.c
1231         elf_rand.c
1232         elf_rawfile.c
1233         elf_phnum.c
1234         elf_shnum.c
1235         elf_shstrndx.c
1236         elf_scn.c
1237         elf_strptr.c
1238         elf_update.c
1239         elf_version.c
1240         gelf_cap.c
1241         gelf_checksum.c
1242         gelf_dyn.c
1243         gelf_ehdr.c
1244         gelf_getclass.c
1245         gelf_fsize.c
1246         gelf_move.c
1247         gelf_phdr.c
1248         gelf_rel.c
1249         gelf_rela.c
1250         gelf_shdr.c
1251         gelf_sym.c
1252         gelf_syminfo.c
1253         gelf_symshndx.c
1254         gelf_xlate.c
1255         libelf_align.c
1256         libelf_allocate.c
1257         libelf_ar.c
1258         libelf_ar_util.c
1259         libelf_checksum.c
1260         libelf_data.c
1261         libelf_ehdr.c
1262         libelf_extended.c
1263         libelf_memory.c
1264         libelf_open.c
1265         libelf_phdr.c
1266         libelf_shdr.c
1267         libelf_xlate.c
1268         ${gensrcs}
1269 )
1270
1271
1272 set(man3
1273         elf.3
1274         elf_begin.3
1275         elf_cntl.3
1276         elf_end.3
1277         elf_errmsg.3
1278         elf_fill.3
1279         elf_flagdata.3
1280         elf_getarhdr.3
1281         elf_getarsym.3
1282         elf_getbase.3
1283         elf_getdata.3
1284         elf_getident.3
1285         elf_getscn.3
1286         elf_getphdrnum.3
1287         elf_getphnum.3
1288         elf_getshdrnum.3
1289         elf_getshnum.3
1290         elf_getshdrstrndx.3
1291         elf_getshstrndx.3
1292         elf_hash.3
1293         elf_kind.3
1294         elf_memory.3
1295         elf_next.3
1296         elf_open.3
1297         elf_rawfile.3
1298         elf_rand.3
1299         elf_strptr.3
1300         elf_update.3
1301         elf_version.3
1302         gelf.3
1303         gelf_checksum.3
1304         gelf_fsize.3
1305         gelf_getcap.3
1306         gelf_getclass.3
1307         gelf_getdyn.3
1308         gelf_getehdr.3
1309         gelf_getmove.3
1310         gelf_getphdr.3
1311         gelf_getrel.3
1312         gelf_getrela.3
1313         gelf_getshdr.3
1314         gelf_getsym.3
1315         gelf_getsyminfo.3
1316         gelf_getsymshndx.3
1317         gelf_newehdr.3
1318         gelf_newphdr.3
1319         gelf_update_ehdr.3
1320         gelf_xlatetof.3
1321 )
1322
1323 add_library(elfobj OBJECT ${libsrcs})
1324 set_property(TARGET elfobj PROPERTY POSITION_INDEPENDENT_CODE 1)
1325
1326 add_library(elf SHARED $<TARGET_OBJECTS:elfobj>)
1327 add_library(elf_pic STATIC $<TARGET_OBJECTS:elfobj>)
1328 add_library(elf_static ${libsrcs})
1329
1330 set_target_properties(elf PROPERTIES VERSION 1.0)
1331 set_target_properties(elf PROPERTIES SOVERSION 1)
1332 set_target_properties(elf PROPERTIES PUBLIC_HEADER libelf.h)
1333
1334 macro(m4toc outfilename)
1335 add_custom_command(
1336    OUTPUT ${CMAKE_SOURCE_DIR}/libelf/${outfilename}.c
1337    COMMAND m4 -DSRCDIR=${CMAKE_SOURCE_DIR}/libelf ${CMAKE_SOURCE_DIR}/libelf/${outfilename}.m4 > ${CMAKE_SOURCE_DIR}/libelf/${outfilename}.c
1338    DEPENDS ${CMAKE_SOURCE_DIR}/libelf/${outfilename}.m4
1339    COMMENT "Generated ${outfilename}.c"
1340 )
1341 set_source_files_properties(${CMAKE_SOURCE_DIR}/lib/${outfilename}.c PROPERTIES GENERATED true)
1342 endmacro(m4toc)
1343
1344 macro(install_symlink filepath sympath)
1345     install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${filepath} ${sympath})")
1346     install(CODE "message(\"-- Created symlink: ${sympath} -> ${filepath}\")")
1347 endmacro(install_symlink)
1348
1349 add_custom_command(
1350     OUTPUT ${CMAKE_SOURCE_DIR}/libelf/native-elf-format.h
1351     COMMAND ${CMAKE_SOURCE_DIR}/common/native-elf-format > ${CMAKE_SOURCE_DIR}/libelf/native-elf-format.h
1352     DEPENDS ${CMAKE_SOURCE_DIR}/common/native-elf-format
1353     COMMENT "Generated native-elf-format.h"
1354 )
1355 set_source_files_properties(${CMAKE_SOURCE_DIR}/lib/native-elf-format.h PROPERTIES GENERATED true)
1356
1357 m4toc(libelf_fsize)
1358 m4toc(libelf_msize)
1359 m4toc(libelf_convert)
1360
1361 install(TARGETS elf
1362     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
1363     PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
1364
1365 install(TARGETS elf_pic
1366     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
1367     PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
1368
1369 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libelf_static.a
1370         RENAME libelf.a
1371         DESTINATION lib)
1372
1373 install(FILES gelf.h ../common/elfdefinitions.h DESTINATION include)
1374 install(FILES ${man3} DESTINATION share/man/man3)
1375
1376 # man page links
1377 set(m3dir ${RAVDEST}${CMAKE_INSTALL_MANDIR}/man3)
1378 install_symlink(gelf_checksum.3 ${m3dir}/elf32_checksum.3)
1379 install_symlink(gelf_checksum.3 ${m3dir}/elf64_checksum.3)
1380 install_symlink(gelf_fsize.3    ${m3dir}/elf32_fsize.3)
1381 install_symlink(gelf_fsize.3    ${m3dir}/elf64_fsize.3)
1382 install_symlink(gelf_getehdr.3  ${m3dir}/elf32_getehdr.3)
1383 install_symlink(gelf_getehdr.3  ${m3dir}/elf64_getehdr.3)
1384 install_symlink(gelf_getphdr.3  ${m3dir}/elf32_getphdr.3)
1385 install_symlink(gelf_getphdr.3  ${m3dir}/elf64_getphdr.3)
1386 install_symlink(gelf_getshdr.3  ${m3dir}/elf32_getshdr.3)
1387 install_symlink(gelf_getshdr.3  ${m3dir}/elf64_getshdr.3)
1388 install_symlink(gelf_newehdr.3  ${m3dir}/elf32_newehdr.3)
1389 install_symlink(gelf_newehdr.3  ${m3dir}/elf64_newehdr.3)
1390 install_symlink(gelf_newphdr.3  ${m3dir}/elf32_newphdr.3)
1391 install_symlink(gelf_newphdr.3  ${m3dir}/elf64_newphdr.3)
1392 install_symlink(gelf_xlatetof.3 ${m3dir}/elf32_xlatetof.3)
1393 install_symlink(gelf_xlatetof.3 ${m3dir}/elf64_xlatetof.3)
1394 install_symlink(gelf_xlatetof.3 ${m3dir}/elf32_xlatetom.3)
1395 install_symlink(gelf_xlatetof.3 ${m3dir}/elf64_xlatetom.3)
1396 install_symlink(elf_errmsg.3 ${m3dir}/elf_errno.3)
1397 install_symlink(elf_flagdata.3 ${m3dir}/elf_flagarhdr.3)
1398 install_symlink(elf_flagdata.3 ${m3dir}/elf_flagehdr.3)
1399 install_symlink(elf_flagdata.3 ${m3dir}/elf_flagelf.3)
1400 install_symlink(elf_flagdata.3 ${m3dir}/elf_flagphdr.3)
1401 install_symlink(elf_flagdata.3 ${m3dir}/elf_flagscn.3)
1402 install_symlink(elf_flagdata.3 ${m3dir}/elf_flagshdr.3)
1403 install_symlink(elf_getdata.3 ${m3dir}/elf_newdata.3)
1404 install_symlink(elf_getdata.3 ${m3dir}/elf_rawdata.3)
1405 install_symlink(elf_getscn.3 ${m3dir}/elf_ndxscn.3)
1406 install_symlink(elf_getscn.3 ${m3dir}/elf_newscn.3)
1407 install_symlink(elf_getscn.3 ${m3dir}/elf_nextscn.3)
1408 install_symlink(elf_getshstrndx.3 ${m3dir}/elf_setshstrndx.3)
1409 install_symlink(elf_open.3 ${m3dir}/elf_openmemory.3)
1410 install_symlink(gelf_getcap.3 ${m3dir}/gelf_update_cap.3)
1411 install_symlink(gelf_getdyn.3 ${m3dir}/gelf_update_dyn.3)
1412 install_symlink(gelf_getmove.3 ${m3dir}/gelf_update_move.3)
1413 install_symlink(gelf_getrel.3 ${m3dir}/gelf_update_rel.3)
1414 install_symlink(gelf_getrela.3 ${m3dir}/gelf_update_rela.3)
1415 install_symlink(gelf_getsym.3 ${m3dir}/gelf_update_sym.3)
1416 install_symlink(gelf_getsyminfo.3 ${m3dir}/gelf_update_syminfo.3)
1417 install_symlink(gelf_getsymshndx.3 ${m3dir}/gelf_update_symshndx.3)
1418 install_symlink(gelf_update_ehdr.3 ${m3dir}/gelf_update_phdr.3)
1419 install_symlink(gelf_update_ehdr.3 ${m3dir}/gelf_update_shdr.3)
1420 install_symlink(gelf_xlatetof.3 ${m3dir}/gelf_xlatetom.3)
1421
1422
1423 [FILE:2440:files/libelftc_CMakeLists.txt]
1424 include_directories(
1425         ${CMAKE_CURRENT_SOURCE_DIR}
1426         ${CMAKE_CURRENT_SOURCE_DIR}/../common
1427         ${CMAKE_CURRENT_SOURCE_DIR}/../libelf
1428 )
1429
1430 set(libsrcs
1431         elftc_bfdtarget.c
1432         elftc_copyfile.c
1433         elftc_demangle.c
1434         elftc_set_timestamps.c
1435         elftc_string_table.c
1436         elftc_version.c
1437         libelftc_bfdtarget.c
1438         libelftc_dem_arm.c
1439         libelftc_dem_gnu2.c
1440         libelftc_dem_gnu3.c
1441         libelftc_hash.c
1442         libelftc_vstr.c
1443 )
1444
1445
1446 set(man3
1447         elftc.3
1448         elftc_bfd_find_target.3
1449         elftc_copyfile.3
1450         elftc_demangle.3
1451         elftc_set_timestamps.3
1452         elftc_string_table_create.3
1453         elftc_version.3
1454 )
1455
1456 add_library(elftcobj OBJECT ${libsrcs})
1457 set_property(TARGET elftcobj PROPERTY POSITION_INDEPENDENT_CODE 1)
1458
1459 add_library(elftc SHARED $<TARGET_OBJECTS:elftcobj>)
1460 add_library(elftc_pic STATIC $<TARGET_OBJECTS:elftcobj>)
1461 add_library(elftc_static ${libsrcs})
1462
1463 set_target_properties(elftc PROPERTIES VERSION 1.0)
1464 set_target_properties(elftc PROPERTIES SOVERSION 1)
1465 set_target_properties(elftc PROPERTIES PUBLIC_HEADER libelftc.h)
1466 target_link_libraries(elftc elf)
1467
1468 macro(install_symlink filepath sympath)
1469     install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${filepath} ${sympath})")
1470     install(CODE "message(\"-- Created symlink: ${sympath} -> ${filepath}\")")
1471 endmacro(install_symlink)
1472
1473 install(TARGETS elftc
1474     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
1475     PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
1476
1477 install(TARGETS elftc_pic
1478     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
1479     PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
1480
1481 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libelftc_static.a
1482         RENAME libelftc.a
1483         DESTINATION lib)
1484
1485 # install(FILES gelf.h ../common/elfdefinitions.h DESTINATION include)
1486 install(FILES ${man3} DESTINATION share/man/man3)
1487
1488 # man page links
1489 set(m3dir ${RAVDEST}${CMAKE_INSTALL_MANDIR}/man3)
1490 install_symlink(elftc_bfd_find_target.3 ${m3dir}/elftc_bfd_target_byteorder.3)
1491 install_symlink(elftc_bfd_find_target.3 ${m3dir}/elftc_bfd_target_class.3)
1492 install_symlink(elftc_bfd_find_target.3 ${m3dir}/elftc_bfd_target_flavor.3)
1493 install_symlink(elftc_string_table_create.3 ${m3dir}/elftc_string_table_from_section.3)
1494 install_symlink(elftc_string_table_create.3 ${m3dir}/elftc_string_table_destroy.3)
1495 install_symlink(elftc_string_table_create.3 ${m3dir}/elftc_string_table_image.3)
1496 install_symlink(elftc_string_table_create.3 ${m3dir}/elftc_string_table_insert.3)
1497 install_symlink(elftc_string_table_create.3 ${m3dir}/elftc_string_table_lookup.3)
1498
1499
1500 [FILE:1111:files/libpe_CMakeLists.txt]
1501 include_directories(
1502         ${CMAKE_CURRENT_SOURCE_DIR}
1503         ${CMAKE_CURRENT_SOURCE_DIR}/../common
1504 )
1505
1506 set(libsrcs
1507         libpe_buffer.c
1508         libpe_coff.c
1509         libpe_dos.c
1510         libpe_init.c
1511         libpe_rich.c
1512         libpe_section.c
1513         libpe_utils.c
1514         pe_buffer.c
1515         pe_cntl.c
1516         pe_coff.c
1517         pe_dos.c
1518         pe_flag.c
1519         pe_init.c
1520         pe_rich.c
1521         pe_section.c
1522         pe_symtab.c
1523         pe_update.c
1524 )
1525
1526 add_library(peobj OBJECT ${libsrcs})
1527 set_property(TARGET peobj PROPERTY POSITION_INDEPENDENT_CODE 1)
1528
1529 add_library(pe SHARED $<TARGET_OBJECTS:peobj>)
1530 add_library(pe_pic STATIC $<TARGET_OBJECTS:peobj>)
1531 add_library(pe_static ${libsrcs})
1532
1533 set_target_properties(pe PROPERTIES VERSION 1.0)
1534 set_target_properties(pe PROPERTIES SOVERSION 1)
1535 set_target_properties(pe PROPERTIES PUBLIC_HEADER libpe.h)
1536
1537 install(TARGETS pe
1538     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
1539     PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
1540
1541 install(TARGETS pe_pic
1542     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
1543     PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
1544
1545 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpe_static.a
1546         RENAME libpe.a
1547         DESTINATION lib)
1548
1549 install(FILES pe.h DESTINATION include)
1550
1551
1552 [FILE:403:files/nm_CMakeLists.txt]
1553 set(prog nm)
1554
1555 include_directories(
1556         ${CMAKE_CURRENT_SOURCE_DIR}
1557         ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf
1558         ${CMAKE_CURRENT_SOURCE_DIR}/../libelf
1559         ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc
1560         ${CMAKE_CURRENT_SOURCE_DIR}/../common
1561 )
1562
1563 add_executable(${prog} ${prog}.c)
1564
1565 target_link_libraries(${prog} elf elftc dwarf)
1566
1567 install(TARGETS ${prog} DESTINATION bin)
1568 install(FILES ${prog}.1 DESTINATION share/man/man1)
1569
1570
1571 [FILE:408:files/readelf_CMakeLists.txt]
1572 set(prog readelf)
1573
1574 include_directories(
1575         ${CMAKE_CURRENT_SOURCE_DIR}
1576         ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf
1577         ${CMAKE_CURRENT_SOURCE_DIR}/../libelf
1578         ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc
1579         ${CMAKE_CURRENT_SOURCE_DIR}/../common
1580 )
1581
1582 add_executable(${prog} ${prog}.c)
1583
1584 target_link_libraries(${prog} elf elftc dwarf)
1585
1586 install(TARGETS ${prog} DESTINATION bin)
1587 install(FILES ${prog}.1 DESTINATION share/man/man1)
1588
1589
1590 [FILE:399:files/size_CMakeLists.txt]
1591 set(prog size)
1592
1593 include_directories(
1594         ${CMAKE_CURRENT_SOURCE_DIR}
1595         ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf
1596         ${CMAKE_CURRENT_SOURCE_DIR}/../libelf
1597         ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc
1598         ${CMAKE_CURRENT_SOURCE_DIR}/../common
1599 )
1600
1601 add_executable(${prog} ${prog}.c)
1602
1603 target_link_libraries(${prog} elf elftc)
1604
1605 install(TARGETS ${prog} DESTINATION bin)
1606 install(FILES ${prog}.1 DESTINATION share/man/man1)
1607
1608
1609 [FILE:402:files/strings_CMakeLists.txt]
1610 set(prog strings)
1611
1612 include_directories(
1613         ${CMAKE_CURRENT_SOURCE_DIR}
1614         ${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf
1615         ${CMAKE_CURRENT_SOURCE_DIR}/../libelf
1616         ${CMAKE_CURRENT_SOURCE_DIR}/../libelftc
1617         ${CMAKE_CURRENT_SOURCE_DIR}/../common
1618 )
1619
1620 add_executable(${prog} ${prog}.c)
1621
1622 target_link_libraries(${prog} elf elftc)
1623
1624 install(TARGETS ${prog} DESTINATION bin)
1625 install(FILES ${prog}.1 DESTINATION share/man/man1)
1626
1627
1628 [FILE:542:files/sun_err.h]
1629 #ifndef LIBBSD_ERR_H
1630 #define LIBBSD_ERR_H
1631
1632 #include <stdio.h>
1633 #include <errno.h>
1634 #include <string.h>
1635
1636 #define err(exitcode, format, args...) \
1637         errx(exitcode, format ": %s", ## args, strerror(errno))
1638 #define errx(exitcode, format, args...) \
1639         { warnx(format, ## args); exit(exitcode); }
1640 #define warn(format, args...) \
1641         warnx(format ": %s", ## args, strerror(errno))
1642 #define warnx(format, args...) \
1643         fprintf(stderr, format "\n", ## args)
1644
1645 // more sun fixes
1646
1647 #include <limits.h>
1648 #define u_int64_t       uint64_t
1649
1650 #endif
1651
1652
1653 [FILE:458:files/top_CMakeLists.txt]
1654 cmake_minimum_required(VERSION 3.14.1)
1655 project(elftoolchain)
1656
1657 include(GNUInstallDirs)
1658
1659 SET(CMAKE_SKIP_BUILD_RPATH  TRUE)
1660
1661 add_subdirectory(libelf)
1662 add_subdirectory(libdwarf)
1663 add_subdirectory(libpe)
1664 add_subdirectory(libelftc)
1665 add_subdirectory(addr2line)
1666 add_subdirectory(brandelf)
1667 add_subdirectory(cxxfilt)
1668 add_subdirectory(elfdump)
1669 add_subdirectory(findtextrel)
1670 add_subdirectory(nm)
1671 add_subdirectory(readelf)
1672 add_subdirectory(size)
1673 add_subdirectory(strings)
1674