summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:22 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:22 -0800
commit7a80622f69812ca3262d2027c07a4ed0c0242945 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parentee6008996aa701ad2a50d5d6b1529c9e2c2724c1 (diff)
downloadandroid_external_elfutils-7a80622f69812ca3262d2027c07a4ed0c0242945.tar.gz
android_external_elfutils-7a80622f69812ca3262d2027c07a4ed0c0242945.tar.bz2
android_external_elfutils-7a80622f69812ca3262d2027c07a4ed0c0242945.zip
auto import from //depot/cupcake/@135843
-rw-r--r--ABOUT-NLS588
-rw-r--r--AUTHORS2
-rwxr-xr-xAndroid.mk230
-rw-r--r--COPYING162
-rw-r--r--COPYING.GPL340
-rw-r--r--ChangeLog79
-rw-r--r--GPG-KEY33
-rw-r--r--INSTALL182
-rw-r--r--MODULE_LICENSE_OSL10
-rw-r--r--Makefile.am35
-rw-r--r--Makefile.in620
-rw-r--r--NEWS691
-rw-r--r--NOTES73
-rw-r--r--README6
-rw-r--r--THANKS5
-rw-r--r--TODO164
-rw-r--r--aclocal.m41059
-rw-r--r--autom4te.cache/output.07272
-rw-r--r--autom4te.cache/requests116
-rw-r--r--autom4te.cache/traces.0356
-rw-r--r--config-compat-cygwin.h8
-rw-r--r--config-compat-darwin.h83
-rw-r--r--config-compat-linux.h8
-rw-r--r--config.h146
-rw-r--r--config.h.in145
-rw-r--r--config.log556
-rwxr-xr-xconfig.status1314
-rw-r--r--config/ChangeLog15
-rw-r--r--config/Makefile312
-rw-r--r--config/Makefile.am19
-rw-r--r--config/Makefile.in312
-rw-r--r--config/config.guess1363
-rw-r--r--config/config.rpath513
-rw-r--r--config/config.sub1470
-rw-r--r--config/depcomp436
-rw-r--r--config/elfutils.spec.in331
-rw-r--r--config/install-sh251
-rw-r--r--config/missing336
-rw-r--r--config/mkinstalldirs101
-rwxr-xr-xconfigure7272
-rw-r--r--configure.ac253
-rw-r--r--doc/ChangeLog3
-rw-r--r--doc/Makefile319
-rw-r--r--doc/Makefile.am29
-rw-r--r--doc/Makefile.in319
-rw-r--r--doc/elfutils.sgml412
-rw-r--r--elfutils.spec331
-rw-r--r--lib/ChangeLog14
-rw-r--r--lib/Makefile424
-rw-r--r--lib/Makefile.am37
-rw-r--r--lib/Makefile.in424
-rw-r--r--lib/crc32.c86
-rw-r--r--lib/dynamicsizehash.c316
-rw-r--r--lib/dynamicsizehash.h107
-rw-r--r--lib/error.h3
-rw-r--r--lib/fixedsizehash.h251
-rw-r--r--lib/libeu.abin36698 -> 0 bytes
-rw-r--r--lib/list.h85
-rw-r--r--lib/next_prime.c54
-rw-r--r--lib/system.h40
-rw-r--r--lib/xmalloc.c68
-rw-r--r--lib/xstrdup.c27
-rw-r--r--lib/xstrndup.c31
-rw-r--r--libasm/ChangeLog23
-rw-r--r--libasm/Makefile593
-rw-r--r--libasm/Makefile.am92
-rw-r--r--libasm/Makefile.in593
-rw-r--r--libasm/asm_abort.c45
-rw-r--r--libasm/asm_addint16.c17
-rw-r--r--libasm/asm_addint32.c17
-rw-r--r--libasm/asm_addint64.c17
-rw-r--r--libasm/asm_addint8.c105
-rw-r--r--libasm/asm_addsleb128.c84
-rw-r--r--libasm/asm_addstrz.c113
-rw-r--r--libasm/asm_adduint16.c17
-rw-r--r--libasm/asm_adduint32.c17
-rw-r--r--libasm/asm_adduint64.c17
-rw-r--r--libasm/asm_adduint8.c41
-rw-r--r--libasm/asm_adduleb128.c80
-rw-r--r--libasm/asm_align.c147
-rw-r--r--libasm/asm_begin.c151
-rw-r--r--libasm/asm_end.c597
-rw-r--r--libasm/asm_error.c183
-rw-r--r--libasm/asm_fill.c62
-rw-r--r--libasm/asm_getelf.c29
-rw-r--r--libasm/asm_newabssym.c121
-rw-r--r--libasm/asm_newcomsym.c102
-rw-r--r--libasm/asm_newscn.c202
-rw-r--r--libasm/asm_newscn_ingrp.c66
-rw-r--r--libasm/asm_newscngrp.c90
-rw-r--r--libasm/asm_newsubscn.c84
-rw-r--r--libasm/asm_newsym.c116
-rw-r--r--libasm/asm_scngrp_newsignature.c33
-rw-r--r--libasm/libasm.h155
-rw-r--r--libasm/libasm.map33
-rw-r--r--libasm/libasmP.h268
-rw-r--r--libasm/symbolhash.c39
-rw-r--r--libasm/symbolhash.h25
-rw-r--r--libcpu/ChangeLog3
-rw-r--r--libcpu/Makefile408
-rw-r--r--libcpu/Makefile.am21
-rw-r--r--libcpu/Makefile.in408
-rw-r--r--libcpu/i386_dis.c1
-rw-r--r--libdw/ChangeLog229
-rw-r--r--libdw/Makefile681
-rw-r--r--libdw/Makefile.am100
-rw-r--r--libdw/Makefile.in681
-rw-r--r--libdw/dwarf.h554
-rw-r--r--libdw/dwarf_abbrev_hash.c29
-rw-r--r--libdw/dwarf_abbrev_hash.h24
-rw-r--r--libdw/dwarf_abbrevhaschildren.c29
-rw-r--r--libdw/dwarf_arrayorder.c32
-rw-r--r--libdw/dwarf_attr.c39
-rw-r--r--libdw/dwarf_begin.c85
-rw-r--r--libdw/dwarf_begin_elf.c251
-rw-r--r--libdw/dwarf_bitoffset.c32
-rw-r--r--libdw/dwarf_bitsize.c32
-rw-r--r--libdw/dwarf_bytesize.c32
-rw-r--r--libdw/dwarf_child.c158
-rw-r--r--libdw/dwarf_cuoffset.c32
-rw-r--r--libdw/dwarf_diename.c30
-rw-r--r--libdw/dwarf_dieoffset.c30
-rw-r--r--libdw/dwarf_end.c75
-rw-r--r--libdw/dwarf_error.c177
-rw-r--r--libdw/dwarf_filesrc.c36
-rw-r--r--libdw/dwarf_formaddr.c43
-rw-r--r--libdw/dwarf_formblock.c73
-rw-r--r--libdw/dwarf_formflag.c40
-rw-r--r--libdw/dwarf_formref.c68
-rw-r--r--libdw/dwarf_formsdata.c70
-rw-r--r--libdw/dwarf_formstring.c57
-rw-r--r--libdw/dwarf_formudata.c70
-rw-r--r--libdw/dwarf_getabbrev.c127
-rw-r--r--libdw/dwarf_getabbrevattr.c64
-rw-r--r--libdw/dwarf_getabbrevcode.c29
-rw-r--r--libdw/dwarf_getabbrevtag.c29
-rw-r--r--libdw/dwarf_getarange_addr.c37
-rw-r--r--libdw/dwarf_getarangeinfo.c37
-rw-r--r--libdw/dwarf_getaranges.c184
-rw-r--r--libdw/dwarf_getattrcnt.c33
-rw-r--r--libdw/dwarf_getattrs.c94
-rw-r--r--libdw/dwarf_getelf.c33
-rw-r--r--libdw/dwarf_getloclist.c296
-rw-r--r--libdw/dwarf_getmacros.c114
-rw-r--r--libdw/dwarf_getpubnames.c205
-rw-r--r--libdw/dwarf_getsrc_die.c38
-rw-r--r--libdw/dwarf_getsrcfiles.c58
-rw-r--r--libdw/dwarf_getsrclines.c613
-rw-r--r--libdw/dwarf_getstring.c51
-rw-r--r--libdw/dwarf_hasattr.c36
-rw-r--r--libdw/dwarf_haschildren.c48
-rw-r--r--libdw/dwarf_hasform.c32
-rw-r--r--libdw/dwarf_highpc.c32
-rw-r--r--libdw/dwarf_lineaddr.c31
-rw-r--r--libdw/dwarf_linebeginstatement.c31
-rw-r--r--libdw/dwarf_lineblock.c31
-rw-r--r--libdw/dwarf_linecol.c31
-rw-r--r--libdw/dwarf_lineendsequence.c31
-rw-r--r--libdw/dwarf_lineepiloguebegin.c31
-rw-r--r--libdw/dwarf_lineno.c31
-rw-r--r--libdw/dwarf_lineprologueend.c31
-rw-r--r--libdw/dwarf_linesrc.c41
-rw-r--r--libdw/dwarf_lowpc.c32
-rw-r--r--libdw/dwarf_nextcu.c131
-rw-r--r--libdw/dwarf_offabbrev.c30
-rw-r--r--libdw/dwarf_offdie.c54
-rw-r--r--libdw/dwarf_onearange.c35
-rw-r--r--libdw/dwarf_onesrcline.c35
-rw-r--r--libdw/dwarf_siblingof.c104
-rw-r--r--libdw/dwarf_srclang.c32
-rw-r--r--libdw/dwarf_tag.c81
-rw-r--r--libdw/dwarf_whatattr.c28
-rw-r--r--libdw/dwarf_whatform.c28
-rw-r--r--libdw/libdw.h453
-rw-r--r--libdw/libdw.map72
-rw-r--r--libdw/libdwP.h315
-rw-r--r--libdw/libdw_alloc.c59
-rw-r--r--libdw/libdw_findcu.c109
-rw-r--r--libdw/libdw_form.c112
-rw-r--r--libdw/memory-access.h238
-rw-r--r--libebl/ChangeLog84
-rw-r--r--libebl/Makefile787
-rw-r--r--libebl/Makefile.am204
-rw-r--r--libebl/Makefile.in787
-rw-r--r--libebl/alpha_destr.c27
-rw-r--r--libebl/alpha_init.c40
-rw-r--r--libebl/alpha_symbol.c93
-rw-r--r--libebl/arm_destr.c27
-rw-r--r--libebl/arm_init.c40
-rw-r--r--libebl/arm_symbol.c113
-rw-r--r--libebl/eblbackendname.c28
-rw-r--r--libebl/eblclosebackend.c39
-rw-r--r--libebl/eblcorenote.c151
-rw-r--r--libebl/eblcorenotetypename.c68
-rw-r--r--libebl/ebldebugscnp.c29
-rw-r--r--libebl/ebldynamictagcheck.c41
-rw-r--r--libebl/ebldynamictagname.c97
-rw-r--r--libebl/eblgotpcreloccheck.c29
-rw-r--r--libebl/eblgstrtab.c355
-rw-r--r--libebl/eblmachineflagcheck.c28
-rw-r--r--libebl/eblmachineflagname.c76
-rw-r--r--libebl/eblobjecttypename.c48
-rw-r--r--libebl/eblobjnote.c87
-rw-r--r--libebl/eblobjnotetypename.c54
-rw-r--r--libebl/eblopenbackend.c491
-rw-r--r--libebl/eblosabiname.c69
-rw-r--r--libebl/eblreloctypecheck.c28
-rw-r--r--libebl/eblreloctypename.c38
-rw-r--r--libebl/eblrelocvaliduse.c28
-rw-r--r--libebl/eblsectionname.c81
-rw-r--r--libebl/eblsectiontypename.c103
-rw-r--r--libebl/eblsegmenttypename.c75
-rw-r--r--libebl/eblshflagscombine.c29
-rw-r--r--libebl/eblstrtab.c353
-rw-r--r--libebl/eblsymbolbindingname.c57
-rw-r--r--libebl/eblsymboltypename.c63
-rw-r--r--libebl/eblwstrtab.c344
-rw-r--r--libebl/i386_corenote.c149
-rw-r--r--libebl/i386_destr.c27
-rw-r--r--libebl/i386_init.c43
-rw-r--r--libebl/i386_symbol.c127
-rw-r--r--libebl/ia64_destr.c27
-rw-r--r--libebl/ia64_init.c42
-rw-r--r--libebl/ia64_symbol.c177
-rw-r--r--libebl/libebl.h274
-rw-r--r--libebl/libeblP.h29
-rw-r--r--libebl/libebl_alpha.h33
-rw-r--r--libebl/libebl_alpha.map11
-rw-r--r--libebl/libebl_arm.h33
-rw-r--r--libebl/libebl_arm.map11
-rw-r--r--libebl/libebl_i386.h43
-rw-r--r--libebl/libebl_i386.map12
-rw-r--r--libebl/libebl_ia64.h39
-rw-r--r--libebl/libebl_ia64.map11
-rw-r--r--libebl/libebl_mips.h42
-rw-r--r--libebl/libebl_mips.map14
-rw-r--r--libebl/libebl_ppc.h40
-rw-r--r--libebl/libebl_ppc.map11
-rw-r--r--libebl/libebl_ppc64.h43
-rw-r--r--libebl/libebl_ppc64.map11
-rw-r--r--libebl/libebl_sh.h30
-rw-r--r--libebl/libebl_sh.map10
-rw-r--r--libebl/libebl_sparc.h37
-rw-r--r--libebl/libebl_sparc.map11
-rw-r--r--libebl/libebl_x86_64.h40
-rw-r--r--libebl/libebl_x86_64.map11
-rw-r--r--libebl/mips_destr.c27
-rw-r--r--libebl/mips_init.c47
-rw-r--r--libebl/mips_symbol.c266
-rw-r--r--libebl/ppc64_destr.c27
-rw-r--r--libebl/ppc64_init.c42
-rw-r--r--libebl/ppc64_symbol.c206
-rw-r--r--libebl/ppc_destr.c27
-rw-r--r--libebl/ppc_init.c41
-rw-r--r--libebl/ppc_symbol.c149
-rw-r--r--libebl/sh_destr.c27
-rw-r--r--libebl/sh_init.c39
-rw-r--r--libebl/sh_symbol.c91
-rw-r--r--libebl/sparc_destr.c26
-rw-r--r--libebl/sparc_init.c45
-rw-r--r--libebl/sparc_symbol.c141
-rw-r--r--libebl/x86_64_destr.c27
-rw-r--r--libebl/x86_64_init.c42
-rw-r--r--libebl/x86_64_symbol.c107
-rw-r--r--libelf-po/ChangeLog11
-rw-r--r--libelf-po/Makefile369
-rw-r--r--libelf-po/Makefile.in301
-rw-r--r--libelf-po/Makefile.in.in301
-rw-r--r--libelf-po/Makevars25
-rw-r--r--libelf-po/POTFILES1
-rw-r--r--libelf-po/POTFILES.in5
-rw-r--r--libelf-po/Rules-quot42
-rw-r--r--libelf-po/boldquot.sed10
-rw-r--r--libelf-po/insert-header.sin23
-rw-r--r--libelf-po/libelf.pot177
-rw-r--r--libelf-po/quot.sed6
-rw-r--r--libelf/ChangeLog62
-rw-r--r--libelf/Makefile758
-rw-r--r--libelf/Makefile.am127
-rw-r--r--libelf/Makefile.in758
-rw-r--r--libelf/abstract.h283
-rw-r--r--libelf/common.h146
-rw-r--r--libelf/dl-hash.h70
-rw-r--r--libelf/elf-knowledge.h105
-rw-r--r--libelf/elf.h2457
-rw-r--r--libelf/elf32_checksum.c141
-rw-r--r--libelf/elf32_fsize.c59
-rw-r--r--libelf/elf32_getehdr.c65
-rw-r--r--libelf/elf32_getphdr.c202
-rw-r--r--libelf/elf32_getshdr.c185
-rw-r--r--libelf/elf32_newehdr.c80
-rw-r--r--libelf/elf32_newphdr.c138
-rw-r--r--libelf/elf32_updatefile.c623
-rw-r--r--libelf/elf32_updatenull.c370
-rw-r--r--libelf/elf32_xlatetof.c111
-rw-r--r--libelf/elf32_xlatetom.c112
-rw-r--r--libelf/elf64_checksum.c19
-rw-r--r--libelf/elf64_fsize.c19
-rw-r--r--libelf/elf64_getehdr.c19
-rw-r--r--libelf/elf64_getphdr.c19
-rw-r--r--libelf/elf64_getshdr.c19
-rw-r--r--libelf/elf64_newehdr.c19
-rw-r--r--libelf/elf64_newphdr.c19
-rw-r--r--libelf/elf64_updatefile.c18
-rw-r--r--libelf/elf64_updatenull.c18
-rw-r--r--libelf/elf64_xlatetof.c19
-rw-r--r--libelf/elf64_xlatetom.c19
-rw-r--r--libelf/elf_begin.c1070
-rw-r--r--libelf/elf_clone.c69
-rw-r--r--libelf/elf_cntl.c71
-rw-r--r--libelf/elf_end.c201
-rw-r--r--libelf/elf_error.c366
-rw-r--r--libelf/elf_fill.c33
-rw-r--r--libelf/elf_flagdata.c59
-rw-r--r--libelf/elf_flagehdr.c56
-rw-r--r--libelf/elf_flagelf.c58
-rw-r--r--libelf/elf_flagphdr.c56
-rw-r--r--libelf/elf_flagscn.c56
-rw-r--r--libelf/elf_flagshdr.c56
-rw-r--r--libelf/elf_getarhdr.c53
-rw-r--r--libelf/elf_getarsym.c251
-rw-r--r--libelf/elf_getbase.c33
-rw-r--r--libelf/elf_getdata.c454
-rw-r--r--libelf/elf_getident.c51
-rw-r--r--libelf/elf_getscn.c77
-rw-r--r--libelf/elf_getshnum.c64
-rw-r--r--libelf/elf_getshstrndx.c168
-rw-r--r--libelf/elf_hash.c33
-rw-r--r--libelf/elf_kind.c33
-rw-r--r--libelf/elf_memory.c40
-rw-r--r--libelf/elf_ndxscn.c36
-rw-r--r--libelf/elf_newdata.c97
-rw-r--r--libelf/elf_newscn.c143
-rw-r--r--libelf/elf_next.c53
-rw-r--r--libelf/elf_nextscn.c77
-rw-r--r--libelf/elf_rand.c49
-rw-r--r--libelf/elf_rawdata.c66
-rw-r--r--libelf/elf_rawfile.c51
-rw-r--r--libelf/elf_readall.c116
-rw-r--r--libelf/elf_strptr.c122
-rw-r--r--libelf/elf_update.c173
-rw-r--r--libelf/elf_version.c58
-rw-r--r--libelf/exttypes.h86
-rw-r--r--libelf/gelf.h304
-rw-r--r--libelf/gelf_checksum.c37
-rw-r--r--libelf/gelf_freechunk.c45
-rw-r--r--libelf/gelf_fsize.c96
-rw-r--r--libelf/gelf_getclass.c33
-rw-r--r--libelf/gelf_getdyn.c99
-rw-r--r--libelf/gelf_getehdr.c88
-rw-r--r--libelf/gelf_getlib.c68
-rw-r--r--libelf/gelf_getmove.c70
-rw-r--r--libelf/gelf_getphdr.c117
-rw-r--r--libelf/gelf_getrel.c96
-rw-r--r--libelf/gelf_getrela.c97
-rw-r--r--libelf/gelf_getshdr.c91
-rw-r--r--libelf/gelf_getsym.c105
-rw-r--r--libelf/gelf_getsyminfo.c68
-rw-r--r--libelf/gelf_getsymshndx.c128
-rw-r--r--libelf/gelf_getverdaux.c70
-rw-r--r--libelf/gelf_getverdef.c69
-rw-r--r--libelf/gelf_getvernaux.c72
-rw-r--r--libelf/gelf_getverneed.c72
-rw-r--r--libelf/gelf_getversym.c77
-rw-r--r--libelf/gelf_newehdr.c36
-rw-r--r--libelf/gelf_newphdr.c36
-rw-r--r--libelf/gelf_rawchunk.c71
-rw-r--r--libelf/gelf_update_dyn.c104
-rw-r--r--libelf/gelf_update_ehdr.c103
-rw-r--r--libelf/gelf_update_lib.c72
-rw-r--r--libelf/gelf_update_move.c69
-rw-r--r--libelf/gelf_update_phdr.c120
-rw-r--r--libelf/gelf_update_rel.c102
-rw-r--r--libelf/gelf_update_rela.c105
-rw-r--r--libelf/gelf_update_shdr.c94
-rw-r--r--libelf/gelf_update_sym.c113
-rw-r--r--libelf/gelf_update_syminfo.c80
-rw-r--r--libelf/gelf_update_symshndx.c143
-rw-r--r--libelf/gelf_update_verdaux.c69
-rw-r--r--libelf/gelf_update_verdef.c69
-rw-r--r--libelf/gelf_update_vernaux.c69
-rw-r--r--libelf/gelf_update_verneed.c69
-rw-r--r--libelf/gelf_update_versym.c69
-rw-r--r--libelf/gelf_xlate.c180
-rw-r--r--libelf/gelf_xlate.h43
-rw-r--r--libelf/gelf_xlatetof.c41
-rw-r--r--libelf/gelf_xlatetom.c41
-rw-r--r--libelf/libelf.h343
-rw-r--r--libelf/libelf.map106
-rw-r--r--libelf/libelfP.h532
-rw-r--r--libelf/libelf_crc32.c23
-rw-r--r--libelf/libelf_next_prime.c21
-rw-r--r--libelf/nlist.c224
-rw-r--r--libelf/nlist.h44
-rw-r--r--libelf/version_xlate.h208
-rw-r--r--m4/ChangeLog27
-rw-r--r--m4/Makefile314
-rw-r--r--m4/Makefile.am24
-rw-r--r--m4/Makefile.in314
-rw-r--r--m4/codeset.m423
-rw-r--r--m4/gettext.m4587
-rw-r--r--m4/glibc21.m432
-rw-r--r--m4/iconv.m4103
-rw-r--r--m4/intdiv0.m472
-rw-r--r--m4/inttypes-pri.m432
-rw-r--r--m4/inttypes.m427
-rw-r--r--m4/inttypes_h.m428
-rw-r--r--m4/isc-posix.m426
-rw-r--r--m4/lcmessage.m432
-rw-r--r--m4/lib-ld.m497
-rw-r--r--m4/lib-link.m4521
-rw-r--r--m4/lib-prefix.m4148
-rw-r--r--m4/progtest.m459
-rw-r--r--m4/stdint_h.m428
-rw-r--r--m4/uintmax_t.m429
-rw-r--r--m4/ulonglong.m423
-rw-r--r--po/ChangeLog7
-rw-r--r--po/Makefile400
-rw-r--r--po/Makefile.in301
-rw-r--r--po/Makefile.in.in301
-rw-r--r--po/Makevars25
-rw-r--r--po/POTFILES32
-rw-r--r--po/POTFILES.in42
-rw-r--r--po/Rules-quot42
-rw-r--r--po/boldquot.sed10
-rw-r--r--po/elfutils.pot3071
-rw-r--r--po/insert-header.sin23
-rw-r--r--po/quot.sed6
-rw-r--r--splint.rc1
-rw-r--r--src/ChangeLog188
-rw-r--r--src/Makefile638
-rw-r--r--src/Makefile.am130
-rw-r--r--src/Makefile.in638
-rw-r--r--src/elf32-i386.script215
-rw-r--r--src/elflint.c2578
-rw-r--r--src/i386_ld.c891
-rw-r--r--src/ld.c1520
-rw-r--r--src/ld.h1073
-rw-r--r--src/ldgeneric.c6376
-rw-r--r--src/ldlex.c2663
-rw-r--r--src/ldlex.l343
-rw-r--r--src/ldscript.c2220
-rw-r--r--src/ldscript.h116
-rw-r--r--src/ldscript.y764
-rw-r--r--src/libld_elf_i386.map7
-rw-r--r--src/nm.c1302
-rw-r--r--src/none_ld.c1
-rw-r--r--src/readelf.c4541
-rw-r--r--src/sectionhash.c69
-rw-r--r--src/sectionhash.h23
-rw-r--r--src/size.c698
-rw-r--r--src/strip.c1769
-rw-r--r--src/symbolhash.c29
-rw-r--r--src/symbolhash.h24
-rw-r--r--src/unaligned.h98
-rw-r--r--src/versionhash.c28
-rw-r--r--src/versionhash.h22
-rw-r--r--src/xelf.h387
-rw-r--r--src/ylwrap154
-rw-r--r--stamp-h11
-rw-r--r--tests/ChangeLog41
-rw-r--r--tests/Makefile794
-rw-r--r--tests/Makefile.am98
-rw-r--r--tests/Makefile.in794
-rw-r--r--tests/arextract.c155
-rw-r--r--tests/arsymtest.c132
-rw-r--r--tests/asm-tst1.c239
-rw-r--r--tests/asm-tst2.c261
-rw-r--r--tests/asm-tst3.c322
-rw-r--r--tests/asm-tst4.c88
-rw-r--r--tests/asm-tst5.c100
-rw-r--r--tests/asm-tst6.c134
-rw-r--r--tests/asm-tst7.c164
-rw-r--r--tests/asm-tst8.c172
-rw-r--r--tests/asm-tst9.c318
-rw-r--r--tests/ecp.c88
-rw-r--r--tests/get-aranges.c134
-rw-r--r--tests/get-files.c83
-rw-r--r--tests/get-lines.c129
-rw-r--r--tests/get-pubnames.c90
-rw-r--r--tests/hash.c41
-rw-r--r--tests/msg_tst.c99
-rw-r--r--tests/newfile.c166
-rw-r--r--tests/newscn.c58
-rw-r--r--tests/run-arextract.sh34
-rw-r--r--tests/run-arsymtest.sh41
-rw-r--r--tests/run-ecp-test.sh25
-rw-r--r--tests/run-ecp-test2.sh23
-rw-r--r--tests/run-get-aranges.sh71
-rw-r--r--tests/run-get-files.sh64
-rw-r--r--tests/run-get-lines.sh67
-rw-r--r--tests/run-get-pubnames.sh53
-rw-r--r--tests/run-show-abbrev.sh355
-rw-r--r--tests/run-show-ciefde.sh319
-rw-r--r--tests/run-show-die-info.sh988
-rw-r--r--tests/run-strip-test.sh33
-rw-r--r--tests/run-strip-test2.sh33
-rw-r--r--tests/run-strip-test3.sh33
-rw-r--r--tests/saridx.c253
-rw-r--r--tests/scnnames.c81
-rw-r--r--tests/sectiondump.c178
-rw-r--r--tests/show-abbrev.c127
-rw-r--r--tests/show-die-info.c475
-rw-r--r--tests/showptable.c129
-rw-r--r--tests/test-nlist.c79
-rw-r--r--tests/testfile.bz2bin8115 -> 0 bytes
-rw-r--r--tests/testfile10.bz2bin2635 -> 0 bytes
-rw-r--r--tests/testfile11.bz2bin30561 -> 0 bytes
-rw-r--r--tests/testfile12.bz2bin9948 -> 0 bytes
-rw-r--r--tests/testfile13.bz2bin1593 -> 0 bytes
-rw-r--r--tests/testfile2.bz2bin6400 -> 0 bytes
-rw-r--r--tests/testfile3.bz2bin8051 -> 0 bytes
-rw-r--r--tests/testfile4.bz2bin41405 -> 0 bytes
-rw-r--r--tests/testfile5.bz2bin5646 -> 0 bytes
-rw-r--r--tests/testfile6.bz2bin30577 -> 0 bytes
-rw-r--r--tests/testfile7.bz2bin3107 -> 0 bytes
-rw-r--r--tests/testfile8.bz2bin31982 -> 0 bytes
-rw-r--r--tests/testfile9.bz2bin8367 -> 0 bytes
-rw-r--r--tests/update1.c120
-rw-r--r--tests/update2.c143
-rw-r--r--tests/update3.c198
-rw-r--r--tests/update4.c353
522 files changed, 0 insertions, 115378 deletions
diff --git a/ABOUT-NLS b/ABOUT-NLS
deleted file mode 100644
index 7e121c5b..00000000
--- a/ABOUT-NLS
+++ /dev/null
@@ -1,588 +0,0 @@
-Notes on the Free Translation Project
-*************************************
-
- Free software is going international! The Free Translation Project
-is a way to get maintainers of free software, translators, and users all
-together, so that will gradually become able to speak many languages.
-A few packages already provide translations for their messages.
-
- If you found this `ABOUT-NLS' file inside a distribution, you may
-assume that the distributed package does use GNU `gettext' internally,
-itself available at your nearest GNU archive site. But you do _not_
-need to install GNU `gettext' prior to configuring, installing or using
-this package with messages translated.
-
- Installers will find here some useful hints. These notes also
-explain how users should proceed for getting the programs to use the
-available translations. They tell how people wanting to contribute and
-work at translations should contact the appropriate team.
-
- When reporting bugs in the `intl/' directory or bugs which may be
-related to internationalization, you should tell about the version of
-`gettext' which is used. The information can be found in the
-`intl/VERSION' file, in internationalized packages.
-
-INSTALL Matters
-===============
-
- Some packages are "localizable" when properly installed; the
-programs they contain can be made to speak your own native language.
-Most such packages use GNU `gettext'. Other packages have their own
-ways to internationalization, predating GNU `gettext'.
-
- By default, this package will be installed to allow translation of
-messages. It will automatically detect whether the system already
-provides the GNU `gettext' functions. If not, the GNU `gettext' own
-library will be used. This library is wholly contained within this
-package, usually in the `intl/' subdirectory, so prior installation of
-the GNU `gettext' package is _not_ required. Installers may use
-special options at configuration time for changing the default
-behaviour. The command:
-
- ./configure --disable-nls
-
-will bypass any pre-existing `gettext' to _totally_ disable translation
-of messages.
-
- The configuration process will not test for the `catgets' function
-and therefore it will not be used. The reason is that even an
-emulation of `gettext' on top of `catgets' could not provide all the
-extensions of the GNU `gettext' library.
-
- Internationalized packages have usually many `po/LL.po' files, where
-LL gives an ISO 639 two-letter code identifying the language. Unless
-translations have been forbidden at `configure' time by using the
-`--disable-nls' switch, all available translations are installed
-together with the package. However, the environment variable `LINGUAS'
-may be set, prior to configuration, to limit the installed set.
-`LINGUAS' should then contain a space separated list of two-letter
-codes, stating which languages are allowed.
-
-Using This Package
-==================
-
- As a user, if your language has been installed for this package, you
-only have to set the `LANG' environment variable to the appropriate
-`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
-and `CC' is an ISO 3166 two-letter country code. For example, let's
-suppose that you speak German and live in Germany. At the shell
-prompt, merely execute `setenv LANG de_DE' (in `csh'),
-`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
-This can be done from your `.login' or `.profile' file, once and for
-all.
-
- You might think that the country code specification is redundant.
-But in fact, some languages have dialects in different countries. For
-example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
-country code serves to distinguish the dialects.
-
- The locale naming convention of `LL_CC', with `LL' denoting the
-language and `CC' denoting the country, is the one use on systems based
-on GNU libc. On other systems, some variations of this scheme are
-used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
-locales supported by your system for your country by running the command
-`locale -a | grep '^LL''.
-
- Not all programs have translations for all languages. By default, an
-English message is shown in place of a nonexistent translation. If you
-understand other languages, you can set up a priority list of languages.
-This is done through a different environment variable, called
-`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
-for the purpose of message handling, but you still need to have `LANG'
-set to the primary language; this is required by other parts of the
-system libraries. For example, some Swedish users who would rather
-read translations in German than English for when Swedish is not
-available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
-
- In the `LANGUAGE' environment variable, but not in the `LANG'
-environment variable, `LL_CC' combinations can be abbreviated as `LL'
-to denote the language's main dialect. For example, `de' is equivalent
-to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
-(Portuguese as spoken in Portugal) in this context.
-
-Translating Teams
-=================
-
- For the Free Translation Project to be a success, we need interested
-people who like their own language and write it well, and who are also
-able to synergize with other translators speaking the same language.
-Each translation team has its own mailing list. The up-to-date list of
-teams can be found at the Free Translation Project's homepage,
-`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
-area.
-
- If you'd like to volunteer to _work_ at translating messages, you
-should become a member of the translating team for your own language.
-The subscribing address is _not_ the same as the list itself, it has
-`-request' appended. For example, speakers of Swedish can send a
-message to `sv-request@li.org', having this message body:
-
- subscribe
-
- Keep in mind that team members are expected to participate
-_actively_ in translations, or at solving translational difficulties,
-rather than merely lurking around. If your team does not exist yet and
-you want to start one, or if you are unsure about what to do or how to
-get started, please write to `translation@iro.umontreal.ca' to reach the
-coordinator for all translator teams.
-
- The English team is special. It works at improving and uniformizing
-the terminology in use. Proven linguistic skill are praised more than
-programming skill, here.
-
-Available Packages
-==================
-
- Languages are not equally supported in all packages. The following
-matrix shows the current state of internationalization, as of May 2003.
-The matrix shows, in regard of each package, for which languages PO
-files have been submitted to translation coordination, with a
-translation percentage of at least 50%.
-
- Ready PO files am az be bg ca cs da de el en en_GB eo es
- +-------------------------------------------+
- a2ps | [] [] [] [] |
- aegis | () |
- anubis | |
- ap-utils | |
- bash | [] [] [] |
- batchelor | |
- bfd | [] [] |
- binutils | [] [] |
- bison | [] [] [] |
- bluez-pin | [] [] |
- clisp | |
- clisp | [] [] [] |
- coreutils | [] [] [] [] |
- cpio | [] [] [] |
- darkstat | () [] |
- diffutils | [] [] [] [] [] [] [] |
- e2fsprogs | [] [] |
- enscript | [] [] [] [] |
- error | [] [] [] [] [] |
- fetchmail | [] () [] [] [] [] |
- fileutils | [] [] [] |
- findutils | [] [] [] [] [] [] |
- flex | [] [] [] [] |
- gas | [] |
- gawk | [] [] [] [] |
- gcal | [] |
- gcc | [] [] |
- gettext | [] [] [] [] [] |
- gettext-runtime | [] [] [] [] [] |
- gettext-tools | [] [] |
- gimp-print | [] [] [] [] [] |
- gliv | |
- glunarclock | [] [] [] |
- gnucash | () [] |
- gnucash-glossary | [] () [] |
- gnupg | [] () [] [] [] [] |
- gpe-calendar | [] |
- gpe-conf | [] |
- gpe-contacts | [] |
- gpe-edit | |
- gpe-login | [] |
- gpe-ownerinfo | [] |
- gpe-sketchbook | [] |
- gpe-timesheet | |
- gpe-today | [] |
- gpe-todo | [] |
- gphoto2 | [] [] [] [] |
- gprof | [] [] |
- gpsdrive | () () () |
- grep | [] [] [] [] [] |
- gretl | [] |
- hello | [] [] [] [] [] [] |
- id-utils | [] [] |
- indent | [] [] [] [] |
- jpilot | [] [] [] [] |
- jwhois | [] |
- kbd | [] [] [] [] [] |
- ld | [] [] |
- libc | [] [] [] [] [] [] |
- libgpewidget | [] |
- libiconv | [] [] [] [] [] |
- lifelines | [] () |
- lilypond | [] |
- lingoteach | |
- lingoteach_lessons | () () |
- lynx | [] [] [] [] |
- m4 | [] [] [] [] |
- mailutils | [] [] |
- make | [] [] [] |
- man-db | [] () [] [] () |
- mysecretdiary | [] [] [] |
- nano | [] () [] [] [] |
- nano_1_0 | [] () [] [] [] |
- opcodes | [] [] |
- parted | [] [] [] [] [] |
- ptx | [] [] [] [] [] |
- python | |
- radius | |
- recode | [] [] [] [] [] [] |
- screem | |
- sed | [] [] [] [] [] |
- sh-utils | [] [] [] |
- sharutils | [] [] [] [] [] [] |
- sketch | [] () [] |
- soundtracker | [] [] [] |
- sp | [] |
- tar | [] [] [] [] |
- texinfo | [] [] [] [] |
- textutils | [] [] [] [] |
- tin | () () |
- util-linux | [] [] [] [] [] |
- vorbis-tools | [] [] [] |
- wastesedge | () |
- wdiff | [] [] [] [] |
- wget | [] [] [] [] [] [] [] |
- xchat | [] [] [] |
- xpad | |
- +-------------------------------------------+
- am az be bg ca cs da de el en en_GB eo es
- 0 1 4 2 31 17 54 60 14 1 4 12 56
-
- et fa fi fr ga gl he hr hu id it ja ko
- +----------------------------------------+
- a2ps | [] [] [] () () |
- aegis | |
- anubis | [] |
- ap-utils | [] |
- bash | [] [] |
- batchelor | [] |
- bfd | [] [] |
- binutils | [] [] |
- bison | [] [] [] [] |
- bluez-pin | [] [] [] [] |
- clisp | |
- clisp | [] |
- coreutils | [] [] [] [] |
- cpio | [] [] [] [] |
- darkstat | () [] [] [] |
- diffutils | [] [] [] [] [] [] [] |
- e2fsprogs | |
- enscript | [] [] |
- error | [] [] [] [] |
- fetchmail | [] |
- fileutils | [] [] [] [] [] |
- findutils | [] [] [] [] [] [] [] [] [] [] [] |
- flex | [] [] |
- gas | [] |
- gawk | [] [] |
- gcal | [] |
- gcc | [] |
- gettext | [] [] [] |
- gettext-runtime | [] [] [] [] |
- gettext-tools | [] |
- gimp-print | [] [] |
- gliv | () |
- glunarclock | [] [] [] [] |
- gnucash | [] |
- gnucash-glossary | [] |
- gnupg | [] [] [] [] [] [] [] |
- gpe-calendar | [] |
- gpe-conf | |
- gpe-contacts | [] |
- gpe-edit | [] [] |
- gpe-login | [] |
- gpe-ownerinfo | [] [] [] |
- gpe-sketchbook | [] |
- gpe-timesheet | [] [] [] |
- gpe-today | [] [] |
- gpe-todo | [] [] |
- gphoto2 | [] [] [] |
- gprof | [] [] |
- gpsdrive | () [] () () |
- grep | [] [] [] [] [] [] [] [] [] [] [] |
- gretl | [] |
- hello | [] [] [] [] [] [] [] [] [] [] [] [] [] |
- id-utils | [] [] [] |
- indent | [] [] [] [] [] [] [] [] |
- jpilot | [] () |
- jwhois | [] [] [] [] |
- kbd | [] |
- ld | [] |
- libc | [] [] [] [] [] [] |
- libgpewidget | [] [] [] |
- libiconv | [] [] [] [] [] [] [] [] |
- lifelines | () |
- lilypond | [] |
- lingoteach | [] [] |
- lingoteach_lessons | |
- lynx | [] [] [] [] |
- m4 | [] [] [] [] |
- mailutils | |
- make | [] [] [] [] [] [] |
- man-db | [] () () |
- mysecretdiary | [] [] |
- nano | [] [] [] [] |
- nano_1_0 | [] [] [] [] |
- opcodes | [] [] |
- parted | [] [] [] |
- ptx | [] [] [] [] [] [] [] |
- python | |
- radius | |
- recode | [] [] [] [] [] [] |
- screem | |
- sed | [] [] [] [] [] [] [] [] |
- sh-utils | [] [] [] [] [] [] |
- sharutils | [] [] [] [] [] |
- sketch | [] |
- soundtracker | [] [] [] |
- sp | [] () |
- tar | [] [] [] [] [] [] [] [] [] |
- texinfo | [] [] [] [] |
- textutils | [] [] [] [] [] |
- tin | [] () |
- util-linux | [] [] [] [] () [] |
- vorbis-tools | [] |
- wastesedge | () |
- wdiff | [] [] [] [] [] |
- wget | [] [] [] [] [] [] [] [] |
- xchat | [] [] [] |
- xpad | |
- +----------------------------------------+
- et fa fi fr ga gl he hr hu id it ja ko
- 20 1 15 73 14 24 8 10 30 31 19 31 9
-
- lg lt lv ms nb nl nn no pl pt pt_BR ro
- +----------------------------------------+
- a2ps | [] [] () () () [] [] |
- aegis | () |
- anubis | [] [] |
- ap-utils | () |
- bash | [] |
- batchelor | |
- bfd | |
- binutils | |
- bison | [] [] [] [] |
- bluez-pin | [] |
- clisp | |
- clisp | [] |
- coreutils | [] |
- cpio | [] [] [] |
- darkstat | [] [] [] [] |
- diffutils | [] [] [] |
- e2fsprogs | |
- enscript | [] [] |
- error | [] [] |
- fetchmail | () () |
- fileutils | [] |
- findutils | [] [] [] [] |
- flex | [] |
- gas | |
- gawk | [] |
- gcal | |
- gcc | |
- gettext | [] |
- gettext-runtime | [] |
- gettext-tools | |
- gimp-print | [] |
- gliv | [] |
- glunarclock | [] |
- gnucash | |
- gnucash-glossary | [] [] |
- gnupg | |
- gpe-calendar | [] [] |
- gpe-conf | [] [] |
- gpe-contacts | [] |
- gpe-edit | [] [] |
- gpe-login | [] [] |
- gpe-ownerinfo | [] [] |
- gpe-sketchbook | [] [] |
- gpe-timesheet | [] [] |
- gpe-today | [] [] |
- gpe-todo | [] [] |
- gphoto2 | |
- gprof | [] |
- gpsdrive | () () () |
- grep | [] [] [] [] |
- gretl | |
- hello | [] [] [] [] [] [] [] [] [] |
- id-utils | [] [] [] |
- indent | [] [] [] |
- jpilot | () () |
- jwhois | [] [] [] |
- kbd | |
- ld | |
- libc | [] [] [] [] |
- libgpewidget | [] [] |
- libiconv | [] [] |
- lifelines | |
- lilypond | [] |
- lingoteach | |
- lingoteach_lessons | |
- lynx | [] [] |
- m4 | [] [] [] [] |
- mailutils | |
- make | [] [] |
- man-db | [] |
- mysecretdiary | [] |
- nano | [] [] [] [] |
- nano_1_0 | [] [] [] [] |
- opcodes | [] [] [] |
- parted | [] [] [] |
- ptx | [] [] [] [] [] [] [] |
- python | |
- radius | |
- recode | [] [] [] |
- screem | |
- sed | [] [] |
- sh-utils | [] |
- sharutils | [] |
- sketch | [] |
- soundtracker | |
- sp | |
- tar | [] [] [] [] [] [] |
- texinfo | [] |
- textutils | [] |
- tin | |
- util-linux | [] [] |
- vorbis-tools | [] [] |
- wastesedge | |
- wdiff | [] [] [] [] |
- wget | [] [] [] |
- xchat | [] [] |
- xpad | [] |
- +----------------------------------------+
- lg lt lv ms nb nl nn no pl pt pt_BR ro
- 0 0 2 11 7 26 3 4 18 15 34 34
-
- ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW
- +-------------------------------------------+
- a2ps | [] [] [] [] [] | 16
- aegis | () | 0
- anubis | [] [] | 5
- ap-utils | () | 1
- bash | [] | 7
- batchelor | | 1
- bfd | [] [] [] | 7
- binutils | [] [] [] | 7
- bison | [] [] | 13
- bluez-pin | | 7
- clisp | | 0
- clisp | | 5
- coreutils | [] [] [] [] [] | 14
- cpio | [] [] [] | 13
- darkstat | [] () () | 9
- diffutils | [] [] [] [] | 21
- e2fsprogs | [] | 3
- enscript | [] [] [] | 11
- error | [] [] [] | 14
- fetchmail | [] | 7
- fileutils | [] [] [] [] [] [] | 15
- findutils | [] [] [] [] [] [] | 27
- flex | [] [] [] | 10
- gas | [] | 3
- gawk | [] [] | 9
- gcal | [] [] | 4
- gcc | [] | 4
- gettext | [] [] [] [] [] [] | 15
- gettext-runtime | [] [] [] [] [] [] | 16
- gettext-tools | [] [] | 5
- gimp-print | [] [] | 10
- gliv | | 1
- glunarclock | [] [] [] | 11
- gnucash | [] [] | 4
- gnucash-glossary | [] [] [] | 8
- gnupg | [] [] [] [] | 16
- gpe-calendar | [] | 5
- gpe-conf | | 3
- gpe-contacts | [] | 4
- gpe-edit | [] | 5
- gpe-login | [] | 5
- gpe-ownerinfo | [] | 7
- gpe-sketchbook | [] | 5
- gpe-timesheet | [] | 6
- gpe-today | [] | 6
- gpe-todo | [] | 6
- gphoto2 | [] [] | 9
- gprof | [] [] | 7
- gpsdrive | [] [] | 3
- grep | [] [] [] [] | 24
- gretl | | 2
- hello | [] [] [] [] [] | 33
- id-utils | [] [] [] | 11
- indent | [] [] [] [] | 19
- jpilot | [] [] [] [] [] | 10
- jwhois | () () [] [] | 10
- kbd | [] [] | 8
- ld | [] [] | 5
- libc | [] [] [] [] | 20
- libgpewidget | | 6
- libiconv | [] [] [] [] [] [] | 21
- lifelines | [] | 2
- lilypond | [] | 4
- lingoteach | | 2
- lingoteach_lessons | () | 0
- lynx | [] [] [] [] | 14
- m4 | [] [] [] | 15
- mailutils | | 2
- make | [] [] [] [] | 15
- man-db | [] | 6
- mysecretdiary | [] [] | 8
- nano | [] [] [] | 15
- nano_1_0 | [] [] [] | 15
- opcodes | [] [] | 9
- parted | [] [] | 13
- ptx | [] [] [] | 22
- python | | 0
- radius | | 0
- recode | [] [] [] [] | 19
- screem | [] | 1
- sed | [] [] [] [] [] | 20
- sh-utils | [] [] [] | 13
- sharutils | [] [] [] [] | 16
- sketch | [] | 5
- soundtracker | [] | 7
- sp | [] | 3
- tar | [] [] [] [] [] | 24
- texinfo | [] [] [] [] | 13
- textutils | [] [] [] [] [] | 15
- tin | | 1
- util-linux | [] [] | 14
- vorbis-tools | [] | 7
- wastesedge | | 0
- wdiff | [] [] [] [] | 17
- wget | [] [] [] [] [] [] [] | 25
- xchat | [] [] [] | 11
- xpad | | 1
- +-------------------------------------------+
- 50 teams ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW
- 97 domains 32 19 16 0 56 0 48 10 1 1 12 23 913
-
- Some counters in the preceding matrix are higher than the number of
-visible blocks let us expect. This is because a few extra PO files are
-used for implementing regional variants of languages, or language
-dialects.
-
- For a PO file in the matrix above to be effective, the package to
-which it applies should also have been internationalized and
-distributed as such by its maintainer. There might be an observable
-lag between the mere existence a PO file and its wide availability in a
-distribution.
-
- If May 2003 seems to be old, you may fetch a more recent copy of
-this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
-matrix with full percentage details can be found at
-`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
-
-Using `gettext' in new packages
-===============================
-
- If you are writing a freely available program and want to
-internationalize it you are welcome to use GNU `gettext' in your
-package. Of course you have to respect the GNU Library General Public
-License which covers the use of the GNU `gettext' library. This means
-in particular that even non-free programs can use `libintl' as a shared
-library, whereas only free software can use `libintl' as a static
-library or use modified versions of `libintl'.
-
- Once the sources are changed appropriately and the setup can handle
-the use of `gettext' the only thing missing are the translations. The
-Free Translation Project is also available for packages which are not
-developed inside the GNU project. Therefore the information given above
-applies also for every other Free Software Project. Contact
-`translation@iro.umontreal.ca' to make the `.pot' files available to
-the translation teams.
-
diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644
index 29b776f0..00000000
--- a/AUTHORS
+++ /dev/null
@@ -1,2 +0,0 @@
-For Now:
-Ulrich Drepper.
diff --git a/Android.mk b/Android.mk
deleted file mode 100755
index b283024e..00000000
--- a/Android.mk
+++ /dev/null
@@ -1,230 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-COMMON_SOURCES:=\
- lib/xmalloc.c \
- lib/xstrdup.c \
- lib/xstrndup.c
-
-#
-# libelf
-#
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES:=$(COMMON_SOURCES)
-LOCAL_SRC_FILES+=\
- libelf/elf32_checksum.c \
- libelf/elf32_fsize.c \
- libelf/elf32_getehdr.c \
- libelf/elf32_getphdr.c \
- libelf/elf32_getshdr.c \
- libelf/elf32_newehdr.c \
- libelf/elf32_newphdr.c \
- libelf/elf32_updatefile.c \
- libelf/elf32_updatenull.c \
- libelf/elf32_xlatetof.c \
- libelf/elf32_xlatetom.c \
- libelf/elf64_checksum.c \
- libelf/elf64_fsize.c \
- libelf/elf64_getehdr.c \
- libelf/elf64_getphdr.c \
- libelf/elf64_getshdr.c \
- libelf/elf64_newehdr.c \
- libelf/elf64_newphdr.c \
- libelf/elf64_updatefile.c \
- libelf/elf64_updatenull.c \
- libelf/elf64_xlatetof.c \
- libelf/elf64_xlatetom.c \
- libelf/elf_begin.c \
- libelf/elf_clone.c \
- libelf/elf_cntl.c \
- libelf/elf_end.c \
- libelf/elf_error.c \
- libelf/elf_fill.c \
- libelf/elf_flagdata.c \
- libelf/elf_flagehdr.c \
- libelf/elf_flagelf.c \
- libelf/elf_flagphdr.c \
- libelf/elf_flagscn.c \
- libelf/elf_flagshdr.c \
- libelf/elf_getarhdr.c \
- libelf/elf_getarsym.c \
- libelf/elf_getbase.c \
- libelf/elf_getdata.c \
- libelf/elf_getident.c \
- libelf/elf_getscn.c \
- libelf/elf_getshnum.c \
- libelf/elf_getshstrndx.c \
- libelf/elf_hash.c \
- libelf/elf_kind.c \
- libelf/elf_memory.c \
- libelf/elf_ndxscn.c \
- libelf/elf_newdata.c \
- libelf/elf_newscn.c \
- libelf/elf_next.c \
- libelf/elf_nextscn.c \
- libelf/elf_rand.c \
- libelf/elf_rawdata.c \
- libelf/elf_rawfile.c \
- libelf/elf_readall.c \
- libelf/elf_strptr.c \
- libelf/elf_update.c \
- libelf/elf_version.c \
- libelf/gelf_checksum.c \
- libelf/gelf_freechunk.c \
- libelf/gelf_fsize.c \
- libelf/gelf_getclass.c \
- libelf/gelf_getdyn.c \
- libelf/gelf_getehdr.c \
- libelf/gelf_getlib.c \
- libelf/gelf_getmove.c \
- libelf/gelf_getphdr.c \
- libelf/gelf_getrel.c \
- libelf/gelf_getrela.c \
- libelf/gelf_getshdr.c \
- libelf/gelf_getsym.c \
- libelf/gelf_getsyminfo.c \
- libelf/gelf_getsymshndx.c \
- libelf/gelf_getverdaux.c \
- libelf/gelf_getverdef.c \
- libelf/gelf_getvernaux.c \
- libelf/gelf_getverneed.c \
- libelf/gelf_getversym.c \
- libelf/gelf_newehdr.c \
- libelf/gelf_newphdr.c \
- libelf/gelf_rawchunk.c \
- libelf/gelf_update_dyn.c \
- libelf/gelf_update_ehdr.c \
- libelf/gelf_update_lib.c \
- libelf/gelf_update_move.c \
- libelf/gelf_update_phdr.c \
- libelf/gelf_update_rel.c \
- libelf/gelf_update_rela.c \
- libelf/gelf_update_shdr.c \
- libelf/gelf_update_sym.c \
- libelf/gelf_update_syminfo.c \
- libelf/gelf_update_symshndx.c \
- libelf/gelf_update_verdaux.c \
- libelf/gelf_update_verdef.c \
- libelf/gelf_update_vernaux.c \
- libelf/gelf_update_verneed.c \
- libelf/gelf_update_versym.c \
- libelf/gelf_xlate.c \
- libelf/gelf_xlatetof.c \
- libelf/gelf_xlatetom.c \
- libelf/libelf_crc32.c \
- libelf/libelf_next_prime.c \
- libelf/nlist.c
-
-ifeq ($(HOST_OS),linux)
-LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-linux.h
-endif
-ifeq ($(HOST_OS),darwin)
-LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-darwin.h
-endif
-ifeq ($(HOST_OS),windows)
-LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-cygwin.h
-endif
-
-LOCAL_MODULE:= libelf
-
-LOCAL_CFLAGS += -include $(LOCAL_PATH)/config.h
-ifeq ($(HOST_OS),windows)
-LOCAL_CFLAGS += -Doff64_t=_off64_t
-else
-LOCAL_CFLAGS += -Doff64_t=__off64_t
-endif
-
-LOCAL_C_INCLUDES:=$(LOCAL_PATH)/lib/ $(LOCAL_PATH)/libelf/
-
-include $(BUILD_HOST_STATIC_LIBRARY)
-
-#
-# libebl
-#
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES:=$(COMMON_SOURCES)
-LOCAL_SRC_FILES+=\
- libebl/eblbackendname.c \
- libebl/eblclosebackend.c \
- libebl/eblcorenote.c \
- libebl/eblcorenotetypename.c \
- libebl/ebldebugscnp.c \
- libebl/ebldynamictagcheck.c \
- libebl/ebldynamictagname.c \
- libebl/eblgotpcreloccheck.c \
- libebl/eblgstrtab.c \
- libebl/eblmachineflagcheck.c \
- libebl/eblmachineflagname.c \
- libebl/eblobjecttypename.c \
- libebl/eblobjnote.c \
- libebl/eblobjnotetypename.c \
- libebl/eblopenbackend.c \
- libebl/eblosabiname.c \
- libebl/eblreloctypecheck.c \
- libebl/eblreloctypename.c \
- libebl/eblrelocvaliduse.c \
- libebl/eblsectionname.c \
- libebl/eblsectiontypename.c \
- libebl/eblsegmenttypename.c \
- libebl/eblshflagscombine.c \
- libebl/eblstrtab.c \
- libebl/eblsymbolbindingname.c \
- libebl/eblsymboltypename.c \
- libebl/eblwstrtab.c
-
-ifeq ($(HOST_OS),linux)
-LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-linux.h
-endif
-ifeq ($(HOST_OS),darwin)
-LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-darwin.h
-endif
-ifeq ($(HOST_OS),windows)
-LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-cygwin.h
-endif
-
-LOCAL_MODULE:=libebl
-
-LOCAL_CFLAGS += -include $(LOCAL_PATH)/config.h -DLIBSTR=\"$(LOCAL_MODULE)\" -Dstpcpy=strcpy
-ifeq ($(HOST_OS),windows)
-LOCAL_CFLAGS += -Doff64_t=_off64_t
-else
-LOCAL_CFLAGS += -Doff64_t=__off64_t
-endif
-
-LOCAL_C_INCLUDES:=$(LOCAL_PATH)/lib/ $(LOCAL_PATH)/libelf/ $(LOCAL_PATH)/libebl/
-
-include $(BUILD_HOST_STATIC_LIBRARY)
-
-#
-# libebl_arm
-#
-
-include $(CLEAR_VARS)
-
-#LOCAL_SRC_FILES:=$(COMMON_SOURCES)
-LOCAL_SRC_FILES+=\
- libebl/arm_destr.c \
- libebl/arm_init.c \
- libebl/arm_symbol.c
-
-ifeq ($(HOST_OS),linux)
-endif
-ifeq ($(HOST_OS),darwin)
-endif
-
-LOCAL_MODULE:=libebl_arm
-
-LOCAL_CFLAGS += -include $(LOCAL_PATH)/config.h
-ifeq ($(HOST_OS),windows)
-LOCAL_CFLAGS += -Doff64_t=_off64_t
-else
-LOCAL_CFLAGS += -Doff64_t=__off64_t
-endif
-
-LOCAL_C_INCLUDES:=$(LOCAL_PATH)/lib/ $(LOCAL_PATH)/libelf/ $(LOCAL_PATH)/libebl/
-
-include $(BUILD_HOST_STATIC_LIBRARY)
-
diff --git a/COPYING b/COPYING
deleted file mode 100644
index ed8461a8..00000000
--- a/COPYING
+++ /dev/null
@@ -1,162 +0,0 @@
- The Open Software License
- v. 1.0
-
-This Open Software License (the "License") applies to any original
-work of authorship (the "Original Work") whose owner (the "Licensor")
-has placed the following notice immediately following the copyright
-notice for the Original Work: "Licensed under the Open Software
-License version 1.0"
-
-License Terms
-
-1) Grant of Copyright License. Licensor hereby grants You a
-world-wide, royalty-free, non-exclusive, perpetual, non-sublicenseable
-license to do the following:
-
- a) to reproduce the Original Work in copies;
-
- b) to prepare derivative works ("Derivative Works") based upon the
- Original Work;
-
- c) to distribute copies of the Original Work and Derivative Works
- to the public, with the proviso that copies of Original Work or
- Derivative Works that You distribute shall be licensed under the
- Open Software License;
-
- d) to perform the Original Work publicly; and
-
- e) to display the Original Work publicly.
-
-2) Grant of Patent License. Licensor hereby grants You a world-wide,
-royalty-free, non-exclusive, perpetual, non-sublicenseable license,
-under patent claims owned or controlled by the Licensor that are
-embodied in the Original Work as furnished by the Licensor ("Licensed
-Claims") to make, use, sell and offer for sale the Original Work.
-Licensor hereby grants You a world-wide, royalty-free, non-exclusive,
-perpetual, non-sublicenseable license under the Licensed Claims to
-make, use, sell and offer for sale Derivative Works.
-
-3) Grant of Source Code License. The term "Source Code" means the
-preferred form of the Original Work for making modifications to it and
-all available documentation describing how to access and modify the
-Original Work. Licensor hereby agrees to provide a machine-readable
-copy of the Source Code of the Original Work along with each copy of
-the Original Work that Licensor distributes. Licensor reserves the
-right to satisfy this obligation by placing a machine-readable copy of
-the Source Code in an information repository reasonably calculated to
-permit inexpensive and convenient access by You for as long as
-Licensor continues to distribute the Original Work, and by publishing
-the address of that information repository in a notice immediately
-following the copyright notice that applies to the Original Work.
-
-4) Exclusions From License Grant. Nothing in this License shall be
-deemed to grant any rights to trademarks, copyrights, patents, trade
-secrets or any other intellectual property of Licensor except as
-expressly stated herein. No patent license is granted to make, use,
-sell or offer to sell embodiments of any patent claims other than the
-Licensed Claims defined in Section 2. No right is granted to the
-trademarks of Licensor even if such marks are included in the Original
-Work. Nothing in this License shall be interpreted to prohibit
-Licensor from licensing under different terms from this License any
-Original Work that Licensor otherwise would have a right to license.
-
-5) External Deployment. The term "External Deployment" means the use
-or distribution of the Original Work or Derivative Works in any way
-such that the Original Work or Derivative Works may be accessed or
-used by anyone other than You, whether the Original Work or Derivative
-Works are distributed to those persons, made available as an
-application intended for use over a computer network, or used to
-provide services or otherwise deliver content to anyone other than
-You. As an express condition for the grants of license hereunder, You
-agree that any External Deployment by You shall be deemed a
-distribution and shall be licensed to all under the terms of this
-License, as prescribed in section 1(c) herein.
-
-6) Warranty and Disclaimer of Warranty. LICENSOR WARRANTS THAT THE
-COPYRIGHT IN AND TO THE ORIGINAL WORK IS OWNED BY THE LICENSOR OR THAT
-THE ORIGINAL WORK IS DISTRIBUTED BY LICENSOR UNDER A VALID CURRENT
-LICENSE FROM THE COPYRIGHT OWNER. EXCEPT AS EXPRESSLY STATED IN THE
-IMMEDIATELY PRECEEDING SENTENCE, THE ORIGINAL WORK IS PROVIDED UNDER
-THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY, EITHER EXPRESS OR
-IMPLIED, INCLUDING, WITHOUT LIMITATION, THE WARRANTY OF
-NON-INFRINGEMENT AND WARRANTIES THAT THE ORIGINAL WORK IS MERCHANTABLE
-OR FIT FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF
-THE ORIGINAL WORK IS WITH YOU. THIS DISCLAIMER OF WARRANTY CONSTITUTES
-AN ESSENTIAL PART OF THIS LICENSE. NO LICENSE TO ORIGINAL WORK IS
-GRANTED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-
-7) Limitation of Liability. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL
-THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE,
-SHALL THE LICENSOR BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT,
-SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING
-AS A RESULT OF THIS LICENSE OR THE USE OF THE ORIGINAL WORK INCLUDING,
-WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE,
-COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL
-DAMAGES OR LOSSES, EVEN IF SUCH PERSON SHALL HAVE BEEN INFORMED OF THE
-POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT
-APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH
-PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH
-LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR
-LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION
-AND LIMITATION MAY NOT APPLY TO YOU.
-
-8) Acceptance and Termination. Nothing else but this License (or
-another written agreement between Licensor and You) grants You
-permission to create Derivative Works based upon the Original Work,
-and any attempt to do so except under the terms of this License (or
-another written agreement between Licensor and You) is expressly
-prohibited by U.S. copyright law, the equivalent laws of other
-countries, and by international treaty. Therefore, by exercising any
-of the rights granted to You in Sections 1 and 2 herein, You indicate
-Your acceptance of this License and all of its terms and conditions.
-This license shall terminate immediately and you may no longer
-exercise any of the rights granted to You by this License upon Your
-failure to honor the proviso in Section 1(c) herein.
-
-9) Mutual Termination for Patent Action. This License shall terminate
-automatically and You may no longer exercise any of the rights granted
-to You by this License if You file a lawsuit in any court alleging
-that any OSI Certified open source software that is licensed under any
-license containing this "Mutual Termination for Patent Action" clause
-infringes any patent claims that are essential to use that software.
-
-10) Jurisdiction, Venue and Governing Law. You agree that any lawsuit
-arising under or relating to this License shall be maintained in the
-courts of the jurisdiction wherein the Licensor resides or in which
-Licensor conducts its primary business, and under the laws of that
-jurisdiction excluding its conflict-of-law provisions. The application
-of the United Nations Convention on Contracts for the International
-Sale of Goods is expressly excluded. Any use of the Original Work
-outside the scope of this License or after its termination shall be
-subject to the requirements and penalties of the U.S. Copyright Act,
-17 U.S.C. § 101 et seq., the equivalent laws of other countries, and
-international treaty. This section shall survive the termination of
-this License.
-
-11) Attorneys Fees. In any action to enforce the terms of this License
-or seeking damages relating thereto, the prevailing party shall be
-entitled to recover its costs and expenses, including, without
-limitation, reasonable attorneys' fees and costs incurred in
-connection with such action, including any appeal of such action. This
-section shall survive the termination of this License.
-
-12) Miscellaneous. This License represents the complete agreement
-concerning the subject matter hereof. If any provision of this License
-is held to be unenforceable, such provision shall be reformed only to
-the extent necessary to make it enforceable.
-
-13) Definition of "You" in This License. "You" throughout this
-License, whether in upper or lower case, means an individual or a
-legal entity exercising rights under, and complying with all of the
-terms of, this License. For legal entities, "You" includes any entity
-that controls, is controlled by, or is under common control with you.
-For purposes of this definition, "control" means (i) the power, direct
-or indirect, to cause the direction or management of such entity,
-whether by contract or otherwise, or (ii) ownership of fifty percent
-(50%) or more of the outstanding shares, or (iii) beneficial ownership
-of such entity.
-
-This license is Copyright (C) 2002 Lawrence E. Rosen. All rights
-reserved. Permission is hereby granted to copy and distribute this
-license without modification. This license may not be modified without
-the express written permission of its copyright owner.
diff --git a/COPYING.GPL b/COPYING.GPL
deleted file mode 100644
index 60549be5..00000000
--- a/COPYING.GPL
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index c29d18ad..00000000
--- a/ChangeLog
+++ /dev/null
@@ -1,79 +0,0 @@
-2004-09-25 Ulrich Drepper <drepper@redhat.com>
-
- * configure.ac: Make compile with gcc 4.0.
-
-2004-03-06 Ulrich Drepper <drepper@redhat.com>
-
- * configure.ac: Use AS_HELP_STRING where applicable.
-
-2004-01-23 Ulrich Drepper <drepper@redhat.com>
-
- * configure.ac: Check for C99 compiler.
-
- * configure.ac: Change locking macros in config.h to at least
- evaluate the parameter. Define base_cpu to none for generic linker.
-
-2004-01-21 Ulrich Drepper <drepper@redhat.com>
-
- * configure.ac: Print error message in case --disable-generic is
- used if no linker support for the architecture is available.
-
-2004-01-18 Ulrich Drepper <drepper@redhat.com>
-
- * configure.ac: Dont generate libebl-po/Makefile.in,
- libdw-po/Makefile.in, libasm-po/Makefile.in.
-
- * Makefile.am (all_SUBDIRS): Remove libebl-po, libdw-po, libasm-po.
-
-2004-01-17 Ulrich Drepper <drepper@redhat.com>
-
- * configure.ac: Pretty printing of help message.
-
- * configure.ac: Move AC_SYS_LARGEFILE test to the front.
-
- * configure.ac: Add --enable-mudflap option.
-
-2004-01-17 Ulrich Drepper <drepper@redhat.com>
-
- * configure.ac: Major cleanups. Use aux dir.
- * config.guess: Moved to new config subdir.
- * config.rpath: Likewise.
- * config.sub: Likewise.
- * depcomp: Likewise.
- * install-sh: Likewise.
- * missing: Likewise.
- * mkinstalldirs: Likewise.
- * Makefile.am (mini_SUBDIRS): Add config.
- (EXTRA_DIST): Remove config.rpath.
-
- * configure.ac: Add AC_REVISION.
-
- * configure.ac: Add --enable-mudflap option.
-
-2004-01-11 Ulrich Drepper <drepper@redhat.com>
-
- * configure.ac: Drop libdwarf directory. Add libdw-po.
- * Makefile.am (all_SUBDIRS): Likewise.
- * elfutils.spec: Don't distribute anything from libdwarf.
-
-2004-01-05 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am: Support separate libelf built.
-
- * elfutils.spec.in: Create separata elfutils-libelf-devel package.
- Install libdw DSOs.
-
- * configure.ac (AC_CONFIG_SRCDIR): Use libelf/libelf.h as the file
- name.
-
-2003-08-13 Ulrich Drepper <drepper@redhat.com>
-
- * elfutils.spec.in: Remove references to libebl.so.
-
-2003-08-11 Ulrich Drepper <drepper@redhat.com>
-
- * Moved to CVS archive.
-
-2000-08-25 Ulrich Drepper <drepper@redhat.com>
-
- * The beginning. See the NEWS file for the time being.
diff --git a/GPG-KEY b/GPG-KEY
deleted file mode 100644
index cd60f822..00000000
--- a/GPG-KEY
+++ /dev/null
@@ -1,33 +0,0 @@
-Public key for drepper@redhat.com
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.2.1 (GNU/Linux)
-
-mQGiBDuFth0RBACPcHEkyqJE26wTXuuuCxpqJjxlBnNFkJGkWUoeu89QjzWgzXy/
-EA8+ptNBgCTPKnLEqhkRUyxAT/Uz+t+xbKqUtL54IzYfxO4NQsN/VVM0uppNfIJb
-MWvAjvpp2HCkd/32i693rlH+G9dvG8K57by3PBRHBgH2L8Q7t/QvA2AWpwCgzokX
-DDUiitysGn4rWO0rBBoR6OED/3ehpcHtbGixNoubRZAxpw99VTKs/I76OkrQzqcm
-+w+zwZeihJXC88yAHA77/LBB3YKaX3G4CmDQUbeRJ9zPlETTLmRMcF61dQdq/3qV
-Biq1sm6ctZ4uEpm8HnysKMT+VY4Xmj9LLzF2BdING9frcX9rk8Vk25iCLBronS0M
-IU3WA/sEvlUFlfbyCBRBoq+Rlr9u05fnHc7CLMKI7EIS1T1dLPxH1ivuUhyYNGAM
-RhCivBbT2Z0t/R4ksu3VdnPGkCyAAdWNSafSGqCYUzQH0u5Z8HK6c2iXrIX3Ipk5
-DhQOQ6k1tyYzuQw3cCf7RYRJ9/iup8RlscVt2kmGnSucqpxJCbQjVWxyaWNoIERy
-ZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT6IVwQTEQIAFwUCO4W2HQULBwoDBAMV
-AwIDFgIBAheAAAoJENoowjp5/0R0SqUAoL5HBbaRWR19vjldUeJvYCG2AR94AKDL
-nmVEaykaZWyyNg0OTuxLe1boa4hGBBARAgAGBQI8iQDvAAoJEFWW3Qzpv2U97wgA
-n1RVl6FbIHVVmT224nOp5b98OZVnAJ9ehXzM60RbmGi3kJNS30II+SGft4hGBBMR
-AgAGBQI9Tvt0AAoJEP3S3qzTM8uhUy0AoNqATBj2usEtJduGHukKZ9mQaycFAJ9y
-lq0MmZJwMZ3699e6rgMiHAMAVbkCDQQ7hbZPEAgAzuFAPq1sYUtpJClwX7+pdz1K
-dIgbxDKoSHh2rSRx24HLYY/xg9ps6fZF21/SBialKaB8BFnIeh8S9LXUtWt9aUeC
-klnnQwPbR0BGRcZAS7+nHZ9agiMd4CRe4RWFmS6KhIeUsDa70+8XhIm/C+Ogd7ag
-kBw7ykTb/jWHMyvcP9iY0QtmIatfVTDJUm7Rm5TtM1mDCml/gWIQJ5ezr9gv2NUG
-3kpNYwP+G9o4BLyTOHamix/0YHI/HiZSYiwq40ao0zROd/yXY6/a3mitN96AidJL
-5I5tbqnrFy6LmRvWmyOxWkJD/bF31rrO5PfVUgcVpUxbtW44PtVilhLuh+qjTwAD
-BQf+NTHwjUw1j+PZs/y5XnPw0x0ZdYGEl0I7NqtMgCxI4ZHT9jaLcLXARb3UVEuc
-1LuJ1tAA1ss1c1NLK3Lg+uZzeKMRffRYEUg0Emer8QGWr1uSOxDHcAzuRZX3PYNX
-cEGEyEm443DDnXr/4b8zYK6O+sy1Ld+SVxxp6jwtk0LyT7okgD0E1dDUzX+qxpsV
-ujbzdH4bdqocKouMNMT+BHeobNZpR4Tyz5+pwW+rw1+XZebyBUkIPXOoWPZpUTDG
-fZ+om9xfg0JOcKZIZ0X91dLQp5x99aCmzwWeWy9LFPTAf9pYky8wXzteEotE/Tkm
-DeA1caPC9IEK9BBrrS9TeubrEIhGBBgRAgAGBQI7hbZPAAoJENoowjp5/0R0Z38A
-mgM4FAquwltH0ooTdAmBMoCfKb4/AJ9ufAh4Rl9sFaCie/j8jdo02bcV1A==
-=Yeua
------END PGP PUBLIC KEY BLOCK-----
diff --git a/INSTALL b/INSTALL
deleted file mode 100644
index b42a17ac..00000000
--- a/INSTALL
+++ /dev/null
@@ -1,182 +0,0 @@
-Basic Installation
-==================
-
- These are generic installation instructions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, a file
-`config.cache' that saves the results of its tests to speed up
-reconfiguring, and a file `config.log' containing compiler output
-(useful mainly for debugging `configure').
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If at some point `config.cache'
-contains results you don't want to keep, you may remove or edit it.
-
- The file `configure.in' is used to create `configure' by a program
-called `autoconf'. You only need `configure.in' if you want to change
-it or regenerate `configure' using a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system. If you're
- using `csh' on an old version of System V, you might need to type
- `sh ./configure' instead to prevent `csh' from trying to execute
- `configure' itself.
-
- Running `configure' takes awhile. While running, it prints some
- messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Optionally, type `make check' to run any self-tests that come with
- the package.
-
- 4. Type `make install' to install the programs and any data files and
- documentation.
-
- 5. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
-
-Compilers and Options
-=====================
-
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. You can give `configure'
-initial values for variables by setting them in the environment. Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
- CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
-Or on systems that have the `env' program, you can do it like this:
- env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
-Compiling For Multiple Architectures
-====================================
-
- You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
- If you have to use a `make' that does not supports the `VPATH'
-variable, you have to compile the package for one architecture at a time
-in the source code directory. After you have installed the package for
-one architecture, use `make distclean' before reconfiguring for another
-architecture.
-
-Installation Names
-==================
-
- By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc. You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
- In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
-kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
- There may be some features `configure' can not figure out
-automatically, but needs to determine by the type of host the package
-will run on. Usually `configure' can figure that out, but if it prints
-a message saying it can not guess the host type, give it the
-`--host=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name with three fields:
- CPU-COMPANY-SYSTEM
-
-See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the host type.
-
- If you are building compiler tools for cross-compiling, you can also
-use the `--target=TYPE' option to select the type of system they will
-produce code for and the `--build=TYPE' option to select the type of
-system on which you are compiling the package.
-
-Sharing Defaults
-================
-
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Operation Controls
-==================
-
- `configure' recognizes the following options to control how it
-operates.
-
-`--cache-file=FILE'
- Use and save the results of the tests in FILE instead of
- `./config.cache'. Set FILE to `/dev/null' to disable caching, for
- debugging `configure'.
-
-`--help'
- Print a summary of the options to `configure', and exit.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made. To
- suppress all normal output, redirect it to `/dev/null' (any error
- messages will still be shown).
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`--version'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`configure' also accepts some other, not widely useful, options.
diff --git a/MODULE_LICENSE_OSL1 b/MODULE_LICENSE_OSL1
deleted file mode 100644
index e69de29b..00000000
--- a/MODULE_LICENSE_OSL1
+++ /dev/null
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index 069b07f3..00000000
--- a/Makefile.am
+++ /dev/null
@@ -1,35 +0,0 @@
-## Process this file with automake to create Makefile.in
-## Configure input file for elfutils.
-##
-## Copyright (C) 1996-2002, 2003, 2004 Red Hat, Inc.
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation, version 2.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software Foundation,
-## Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-##
-ACLOCAL_AMFLAGS = -I m4
-
-mini_SUBDIRS = config m4 lib libelf libelf-po
-all_SUBDIRS = doc libebl libdw libcpu libasm src po tests
-SUBDIRS = $(mini_SUBDIRS) $(all_SUBDIRS)
-
-EXTRA_DIST = splint.rc elfutils.spec GPG-KEY NOTES COPYING.GPL
-
-distcheck-hook:
- chmod -R u+w $(distdir)
-
-rpm: dist
- rpmbuild -ts --sign elfutils-@PACKAGE_VERSION@.tar.gz
-
-# Tell version 3.79 and up of GNU make to not build goals in this
-# directory in parallel.
-.NOTPARALLEL:
diff --git a/Makefile.in b/Makefile.in
deleted file mode 100644
index c00bd846..00000000
--- a/Makefile.in
+++ /dev/null
@@ -1,620 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = .
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = .
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(srcdir)/config.h.in \
- $(top_srcdir)/config/elfutils.spec.in $(top_srcdir)/configure \
- ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS THANKS TODO
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno configure.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = elfutils.spec
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-exec-recursive install-info-recursive \
- install-recursive installcheck-recursive installdirs-recursive \
- pdf-recursive ps-recursive uninstall-info-recursive \
- uninstall-recursive
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- { test ! -d $(distdir) \
- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr $(distdir); }; }
-DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
-GZIP_ENV = --best
-distuninstallcheck_listfiles = find . -type f -print
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GMSGFMT = @GMSGFMT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
-MUDFLAP_FALSE = @MUDFLAP_FALSE@
-MUDFLAP_TRUE = @MUDFLAP_TRUE@
-NATIVE_LD_FALSE = @NATIVE_LD_FALSE@
-NATIVE_LD_TRUE = @NATIVE_LD_TRUE@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-XGETTEXT = @XGETTEXT@
-YACC = @YACC@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-base_cpu = @base_cpu@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-ACLOCAL_AMFLAGS = -I m4
-mini_SUBDIRS = config m4 lib libelf libelf-po
-all_SUBDIRS = doc libebl libdw libcpu libasm src po tests
-SUBDIRS = $(mini_SUBDIRS) $(all_SUBDIRS)
-EXTRA_DIST = splint.rc elfutils.spec GPG-KEY NOTES COPYING.GPL
-all: config.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-am--refresh:
- @:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --gnits '; \
- cd $(srcdir) && $(AUTOMAKE) --gnits \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-
-config.h: stamp-h1
- @if test ! -f $@; then \
- rm -f stamp-h1; \
- $(MAKE) stamp-h1; \
- else :; fi
-
-stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
- @rm -f stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status config.h
-$(srcdir)/config.h.in: $(am__configure_deps)
- cd $(top_srcdir) && $(AUTOHEADER)
- rm -f stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f config.h stamp-h1
-elfutils.spec: $(top_builddir)/config.status $(top_srcdir)/config/elfutils.spec.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
-uninstall-info-am:
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
- @set fnord $$MAKEFLAGS; amf=$$2; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
- @set fnord $$MAKEFLAGS; amf=$$2; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @case `sed 15q $(srcdir)/NEWS` in \
- *"$(VERSION)"*) : ;; \
- *) \
- echo "NEWS not updated; not releasing" 1>&2; \
- exit 1;; \
- esac
- $(am__remove_distdir)
- mkdir $(distdir)
- $(mkdir_p) $(distdir)/config $(distdir)/libelf-po $(distdir)/m4 $(distdir)/po
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(mkdir_p) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
- distdir) \
- || exit 1; \
- fi; \
- done
- -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r $(distdir)
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
- $(am__remove_distdir)
-
-dist-tarZ: distdir
- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__remove_distdir)
-
-dist-shar: distdir
- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
- $(am__remove_distdir)
-
-dist-zip: distdir
- -rm -f $(distdir).zip
- zip -rq $(distdir).zip $(distdir)
- $(am__remove_distdir)
-
-dist dist-all: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
- $(am__remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- case '$(DIST_ARCHIVES)' in \
- *.tar.gz*) \
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
- *.tar.bz2*) \
- bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
- *.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- *.shar.gz*) \
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
- *.zip*) \
- unzip $(distdir).zip ;;\
- esac
- chmod -R a-w $(distdir); chmod a+w $(distdir)
- mkdir $(distdir)/_build
- mkdir $(distdir)/_inst
- chmod a-w $(distdir)
- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && $(MAKE) $(AM_MAKEFLAGS) distcheck-hook \
- && cd $(distdir)/_build \
- && ../configure --srcdir=.. --prefix="$$dc_install_base" \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
- distuninstallcheck \
- && chmod -R a-w "$$dc_install_base" \
- && ({ \
- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
- } || { rm -rf "$$dc_destdir"; exit 1; }) \
- && rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
- $(am__remove_distdir)
- @(echo "$(distdir) archives ready for distribution: "; \
- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
- sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
-distuninstallcheck:
- @cd $(distuninstallcheck_dir) \
- && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
-check-am: all-am
-check: check-recursive
-all-am: Makefile config.h
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-recursive
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-uninstall-info: uninstall-info-recursive
-
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
- check-am clean clean-generic clean-recursive ctags \
- ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
- dist-tarZ dist-zip distcheck distclean distclean-generic \
- distclean-hdr distclean-recursive distclean-tags \
- distcleancheck distdir distuninstallcheck dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-exec install-exec-am install-info \
- install-info-am install-man install-strip installcheck \
- installcheck-am installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic maintainer-clean-recursive \
- mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
- pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
- uninstall-info-am
-
-
-distcheck-hook:
- chmod -R u+w $(distdir)
-
-rpm: dist
- rpmbuild -ts --sign elfutils-@PACKAGE_VERSION@.tar.gz
-
-# Tell version 3.79 and up of GNU make to not build goals in this
-# directory in parallel.
-.NOTPARALLEL:
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/NEWS b/NEWS
deleted file mode 100644
index 29bee356..00000000
--- a/NEWS
+++ /dev/null
@@ -1,691 +0,0 @@
-Version 0.97:
-
-Fix compiling with gcc 4.0.
-Some tests called elflint without appropriate LD_LIBRARY_PATH.
-
-Version 0.96:
-
-Fix support for platforms with lib64.
-
-Version 0.95:
-
-libebl: add ppc and ppc64 support
-
-readelf: fix minimal memory leak.
-
-Add support to compile with mudflap.
-
-Modernize configure.ac. Move scripts in config subdir.
-
-Modernize *-po directory infrastructure.
-
-libelf: Add gelf_getlib and gelf_update_lib
-
-readelf: print liblist sections
-
-Version 0.94:
-
-Fix some minimal build problems.
-
-Version 0.93:
-
-ibdw: tons of new functionality and bug fixes. Several interface changes.
-
-readelf: use libdw now.
-
-libdwarf: removed completely.
-
-Version 0.92:
-
-configuration changes.
-
-Version 0.91:
-
-libdw: fix memory handling. Implement source line handling.
-nm: use libdw instead of libdwarf.
-libelf: change to GPL from OSL1 for now.
-
-Version 0.90:
-
-libebl: Recognize a few more section types and dynamic tags and return
-approriate strings.
-
-Version 0.89:
-
-strip: fix overwriting of symbol table in input file.
-
-Version 0.88:
-
-libebl: Add some ia64 bits.
-
-Version 0.87:
-
-Bug fixes for big endian and some 64-bit machines.
-
-Version 0.86:
-
-strip: fix handling of Alpha and s390x which use incorrect hash bucket sizes.
-
-ld: tons of changes, moving towards usability.
-
-Version 0.85:
-
-strip: update section group symbol index if the associated symbol table changed
-
-libelf: fix two problems with generating output not via mmap
-
-elflint: add probably 10-15 more tests
-libebl: add support for some of the new tests
-
-ld: gazillion changes
-
-Version 0.84:
-
-elflint: deal with .rel.dyn section. Fix a problem with rela platforms.
-Handle PT_GNU_STACK. Change to write messages to stdout.
-
-readelf: fix a problem with version information in the symbol table output.
-
-strip: update all version symbol table entries
-
-Version 0.83:
-
-size: fix a warning
-
-strip: last changed caused problems when the symbol table is before the
-relocation section. Fixed. This fix also improved the asymptotic
-behavior if many symbol table sections are present.
-
-Version 0.82:
-
-Run strip tests with the correct libelf and libebl.
-
-libelf: fix bug in verneed byte order changing code.
-
-Version 0.81:
-
-strip: Remove unused symbol table entries. This might require updating
-various other sections.
-
-Version 0.80:
-
-Fix some libelf problems with ET_REL files.
-
-Version 0.79:
-
-More warning changes, mainly by jbj.
-
-libdw: yet more new code. dwarf_child and dwarf_sibling should now actually
-work.
-
-Version 0.78:
-
-libdw: 10+ new functions. get-pubnames2 works now fully. Almost all the
-code needed for nm is in place.
-
-Version 0.77:
-
-cleanups to compile cleanly with gcc 3.3 and -Werror.
-
-libdw: some new code.
-
-Version 0.76:
-
-libebl: Fix last patch to recognize relocation sections. We must not
-use the name.
-
-Version 0.75:
-
-libebl: .debug_ranges is a DWARF 3 debug section
-libebl: recognize relocation sections for debug section
-Patches by Jakub Jelinek.
-
-Version 0.74:
-
-Cleanups and more SPARC support by Tom Callaway <tcallaway@redhat.com>.
-
-Version 0.73:
-
-64-bit cleanups for the programs.
-
-Version 0.72:
-
-libelf: and yet more fun with endian tranformation at output time.
-
-Version 0.71:
-
-libelf: more fun with endian tranformation at output time. Add test for it.
-
-Version 0.70:
-
-libelf: Two little bugs left from previous patch to handle section output
-order.
-
-libelf: add unlikely in some more places.
-
-Version 0.69:
-
-libelf: fix output routines to handle case where section indeces and
-ordre in the output file don't match correctly. Patch by Jakub.
-
-elflint: fix test of note section content for 64-bit platforms and files
-with different byte order.
-
-Version 0.68:
-
-libebl: Fix SH_ENTSIZE_HASH definition (patch by Jakub)
-
-Version 0.67:
-
-libelf: correct mistake in error string handling.
-
-libelf: Implement ELF_F_PERMISSIVE.
-strip: Implement --permissive option.
-
-Version 0.66:
-
-strip: Implement -g option.
-
-libelf: Handle broken hash table entry sizes.
-
-libebl: New function ebl_debugscn_p. Use it where appropriate.
-
-Version 0.65:
-
-libelf: Use correct file size for NOBITS section with ELF_F_LAYOUT set
-
-Version 0.64:
-
-libelf: Make error handling more robust.
-libelf: Use TLS in error handler if configured with --enable-tls
-
-tests: input files are now distributed, not uuencoded in the shell scripts
-
-libdw: implement error handling, dwarf_get_pubnames
-
-Version 0.63:
-
-Build (incomplete) libdw.
-
-Version 0.62:
-
-Get rid of libtool.
-
-Version 0.61:
-
-Fix URL of OSL.
-
-Version 0.60:
-
-libebl: Handle .gnu.warning.* sections correctly.
-
-size: Implement -t option.
-
-libebl: Add IA-64 support.
-libebl: Update SH relocations.
-libebl: Add Alpha support.
-libebl: Add Arm support.
-libebl: Add support for all currently known architecture to the loader.
-
-Version 0.59:
-
-nm: Implement -S option. Correct portable output format. Implement -s option.
-
-libelf: Take offset of archive into account in elf_rand.
-
-Version 0.58:
-
-strip: fix handling of ET_REL files.
-Add tests for strip.
-
-Version 0.57:
-
-strip: respect layout of input file
-
-Version 0.56:
-
-strip: handle files with large number of sections.
-
-Version 0.55:
-
-libelf: quite a few bug fixes by Alex Larsson.
-
-strip: implement -f option to place stripped sections into a separate
-file. By Alex Larsson.
-
-Version 0.54:
-
-strip: don't let STT_SECTION symbols keeps sections from being removed
-
-elflint: local symbols are allowed in .dynsym
-elflint: special case .rel.dyn a bit
-
-Version 0.53:
-
-elflint: check types and flags of special sections defined in gABI
-
-libebl: add x86-64 support
-
-Version 0.52:
-
-Start improvement of debug info handling in nm.
-
-libasm: implement asm_adduleb128 and asm_addsleb128 and a test for them
-
-Version 0.51:
-
-Fix build on 64-bit platforms.
-
-Version 0.50:
-
-nm: print file/line number also for local symbols
-
-use versions scripts not libtool's useless -export-symbols option
-
-Version 0.49:
-
-Update to autoconf 2.54 and automake 1.7.
-
-elflint: check note sections
-
-libdwarf: a number of bug fixes
-
-readelf: print .debug_info section content
-
-dwarf.h: Update from draft 7
-
-Version 0.48:
-
-libcpu: beginning
-
-libelf: new function to read parts of the ELF file
-
-libebl: support for note section handling
-
-readelf: dump note sections
-
-Version 0.47:
-
-libelf: fix little new section-handling related bugs in elf_getshstrndx
-and elf_nextscn
-
-elflint: tests for mandatory content of dynamic section
-
-libasm: better handling of absolute symbols
-
-Version 0.46:
-
-libasm: rewrite to store Elf_Scn* instead of indices
-
-nm: finish many-section support
-
-nm: use debug in to print file/line info in sysv format
-
-libdwarf: fix a few bugs in DIE handling
-
-Version 0.45:
-
-libelf: major rewrite to keep Elf_Scn references valid until elf_end
-
-Version 0.44:
-
-libasm: Add support for bss, ABS, and COM sections.
-
-libebl: ebl_section_name takes now two index arguments to distinguish
-between special sections and extended sections
-
-Version 0.43:
-
-General: fix a few problem gcc 3.1 had with the code.
-
-libelf: implement {gelf,elf32,elf64}_checksum
-
-libelf: optimze DSO: fewer relocations, fewer PLTs
-
-add msg_tst test
-
-ld: use correct section header string table index; write correct index
-
-add dependencies for *.sym files
-
-Version 0.42:
-
-libelf: add elf_getshnum and elf_getshstrndx
-
-libebl: update section type name function
-
-elflint: tons of fixes wrt large number of sections. New tests in this area.
-Same amount of other bug fixes.
-
-size, strip, nm: better support for large number of sections. Including
-using correct section header string table
-
-libasm: correctly create data structures for large number of sections
-
-new tests asm-tst4 and asm-tst5 to check large number of sections
-
-libasm: implement section group generation
-
-elflint: more tests on section groups. Improve performance on existing
-section group tests
-
-Version 0.41:
-
-ld: add undefined symbols to dynamic symbol table if --export-dynamic is
-not given
-
-ld: fix value of e_entry
-
-Version 0.40:
-
-elflint: print section names in error messages
-
-elflint: mustn't warn about multiple DT_NULL
-
-ld: don't emit all symbols if --export-dynamic is not given
-
-ld: correct compute symbol address in output file (section index was off by 1)
-
-ld: generate correct version info in dynsym without --export-dynamic and
-in symtab
-
-Version 0.39:
-
-Fix check of various e_*size entries in elflint.
-
-Handle text output in asm_newsym.
-
-Finish checks in asm-tst3.
-
-Version 0.38:
-
-Update to autoconf 2.53, automake 1.6, gettext 0.11+.
-
-Introduce *.sym files to restrict export from DSOs.
-
-Use attribute_hidden and internal_function to optimize DSO code.
-
-Add TLS definitions in elf.h and handle them in readelf.
-
-Fix bug in verdef section generation in ld.
-
-Add initial libasm code.
-
-Version 0.37:
-
-Implement better hash size optimization heuristic in ld. It uses a formula
-taking number of tests into account.
-
-Lots of small bug fixes.
-
-Improve readelf output format. Respect various sh_link/sh_info values.
-Correctly print versioning information for symbol tables.
-
-Version 0.36:
-
-Implement preprocessing of linker script. Recognize -z combreloc.
-
-Version 0.35:
-
-Implement -z ignore|record for ld.
-
-Implement creating of .gnu.version_r and .gnu.version sections. The
-.gnu.version does not yet contain correct info for defined and versioned
-symbols (means .gnu.version_d is not yet implemented).
-
-Implement gelf_update_* functions to create versioning data.
-
-Version 0.34:
-
-Add DT_RUNPATH/DT_RPATH entries to dynamic section. Create .plt and
-.rel.plt sections (completely). Add support for all four PLT related
-dynamic section entries. Add callback function for PLT creation.
-
-More tests in elflint. Add support for very strict checking which for
-now flags level 2 (deprecated features) usage.
-
-Version 0.33:
-
-Create dynamic symbol table, dynamic string table, and hash table to ld.
-
-Add hash table histogram support to readelf.
-
-Version 0.32:
-
-more work on elflint
-
-ld now creates the dynamic section and references it. Start adding entries
-to dynamic section.
-
-Version 0.31:
-
-Start implementing elflint.
-
-Version 0.30:
-
-Fix handling of NOBITS sections in elf_getdata.
-
-Start implementing generation of executables and DSOs in ld.
-Generation of program header mostly done. Address computation done.
-Extension of linker script syntax.
-
-Various cleanups.
-
-Implement section group handling in readelf.
-
-Version 0.29:
-
-Implement section groups. This involved a lot of code moving. The
-new code is entirely untested since gas/gcc are currently not able to
-create section groups. ld works fine on files without section groups.
-
-Version 0.28:
-
-Fix problem with adding more section in elf_newscn. The section pointers
-for the data buffers wasn't adjusted.
-
-Fix elf_getdata with nonzero second parameter. Correctly handle creation
-of internal data buffer for machines without unaligned access.
-
-Version 0.27:
-
-Start adding support to selectively add sections. Includes support for
-section groups.
-Add --gc-sections/--no-gc-sections options.
-Add general section merging support.
-
-Fix a bug in section group support in strip.
-
-Fix some potential problems with hash value in dynamic hash implementation.
-
-Version 0.26:
-
-section merging works in ld.
-
-Version 0.25:
-
-Actually create data structures from version map file and use it to hide
-symbols in ld.
-
-Implement -s -s for ld.
-
-Version 0.24:
-
-Improve relocation table output in readelf. Avoid some crashes.
-Finish many section handling in readelf.
-
-Finish: finish implementation of ld -r. At least some simple tests pass.
-
-Version 0.23:
-
-Fix a number of errors in ELF_C_WRITE handling.
-
-Almost finished implementation of ld -r. The data sections are all copied.
-Handling of symbol tables is missing.
-
-Version 0.22:
-
-Handle DSO and archive input files correctly if -r option is given.
-
-Gracefully deal with no phdr in new file in libelf.
-Fix various small error handling problems.
-Don't mmap file for output unless the command says so.
-
-Add code to create ELF section header table to ld finalize routines.
-
-Version 0.21:
-
-Fix some problems with recursive handling of archives in libelf.
-
-Improve messages printed by nm.
-
-Add symbol binding name handling to libebl. Fix section name handling in
-libebl.
-
-readelf and nm use more libebl functions.
-
-Handle XINDEX correctly in nm and string.
-
-Add first machine ld backend library (i386).
-Use it. Recognize -r and --shared. Avoid using -lxxx parameters for -r.
-Create ELF header in output file. Change mode of output file according to
-output file type. Reorganize callback initialization in ld.
-
-Version 0.20:
-
-Fix some memory leaks in libelf.
-
-Version 0.19:
-
-Implement reading version script. Both inside linker scripts and via the
---version-script command line parameter. Uses the same code.
-What remains to be done is to implement a data structure which allows
-efficient matching against the version names to decide which pattern
-matches.
-
-Beginning of output generation and output writing functions.
-
-Version 0.18:
-
-Finish implementation for DSO input file handling. Implement rpath, runpath,
-and LD_LIBRARY_PATH handling.
-
-Version 0.17:
-
-make handling of e_shnum overflow in libelf standard conforming
-
-ld now actually can handle DSOs in linker scripts. Handling of DT_RUNPATH,
-DT_RPATH, -rpath, -rpath-link still remains to be implemented.
-
-fix handling of -L parameters. Make actual use of the default_paths element.
-
-make re-definition of symbols in and from DSO compatible with existing linker
-
-Version 0.16:
-
-more work on assigning input sections to output sections.
-
-Add gelf_xlatetof and gelf_xlatetom which were accidently left out.
-
-Fix memory handling of section headers.
-
-Version 0.15:
-
-Add many-section support to ld. Add various new command line parameters.
-Allow pagesize to be specified in linker script or on the command line.
-Collect input sections in list for the output section according to the rules
-specified in the linker script.
-
-Version 0.14:
-
-Fix some problems in the internal list handling which had the result
-that we didn't look for some of the unresolved symbols.
-
-Free some memory if we know we don't need it anymore.
-
-Optimize the list of unresolved symbols. Throw out symbols which are
-meanwhile resolved.
-
-Version 0.13:
-
-Got file reading correct now. The files are all read while parsing
-the parameters. No creating of data structures to describe the linker
-command line. The symbol table is built up while reading the files.
-DSOs are handled now. -( -) handling is optimized.
-
-Version 0.12:
-
-Linker read linker scripts everywhere. Handles --whole-archive. Recognizes
---dynamic and --static. Collects defined and undefined symbols. Recognizes
-conflicts.
-
-libebl now defines functions to call the callbacks. Add generic name handling
-in these new functions. Remove the code from readelf and call the new
-functions.
-
-Version 0.11:
-
-Start of linker. Basic argument parsing, finding of input files,
-linker script reading.
-
-Version 0.10:
-
-Implement dwarf_get_fde_n(), dwarf_get_abbrev(), dwarf_get_abbrev_tag(),
-dwarf_get_abbrev_code(), dwarf_get_abbrev_children_flag(),
-dwarf_get_abbrev_entry(), dwarf_get_fde_at_pc(), and tests for it.
-
-Version 0.9:
-
-Implement dwarf_get_fde_list_eh(), dwarf_get_cie_of_fde(),
-dwarf_get_fde_range(), dwarf_get_cie_info(), dwarf_get_fde_instr_bytes(),
-and tests for them.
-
-Version 0.8:
-
-Make handling of binaries in other byte order work and add tests for it.
-
-Version 0.7:
-
-Implement dwarf_get_aranges(), dwarf_get_arange(), dwarf_get_cu_die_offset(),
-dwarf_get_arange_info(), and tests for them.
-
-Version 0.6:
-
-Implement dwarf_get_global(), dwarf_globname(), dwarf_global_die_offset(),
-dwarf_global_cu_offset(), dwarf_global_name_offsets(), and tests for them
-
-Version 0.5:
-
-Implemented dwarf_srclines(), dwarf_srcfiles(), dwarf_linebeginstatement(),
-dwarf_lineendsequence(), dwarf_lineno(), dwarf_lineaddr(), dwarf_lineoff(),
-dwarf_linesrc(), dwarf_lineblock(), dwarf_lineprologueend(),
-dwarf_lineepiloguebegin(), and tests for them.
-
-Version 0.4:
-
-Implemented dwarf_loclist().
-
-Version 0.3:
-
-Implemented dwarf_dieoffset(), dwarf_die_CU_offset(), dwarf_diename() and
-tests.
-
-Implemented dwarf_attrlist(), dwarf_hasattr(), dwarf_attr(), dwarf_lowpc(),
-dwarf_highpc(), dwarf_bytesize(), dwarf_bitsize(), dwarf_bitoffset(),
-dwarf_srclang(), dwarf_arrayorder(), dwarf_hasform(), dwarf_whatform(),
-dwarf_whatattr(), dwarf_formref(), dwarf_global_formref(), dwarf_formaddr(),
-dwarf_formflag(), dwarf_formudata(), dwarf_formsdata(), dwarf_formblock,
-dwarf_formstring() and tests for them.
-
-Version 0.2:
-
-Implemented dwarf_offdie()), dwarf_tag(), dwarf_dieoffset(),
-dwarf_die_CU_offset(), dwarf_diename() and tests for them.
-
-Version 0.1:
-
-First libdwarf functions work.
-
-Version 0.0:
-
-libelf and parts of libebl are done.
diff --git a/NOTES b/NOTES
deleted file mode 100644
index 4f06b8d2..00000000
--- a/NOTES
+++ /dev/null
@@ -1,73 +0,0 @@
-- old GNU ld's behavior wrt DSOs seems to be severely broken.
-
- y.o reference foo()
- y1.o defines foo(), references bar()
- y2.o defines bar()
- libbar.so defines bar()
-
- Running
-
- gcc -o y y.o -lbar y1.o y2.o
-
- uses the bar() definition from libbar.so and does not mention the definition
- in y2.o at all (no duplicate symbol message). Correct is to use the
- definition in y2.o.
-
-
- y.o reference foo()
- y1.o defines foo(), references bar()
- y2.o in liby2.a defines bar()
- libbar.so defines bar()
-
- Running
-
- gcc -o y y.o -lbar y1.o -ly3
-
- has to use the definition in -lbar and not pull the definition from liby3.a.
-
-
-- the old linker follows DT_NEEDED entries and adds the objects referenced
- this way which define a symbol which is needed as a DT_NEEDED to the
- generated binary. This is wrong since the DT_NEEDED changes the search
- path in the object (which is breadth first).
-
-
-- the old linker supported extern "C++", extern "java" in version scripts.
- I believe this implementation is severly broken and needs a redesign
- (how do wildcards work with these languages*?). Therefore it is left
- out for now.
-
-
-- what should happen if two sections in different files with the same
- name have different types and/or the flags are different
-
-
-- section names in input files are mostly irrelevant. Exceptions:
-
- .comment/SHT_PROGBITS in strip, ld
-
- .debug \
- .line |
- .debug_srcinfo |
- .debug_sfnames |
- .debug_aranges |
- .debug_pubnames |
- .debug_info |
- .debug_abbrev |
- .debug_line |
- .debug_abbrev > DWARF sections in ld
- .debug_line |
- .debug_frame |
- .debug_str |
- .debug_loc |
- .debug_macinfo |
- .debug_weaknames |
- .debug_funcnames |
- .debug_typenames |
- .debug_varnames /
-
- Sections created in output files follow the naming of special section
- from the gABI.
-
- In no place is a section solely indentified by its name. Internal
- references always use the section index.
diff --git a/README b/README
deleted file mode 100644
index afc94077..00000000
--- a/README
+++ /dev/null
@@ -1,6 +0,0 @@
-Fundamental design decision:
-
-- the sizes of external and internal types are assumed to be the same.
- This leaves byte ordering aside. While assuming this the code can be
- greatly simplified and speed increases. Since no change violating this
- assumption is in sight this is believed to be a worthwhile optimization.
diff --git a/THANKS b/THANKS
deleted file mode 100644
index 543436c2..00000000
--- a/THANKS
+++ /dev/null
@@ -1,5 +0,0 @@
-At least the following have submitted valuable patches:
-
-Jeff Johnson building. rpm wrestling
-Alexander Larsson separate debug info
-Jakub Jelinek bug fixes, testing
diff --git a/TODO b/TODO
deleted file mode 100644
index e2378ab8..00000000
--- a/TODO
+++ /dev/null
@@ -1,164 +0,0 @@
- ToDo list for elfutils -*-outline-*-
- ----------------------
-
-Time-stamp: <2003-08-07 12:52:49 drepper>
-
-* mkinstalldirs
-
- Remove everywhere. Use mkdir -p.
-
-* libelf:
-
-** verify section
-
- Currently the elf_update function trusts the user blindly if the
- ELF_F_LAYOUT flag is set. This is OK if the data is prepared by a
- ELF_C_NULL call but not if the user prepared the data herself
-
-** break out archive handling from elf_begin
-
- The handling of archives (especially of the symbol tables) must be
- broken out of elf_begin. There are several different forms of
- archives and only when having the archive handling separately this
- remains maintainable.
-
-
-* libdwarf
-
-** Should we do more error checking?
-
- Most functions don't check whether they get a NULL value passed for
- a pointer argument. It could be argued that this is OK since it's
- a bug inthe program. But perhaps one could catch the case and return
- an error which would allow the program using libdwarf to have fewer
- places with error checking.
-
-** More memory access checks needed
-
- All accesses to the debug sections should make sure the offsets are
- valid. This is currently especially a problem with leb128 accesses.
-
-** Low level macro information operations
-
- in 5.11.3 are not implemented. gcc currently does not emit this
- information so I cannot test it.
-
-** Rename dwarf_getabbrev
-
-** dwarf_loclist()
-
- This function and its interface seem to be misdesigned. The specification
- is unclear and its changed between v2 and v2.1. Other implementation
- implement even different behavior.
-
-
-* nm:
-
-** add demangler support
-
- Use demangler from libiberty.
-
-** add support to read debugging symbols
-
- Implement -l option for BSD and POSIX format
-
-
-* strip:
-
-** support SHT_SYMTAB_SHNDX
-
- should be removed if not needed anymore
-
-* ld:
-
-** sanity check .rel sh_info content
-
- the sh_info of all .rel sections with the same name must point to
- sections which also have the same name
-
-** use ld.so.conf
-
- to locate shared libraries also use /etc/ld.so.conf
-
-** handle object files for different architectures
-
- ld.so is expected to ignore object files for different architectures and
- continue looking for a matching file (e.g., ignore 32-bit binaries on
- 64-bit platforms and vice versa). We probably need the same in ld.
-
-** reuse after elf_end
-
- Some files are closed using elf_end. They are removed from memory only
- if no reference is left (especially for archives this is a problem).
- The old mapping should be reused in that case. The problem is worse
- for files which are not mapped read-only (archives again).
-
-
-** size for STT_SECTION entries
-
- The STT_SECTION entries have zero for the size but can easily get
- the size of the section.
-
-* elflint
-
-** additional checks
-
- 1st GOT entry == _DYNAMIC
-
- if TEXTREL check whether any relocation touches RO segment
-
- if TEXTREL not set check that no relocation touches RO segment
-
- check versioning info:
-
- always BASE in verdef
- sh_size/sh_entsize matches last offset != 0
-
- check whether any relocation is for a merge-able section
-
-** possibly missing tests
-
- at most one extended section index table for a symtab
-
- no extended section index table != ET_REL
-
- no extended section index table for SHT_DYNSYM
-
-
-* mcs
-
- Sun has it. Can modify sections which are not in segments.
-
- -a string
- Append string to the comment section of the ELF object
- files. If string contains embedded blanks, it must be
- enclosed in quotation marks.
-
- -c Compress the contents of the comment section of the
- ELF object files. All duplicate entries are removed.
- The ordering of the remaining entries is not dis-
- turbed.
-
- -d Delete the contents of the comment section from the
- ELF object files. The section header for the comment
- section is also removed.
-
- -n name
- Specify the name of the comment section to access if
- other than .comment. By default, mcs deals with the
- section named .comment. This option can be used to
- specify another section. mcs can take multiple -n
- options to allow for specification of multiple sec-
- tion comments.
-
- -p Print the contents of the comment section on the stan-
- dard output. Each section printed is tagged by the
- name of the file from which it was extracted, using
- the format file[member_name]: for archive files and
- file: for other files.
-
- -V Print on standard error the version number of mcs.
-
-Local Variables:
-eval:(hide-body)
-End:
diff --git a/aclocal.m4 b/aclocal.m4
deleted file mode 100644
index 3d3e8c7f..00000000
--- a/aclocal.m4
+++ /dev/null
@@ -1,1059 +0,0 @@
-# generated automatically by aclocal 1.9.2 -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-# Free Software Foundation, Inc.
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-# -*- Autoconf -*-
-# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-# Generated from amversion.in; do not edit by hand.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION so it can be traced.
-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
- [AM_AUTOMAKE_VERSION([1.9.2])])
-
-# AM_AUX_DIR_EXPAND
-
-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 6
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])
-AC_SUBST([$1_FALSE])
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# serial 7 -*- Autoconf -*-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
- [$1], CXX, [depcc="$CXX" am_compiler_list=],
- [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
- [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_$1_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
- fi
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- case $depmode in
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- none) break ;;
- esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
- if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_$1_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[ --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors])
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-#serial 2
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # So let's grep whole file.
- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
-done
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each `.P' file that we will
-# need in order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# This macro actually does too much some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 11
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.58])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
- test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
-AM_PROG_INSTALL_SH
-AM_PROG_INSTALL_STRIP
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES(CC)],
- [define([AC_PROG_CC],
- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES(CXX)],
- [define([AC_PROG_CXX],
- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
-])
-])
-
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $1 | $1:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-
-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
-AC_SUBST(install_sh)])
-
-# -*- Autoconf -*-
-# Copyright (C) 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 1
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-
-# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 4
-
-# AM_PROG_LEX
-# -----------
-# Autoconf leaves LEX=: if lex or flex can't be found. Change that to a
-# "missing" invocation, for better error output.
-AC_DEFUN([AM_PROG_LEX],
-[AC_PREREQ(2.50)dnl
-AC_REQUIRE([AM_MISSING_HAS_RUN])dnl
-AC_REQUIRE([AC_PROG_LEX])dnl
-if test "$LEX" = :; then
- LEX=${am_missing_run}flex
-fi])
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 2
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo done
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
- am__include=include
- am__quote=
- _am_result=GNU
-fi
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
- am__include=.include
- am__quote="\""
- _am_result=BSD
- fi
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# -*- Autoconf -*-
-
-
-# Copyright (C) 1997, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 3
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- AC_MSG_WARN([`missing' script is too old or missing])
-fi
-])
-
-# AM_PROG_MKDIR_P
-# ---------------
-# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
-
-# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
-# created by `make install' are always world readable, even if the
-# installer happens to have an overly restrictive umask (e.g. 077).
-# This was a mistake. There are at least two reasons why we must not
-# use `-m 0755':
-# - it causes special bits like SGID to be ignored,
-# - it may be too restrictive (some setups expect 775 directories).
-#
-# Do not use -m 0755 and let people choose whatever they expect by
-# setting umask.
-#
-# We cannot accept any implementation of `mkdir' that recognizes `-p'.
-# Some implementations (such as Solaris 8's) are not thread-safe: if a
-# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
-# concurrently, both version can detect that a/ is missing, but only
-# one can create it and the other will error out. Consequently we
-# restrict ourselves to GNU make (using the --version option ensures
-# this.)
-AC_DEFUN([AM_PROG_MKDIR_P],
-[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- # We used to keeping the `.' as first argument, in order to
- # allow $(mkdir_p) to be used without argument. As in
- # $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined. However this is wrong
- # for two reasons:
- # 1. if the package is installed by a user who cannot write `.'
- # make install will fail,
- # 2. the above comment should most certainly read
- # $(mkdir_p) $(DESTDIR)$(somedir)
- # so it does not work when $(somedir) is undefined and
- # $(DESTDIR) is not.
- # To support the latter case, we have to write
- # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
- # so the `.' trick is pointless.
- mkdir_p='mkdir -p --'
-else
- # On NextStep and OpenStep, the `mkdir' command does not
- # recognize any option. It will interpret all options as
- # directories to create, and then abort because `.' already
- # exists.
- for d in ./-p ./--version;
- do
- test -d $d && rmdir $d
- done
- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
- if test -f "$ac_aux_dir/mkinstalldirs"; then
- mkdir_p='$(mkinstalldirs)'
- else
- mkdir_p='$(install_sh) -d'
- fi
-fi
-AC_SUBST([mkdir_p])])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 2
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# ------------------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-#
-# Check to make sure that the build environment is sane.
-#
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 3
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- rm -f conftest.file
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT(yes)])
-
-# AM_PROG_INSTALL_STRIP
-
-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# One issue with vendor `install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 1
-
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
-m4_if([$1], [v7],
- [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
- [m4_case([$1], [ustar],, [pax],,
- [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar;
- do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
-done
-rm -rf conftest.dir
-
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([m4/gettext.m4])
-m4_include([m4/iconv.m4])
-m4_include([m4/lib-ld.m4])
-m4_include([m4/lib-link.m4])
-m4_include([m4/lib-prefix.m4])
-m4_include([m4/progtest.m4])
diff --git a/autom4te.cache/output.0 b/autom4te.cache/output.0
deleted file mode 100644
index 76f8f33e..00000000
--- a/autom4te.cache/output.0
+++ /dev/null
@@ -1,7272 +0,0 @@
-@%:@! /bin/sh
-@%:@ From configure.ac Revision: 1.30 .
-@%:@ Guess values for system-dependent variables and create Makefiles.
-@%:@ Generated by GNU Autoconf 2.59 for Red Hat elfutils 0.97.
-@%:@
-@%:@ Report bugs to <http://bugzilla.redhat.com/bugzilla/>.
-@%:@
-@%:@ Copyright (C) 2003 Free Software Foundation, Inc.
-@%:@ This configure script is free software; the Free Software Foundation
-@%:@ gives unlimited permission to copy, distribute and modify it.
-@%:@
-@%:@ Copyright (C) 1996-2003, 2004 Red Hat, Inc.
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete. It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME='Red Hat elfutils'
-PACKAGE_TARNAME='elfutils'
-PACKAGE_VERSION='0.97'
-PACKAGE_STRING='Red Hat elfutils 0.97'
-PACKAGE_BUGREPORT='http://bugzilla.redhat.com/bugzilla/'
-
-ac_unique_file="libelf/libelf.h"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP MKINSTALLDIRS MSGFMT GMSGFMT XGETTEXT MSGMERGE USE_NLS LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB RANLIB ac_ct_RANLIB YACC LEX LEXLIB LEX_OUTPUT_ROOT LOCALEDIR DATADIRNAME NATIVE_LD_TRUE NATIVE_LD_FALSE base_cpu MUDFLAP_TRUE MUDFLAP_FALSE LIB@&t@OBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_option in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- eval "enable_$ac_feature=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_$ac_feature='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "with_$ac_package='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package | sed 's/-/_/g'`
- eval "with_$ac_package=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; }
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
- ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
- eval "$ac_envvar='$ac_optarg'"
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$0" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
- { (exit 1); exit 1; }; }
- else
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
- { (exit 1); exit 1; }; }
- fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
- { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
- { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures Red Hat elfutils 0.97 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
- cat <<_ACEOF
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --infodir=DIR info documentation [PREFIX/info]
- --mandir=DIR man documentation [PREFIX/man]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of Red Hat elfutils 0.97:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-tls enable use of thread local storage
- --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors
- --disable-nls do not use Native Language Support
- --disable-largefile omit support for large files
- --disable-generic do not build generic linker
- --enable-mudflap build binaries with mudflap instrumentation
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-gnu-ld assume the C compiler uses GNU ld default=no
- --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib
- --without-libiconv-prefix don't search for libiconv in includedir and libdir
- --with-libintl-prefix=DIR search for libintl in DIR/include and DIR/lib
- --without-libintl-prefix don't search for libintl in includedir and libdir
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
- headers in a nonstandard directory <include dir>
- CPP C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <http://bugzilla.redhat.com/bugzilla/>.
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- ac_popdir=`pwd`
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d $ac_dir || continue
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
- cd $ac_dir
- # Check for guested configure; otherwise get Cygnus style configure.
- if test -f $ac_srcdir/configure.gnu; then
- echo
- $SHELL $ac_srcdir/configure.gnu --help=recursive
- elif test -f $ac_srcdir/configure; then
- echo
- $SHELL $ac_srcdir/configure --help=recursive
- elif test -f $ac_srcdir/configure.ac ||
- test -f $ac_srcdir/configure.in; then
- echo
- $ac_configure --help
- else
- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi
- cd "$ac_popdir"
- done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
- cat <<\_ACEOF
-Red Hat elfutils configure 0.97
-generated by GNU Autoconf 2.59
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-
-Copyright (C) 1996-2003, 2004 Red Hat, Inc.
-_ACEOF
- exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by Red Hat elfutils $as_me 0.97, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-@%:@@%:@ --------- @%:@@%:@
-@%:@@%:@ Platform. @%:@@%:@
-@%:@@%:@ --------- @%:@@%:@
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-@%:@@%:@ ----------- @%:@@%:@
-@%:@@%:@ Core tests. @%:@@%:@
-@%:@@%:@ ----------- @%:@@%:@
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
- 2)
- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
- # Get rid of the leading space.
- ac_sep=" "
- ;;
- esac
- done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- cat <<\_ASBOX
-@%:@@%:@ ---------------- @%:@@%:@
-@%:@@%:@ Cache variables. @%:@@%:@
-@%:@@%:@ ---------------- @%:@@%:@
-_ASBOX
- echo
- # The following way of writing the cache mishandles newlines in values,
-{
- (set) 2>&1 |
- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- sed -n \
- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
- ;;
- *)
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-}
- echo
-
- cat <<\_ASBOX
-@%:@@%:@ ----------------- @%:@@%:@
-@%:@@%:@ Output variables. @%:@@%:@
-@%:@@%:@ ----------------- @%:@@%:@
-_ASBOX
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-@%:@@%:@ ------------- @%:@@%:@
-@%:@@%:@ Output files. @%:@@%:@
-@%:@@%:@ ------------- @%:@@%:@
-_ASBOX
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- cat <<\_ASBOX
-@%:@@%:@ ----------- @%:@@%:@
-@%:@@%:@ confdefs.h. @%:@@%:@
-@%:@@%:@ ----------- @%:@@%:@
-_ASBOX
- echo
- sed "/^$/d" confdefs.h | sort
- echo
- fi
- test "$ac_signal" != 0 &&
- echo "$as_me: caught signal $ac_signal"
- echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core &&
- rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
- ' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
- { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . $cache_file;;
- *) . ./$cache_file;;
- esac
- fi
-else
- { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val="\$ac_cv_env_${ac_var}_value"
- eval ac_new_val="\$ac_env_${ac_var}_value"
- case $ac_old_set,$ac_new_set in
- set,)
- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
-echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
-echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_aux_dir=
-for ac_dir in config $srcdir/config; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f $ac_dir/shtool; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in config $srcdir/config" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in config $srcdir/config" >&2;}
- { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
- ac_config_files="$ac_config_files config/Makefile"
-
-
-
-
-
-am__api_version="1.9"
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
- ./ | .// | /cC/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- done
- done
- ;;
-esac
-done
-
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL=$ac_install_sh
- fi
-fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo "$as_me:$LINENO: checking whether build environment is sane" >&5
-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- rm -f conftest.file
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" >&5
-echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
-Check your system clock" >&5
-echo "$as_me: error: newly created file is older than distributed files!
-Check your system clock" >&2;}
- { (exit 1); exit 1; }; }
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-test "$program_prefix" != NONE &&
- program_transform_name="s,^,$program_prefix,;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$,$program_suffix,;$program_transform_name"
-# Double any \ or $. echo might interpret backslashes.
-# By default was `s,x,x', remove it if useless.
-cat <<\_ACEOF >conftest.sed
-s/[\\$]/&&/g;s/;s,x,x,$//
-_ACEOF
-program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-rm conftest.sed
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
-echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
-fi
-
-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- # We used to keeping the `.' as first argument, in order to
- # allow $(mkdir_p) to be used without argument. As in
- # $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined. However this is wrong
- # for two reasons:
- # 1. if the package is installed by a user who cannot write `.'
- # make install will fail,
- # 2. the above comment should most certainly read
- # $(mkdir_p) $(DESTDIR)$(somedir)
- # so it does not work when $(somedir) is undefined and
- # $(DESTDIR) is not.
- # To support the latter case, we have to write
- # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
- # so the `.' trick is pointless.
- mkdir_p='mkdir -p --'
-else
- # On NextStep and OpenStep, the `mkdir' command does not
- # recognize any option. It will interpret all options as
- # directories to create, and then abort because `.' already
- # exists.
- for d in ./-p ./--version;
- do
- test -d $d && rmdir $d
- done
- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
- if test -f "$ac_aux_dir/mkinstalldirs"; then
- mkdir_p='$(mkinstalldirs)'
- else
- mkdir_p='$(install_sh) -d'
- fi
-fi
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_AWK+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AWK="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- echo "$as_me:$LINENO: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$AWK" && break
-done
-
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.make <<\_ACEOF
-all:
- @echo 'ac_maketemp="$(MAKE)"'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftest.make
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- SET_MAKE=
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
- test -f $srcdir/config.status; then
- { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='elfutils'
- VERSION='0.97'
-
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-@%:@define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- STRIP=$ac_ct_STRIP
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility.
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
-
-
-
-
-
-
-
- ac_config_files="$ac_config_files Makefile"
-
- ac_config_headers="$ac_config_headers config.h"
-
-
-case m4 in
- [\\/]* | ?:[\\/]* ) ac_macro_dir=m4 ;;
- *) ac_macro_dir=$srcdir/m4 ;;
-esac
-if test -d "$ac_macro_dir"; then :
-else
- { { echo "$as_me:$LINENO: error: cannot find macro directory \`m4'" >&5
-echo "$as_me: error: cannot find macro directory \`m4'" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
- ac_config_files="$ac_config_files m4/Makefile"
-
-
- ac_config_files="$ac_config_files elfutils.spec:config/elfutils.spec.in"
-
-
-
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
-if test "${ac_cv_build+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
- ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
- { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
- { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
-build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
-if test "${ac_cv_host+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
- ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
-host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-
-# Check whether --enable-tls or --disable-tls was given.
-if test "${enable_tls+set}" = set; then
- enableval="$enable_tls"
- cat >>confdefs.h <<\_ACEOF
-@%:@define USE_TLS 1
-_ACEOF
-
-fi;
-
-
-
-ALL_LINGUAS=
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $@%:@ != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$ac_ct_CC" && break
-done
-
- CC=$ac_ct_CC
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
- "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
- (eval $ac_link_default) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Find the output, starting from the most likely. This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
- ;;
- conftest.$ac_ext )
- # This is the source file.
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- # FIXME: I believe we export ac_cv_exeext for Libtool,
- # but it would be cool to find out if it's true. Does anybody
- # maintain Libtool? --akim.
- export ac_cv_exeext
- break;;
- * )
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
- fi
- fi
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- export ac_cv_exeext
- break;;
- * ) break;;
- esac
-done
-else
- { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std1 is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std1. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX 10.20 and later -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_stdc=$ac_arg
-break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
- x|xno)
- echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
- *)
- echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
- CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-# Some people use a C++ compiler to compile C. Since we use `exit',
-# in C++ we need to declare it. In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-@%:@ifndef __cplusplus
- choke me
-@%:@endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- for ac_declaration in \
- '' \
- 'extern "C" void std::exit (int) throw (); using std::exit;' \
- 'extern "C" void std::exit (int); using std::exit;' \
- 'extern "C" void exit (int) throw ();' \
- 'extern "C" void exit (int);' \
- 'void exit (int);'
-do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-@%:@include <stdlib.h>
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
- echo '#ifdef __cplusplus' >>confdefs.h
- echo $ac_declaration >>confdefs.h
- echo '#endif' >>confdefs.h
-fi
-
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-DEPDIR="${am__leading_dot}deps"
-
- ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo done
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
-echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
- am__include=include
- am__quote=
- _am_result=GNU
-fi
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
- am__include=.include
- am__quote="\""
- _am_result=BSD
- fi
-fi
-
-
-echo "$as_me:$LINENO: result: $_am_result" >&5
-echo "${ECHO_T}$_am_result" >&6
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then
- enableval="$enable_dependency_tracking"
-
-fi;
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
-
-
-if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-fi
-
-
-
-
-depcc="$CC" am_compiler_list=
-
-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- case $depmode in
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- none) break ;;
- esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
- if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
-
-
-if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-@%:@ifdef __STDC__
-@%:@ include <limits.h>
-@%:@else
-@%:@ include <assert.h>
-@%:@endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-@%:@include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-@%:@ifdef __STDC__
-@%:@ include <limits.h>
-@%:@else
-@%:@ include <assert.h>
-@%:@endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-@%:@include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
-else
- { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
- fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
-
-if test $ac_cv_c_compiler_gnu = yes; then
- echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5
-echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
-if test "${ac_cv_prog_gcc_traditional+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_pattern="Autoconf.*'x'"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <sgtty.h>
-Autoconf TIOCGETP
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "$ac_pattern" >/dev/null 2>&1; then
- ac_cv_prog_gcc_traditional=yes
-else
- ac_cv_prog_gcc_traditional=no
-fi
-rm -f conftest*
-
-
- if test $ac_cv_prog_gcc_traditional = no; then
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <termio.h>
-Autoconf TCGETA
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "$ac_pattern" >/dev/null 2>&1; then
- ac_cv_prog_gcc_traditional=yes
-fi
-rm -f conftest*
-
- fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5
-echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
- if test $ac_cv_prog_gcc_traditional = yes; then
- CC="$CC -traditional"
- fi
-fi
-
-
- MKINSTALLDIRS=
- if test -n "$ac_aux_dir"; then
- MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
- fi
- if test -z "$MKINSTALLDIRS"; then
- MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
- fi
-
-
-
-
-
- # Extract the first word of "msgfmt", so it can be a program name with args.
-set dummy msgfmt; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_MSGFMT+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case "$MSGFMT" in
- /*)
- ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- ac_cv_path_MSGFMT="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
- ;;
-esac
-fi
-MSGFMT="$ac_cv_path_MSGFMT"
-if test "$MSGFMT" != ":"; then
- echo "$as_me:$LINENO: result: $MSGFMT" >&5
-echo "${ECHO_T}$MSGFMT" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- # Extract the first word of "gmsgfmt", so it can be a program name with args.
-set dummy gmsgfmt; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_GMSGFMT+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $GMSGFMT in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
- ;;
-esac
-fi
-GMSGFMT=$ac_cv_path_GMSGFMT
-
-if test -n "$GMSGFMT"; then
- echo "$as_me:$LINENO: result: $GMSGFMT" >&5
-echo "${ECHO_T}$GMSGFMT" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-
- # Extract the first word of "xgettext", so it can be a program name with args.
-set dummy xgettext; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_XGETTEXT+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case "$XGETTEXT" in
- /*)
- ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
- ;;
-esac
-fi
-XGETTEXT="$ac_cv_path_XGETTEXT"
-if test "$XGETTEXT" != ":"; then
- echo "$as_me:$LINENO: result: $XGETTEXT" >&5
-echo "${ECHO_T}$XGETTEXT" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- rm -f messages.po
-
- # Extract the first word of "msgmerge", so it can be a program name with args.
-set dummy msgmerge; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_MSGMERGE+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case "$MSGMERGE" in
- /*)
- ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then
- ac_cv_path_MSGMERGE="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
- ;;
-esac
-fi
-MSGMERGE="$ac_cv_path_MSGMERGE"
-if test "$MSGMERGE" != ":"; then
- echo "$as_me:$LINENO: result: $MSGMERGE" >&5
-echo "${ECHO_T}$MSGMERGE" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-
- if test "$GMSGFMT" != ":"; then
- if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
- (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
- echo "$as_me:$LINENO: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5
-echo "${ECHO_T}found $GMSGFMT program is not GNU msgfmt; ignore it" >&6
- GMSGFMT=":"
- fi
- fi
-
- if test "$XGETTEXT" != ":"; then
- if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
- (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5
-echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6
- XGETTEXT=":"
- fi
- rm -f messages.po
- fi
-
- ac_config_commands="$ac_config_commands default-1"
-
-
-
- if test "X$prefix" = "XNONE"; then
- acl_final_prefix="$ac_default_prefix"
- else
- acl_final_prefix="$prefix"
- fi
- if test "X$exec_prefix" = "XNONE"; then
- acl_final_exec_prefix='${prefix}'
- else
- acl_final_exec_prefix="$exec_prefix"
- fi
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
- prefix="$acl_save_prefix"
-
-
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
- withval="$with_gnu_ld"
- test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi;
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- echo "$as_me:$LINENO: checking for ld used by GCC" >&5
-echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | [A-Za-z]:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
-else
- echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
-fi
-if test "${acl_cv_path_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- acl_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-else
- acl_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$acl_cv_path_LD"
-if test -n "$LD"; then
- echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
- { (exit 1); exit 1; }; }
-echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
-if test "${acl_cv_prog_gnu_ld+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- acl_cv_prog_gnu_ld=yes
-else
- acl_cv_prog_gnu_ld=no
-fi
-fi
-echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6
-with_gnu_ld=$acl_cv_prog_gnu_ld
-
-
-
- echo "$as_me:$LINENO: checking for shared library run path origin" >&5
-echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6
-if test "${acl_cv_rpath+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
- ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
- . ./conftest.sh
- rm -f ./conftest.sh
- acl_cv_rpath=done
-
-fi
-echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5
-echo "${ECHO_T}$acl_cv_rpath" >&6
- wl="$acl_cv_wl"
- libext="$acl_cv_libext"
- shlibext="$acl_cv_shlibext"
- hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
- hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
- hardcode_direct="$acl_cv_hardcode_direct"
- hardcode_minus_L="$acl_cv_hardcode_minus_L"
- sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec"
- sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec"
-
-
-
-
-
-
-
- use_additional=yes
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
-
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
-
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
-
-# Check whether --with-libiconv-prefix or --without-libiconv-prefix was given.
-if test "${with_libiconv_prefix+set}" = set; then
- withval="$with_libiconv_prefix"
-
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
-
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
-
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
- fi
- fi
-
-fi;
- LIBICONV=
- LTLIBICONV=
- INCICONV=
- rpathdirs=
- ltrpathdirs=
- names_already_handled=
- names_next_round='iconv '
- while test -n "$names_next_round"; do
- names_this_round="$names_next_round"
- names_next_round=
- for name in $names_this_round; do
- already_handled=
- for n in $names_already_handled; do
- if test "$n" = "$name"; then
- already_handled=yes
- break
- fi
- done
- if test -z "$already_handled"; then
- names_already_handled="$names_already_handled $name"
- uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
- eval value=\"\$HAVE_LIB$uppername\"
- if test -n "$value"; then
- if test "$value" = yes; then
- eval value=\"\$LIB$uppername\"
- test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
- eval value=\"\$LTLIB$uppername\"
- test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
- else
- :
- fi
- else
- found_dir=
- found_la=
- found_so=
- found_a=
- if test $use_additional = yes; then
- if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
- found_dir="$additional_libdir"
- found_so="$additional_libdir/lib$name.$shlibext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- else
- if test -f "$additional_libdir/lib$name.$libext"; then
- found_dir="$additional_libdir"
- found_a="$additional_libdir/lib$name.$libext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- for x in $LDFLAGS $LTLIBICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- case "$x" in
- -L*)
- dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
- found_dir="$dir"
- found_so="$dir/lib$name.$shlibext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- else
- if test -f "$dir/lib$name.$libext"; then
- found_dir="$dir"
- found_a="$dir/lib$name.$libext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- fi
- fi
- ;;
- esac
- if test "X$found_dir" != "X"; then
- break
- fi
- done
- fi
- if test "X$found_dir" != "X"; then
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
- if test "X$found_so" != "X"; then
- if test "X$found_dir" = "X/usr/lib"; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
- else
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $found_dir"
- fi
- if test "$hardcode_direct" = yes; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
- else
- if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $found_dir"
- fi
- else
- haveit=
- for x in $LDFLAGS $LIBICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
- fi
- if test "$hardcode_minus_L" != no; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
- else
- LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
- fi
- fi
- fi
- fi
- else
- if test "X$found_a" != "X"; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
- else
- LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
- fi
- fi
- additional_includedir=
- case "$found_dir" in
- */lib | */lib/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
- additional_includedir="$basedir/include"
- ;;
- esac
- if test "X$additional_includedir" != "X"; then
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- for x in $CPPFLAGS $INCICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- fi
- if test -n "$found_la"; then
- save_libdir="$libdir"
- case "$found_la" in
- */* | *\\*) . "$found_la" ;;
- *) . "./$found_la" ;;
- esac
- libdir="$save_libdir"
- for dep in $dependency_libs; do
- case "$dep" in
- -L*)
- additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
- if test "X$additional_libdir" != "X/usr/lib"; then
- haveit=
- if test "X$additional_libdir" = "X/usr/local/lib"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- haveit=
- for x in $LDFLAGS $LIBICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
- fi
- fi
- haveit=
- for x in $LDFLAGS $LTLIBICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- ;;
- -l*)
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
- ;;
- *.la)
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
- ;;
- *)
- LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
- ;;
- esac
- done
- fi
- else
- LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
- fi
- fi
- fi
- done
- done
- if test "X$rpathdirs" != "X"; then
- if test -n "$hardcode_libdir_separator"; then
- alldirs=
- for found_dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
- done
- acl_save_libdir="$libdir"
- libdir="$alldirs"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
- else
- for found_dir in $rpathdirs; do
- acl_save_libdir="$libdir"
- libdir="$found_dir"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
- done
- fi
- fi
- if test "X$ltrpathdirs" != "X"; then
- for found_dir in $ltrpathdirs; do
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
- done
- fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- echo "$as_me:$LINENO: checking whether NLS is requested" >&5
-echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6
- # Check whether --enable-nls or --disable-nls was given.
-if test "${enable_nls+set}" = set; then
- enableval="$enable_nls"
- USE_NLS=$enableval
-else
- USE_NLS=yes
-fi;
- echo "$as_me:$LINENO: result: $USE_NLS" >&5
-echo "${ECHO_T}$USE_NLS" >&6
-
-
-
- LIBINTL=
- LTLIBINTL=
- POSUB=
-
- if test "$USE_NLS" = "yes"; then
- gt_use_preinstalled_gnugettext=no
-
-
-
-
-
-
- echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5
-echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6
-if test "${gt_cv_func_gnugettext1_libc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <libintl.h>
-extern int _nl_msg_cat_cntr;
-extern int *_nl_domain_bindings;
-int
-main ()
-{
-bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- gt_cv_func_gnugettext1_libc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-gt_cv_func_gnugettext1_libc=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libc" >&5
-echo "${ECHO_T}$gt_cv_func_gnugettext1_libc" >&6
-
- if test "$gt_cv_func_gnugettext1_libc" != "yes"; then
-
-
-
-
-
- am_save_CPPFLAGS="$CPPFLAGS"
-
- for element in $INCICONV; do
- haveit=
- for x in $CPPFLAGS; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X$element"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
- fi
- done
-
-
- echo "$as_me:$LINENO: checking for iconv" >&5
-echo $ECHO_N "checking for iconv... $ECHO_C" >&6
-if test "${am_cv_func_iconv+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- am_cv_func_iconv="no, consider installing GNU libiconv"
- am_cv_lib_iconv=no
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <iconv.h>
-int
-main ()
-{
-iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- am_cv_func_iconv=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test "$am_cv_func_iconv" != yes; then
- am_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBICONV"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <iconv.h>
-int
-main ()
-{
-iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- am_cv_lib_iconv=yes
- am_cv_func_iconv=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LIBS="$am_save_LIBS"
- fi
-
-fi
-echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5
-echo "${ECHO_T}$am_cv_func_iconv" >&6
- if test "$am_cv_func_iconv" = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-@%:@define HAVE_ICONV 1
-_ACEOF
-
- fi
- if test "$am_cv_lib_iconv" = yes; then
- echo "$as_me:$LINENO: checking how to link with libiconv" >&5
-echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6
- echo "$as_me:$LINENO: result: $LIBICONV" >&5
-echo "${ECHO_T}$LIBICONV" >&6
- else
- CPPFLAGS="$am_save_CPPFLAGS"
- LIBICONV=
- LTLIBICONV=
- fi
-
-
-
-
-
-
- use_additional=yes
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
-
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
-
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
-
-# Check whether --with-libintl-prefix or --without-libintl-prefix was given.
-if test "${with_libintl_prefix+set}" = set; then
- withval="$with_libintl_prefix"
-
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
-
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
-
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
- fi
- fi
-
-fi;
- LIBINTL=
- LTLIBINTL=
- INCINTL=
- rpathdirs=
- ltrpathdirs=
- names_already_handled=
- names_next_round='intl '
- while test -n "$names_next_round"; do
- names_this_round="$names_next_round"
- names_next_round=
- for name in $names_this_round; do
- already_handled=
- for n in $names_already_handled; do
- if test "$n" = "$name"; then
- already_handled=yes
- break
- fi
- done
- if test -z "$already_handled"; then
- names_already_handled="$names_already_handled $name"
- uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
- eval value=\"\$HAVE_LIB$uppername\"
- if test -n "$value"; then
- if test "$value" = yes; then
- eval value=\"\$LIB$uppername\"
- test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
- eval value=\"\$LTLIB$uppername\"
- test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
- else
- :
- fi
- else
- found_dir=
- found_la=
- found_so=
- found_a=
- if test $use_additional = yes; then
- if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
- found_dir="$additional_libdir"
- found_so="$additional_libdir/lib$name.$shlibext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- else
- if test -f "$additional_libdir/lib$name.$libext"; then
- found_dir="$additional_libdir"
- found_a="$additional_libdir/lib$name.$libext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- for x in $LDFLAGS $LTLIBINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- case "$x" in
- -L*)
- dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
- found_dir="$dir"
- found_so="$dir/lib$name.$shlibext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- else
- if test -f "$dir/lib$name.$libext"; then
- found_dir="$dir"
- found_a="$dir/lib$name.$libext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- fi
- fi
- ;;
- esac
- if test "X$found_dir" != "X"; then
- break
- fi
- done
- fi
- if test "X$found_dir" != "X"; then
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
- if test "X$found_so" != "X"; then
- if test "X$found_dir" = "X/usr/lib"; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
- else
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $found_dir"
- fi
- if test "$hardcode_direct" = yes; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
- else
- if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $found_dir"
- fi
- else
- haveit=
- for x in $LDFLAGS $LIBINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
- fi
- if test "$hardcode_minus_L" != no; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
- else
- LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
- fi
- fi
- fi
- fi
- else
- if test "X$found_a" != "X"; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
- else
- LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
- fi
- fi
- additional_includedir=
- case "$found_dir" in
- */lib | */lib/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
- additional_includedir="$basedir/include"
- ;;
- esac
- if test "X$additional_includedir" != "X"; then
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- for x in $CPPFLAGS $INCINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- fi
- if test -n "$found_la"; then
- save_libdir="$libdir"
- case "$found_la" in
- */* | *\\*) . "$found_la" ;;
- *) . "./$found_la" ;;
- esac
- libdir="$save_libdir"
- for dep in $dependency_libs; do
- case "$dep" in
- -L*)
- additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
- if test "X$additional_libdir" != "X/usr/lib"; then
- haveit=
- if test "X$additional_libdir" = "X/usr/local/lib"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- haveit=
- for x in $LDFLAGS $LIBINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
- fi
- fi
- haveit=
- for x in $LDFLAGS $LTLIBINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- ;;
- -l*)
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
- ;;
- *.la)
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
- ;;
- *)
- LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
- ;;
- esac
- done
- fi
- else
- LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
- fi
- fi
- fi
- done
- done
- if test "X$rpathdirs" != "X"; then
- if test -n "$hardcode_libdir_separator"; then
- alldirs=
- for found_dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
- done
- acl_save_libdir="$libdir"
- libdir="$alldirs"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
- else
- for found_dir in $rpathdirs; do
- acl_save_libdir="$libdir"
- libdir="$found_dir"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
- done
- fi
- fi
- if test "X$ltrpathdirs" != "X"; then
- for found_dir in $ltrpathdirs; do
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
- done
- fi
-
- echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5
-echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6
-if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- gt_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $INCINTL"
- gt_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBINTL"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <libintl.h>
-extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias ();
-int
-main ()
-{
-bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- gt_cv_func_gnugettext1_libintl=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-gt_cv_func_gnugettext1_libintl=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then
- LIBS="$LIBS $LIBICONV"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <libintl.h>
-extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias ();
-int
-main ()
-{
-bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- LIBINTL="$LIBINTL $LIBICONV"
- LTLIBINTL="$LTLIBINTL $LTLIBICONV"
- gt_cv_func_gnugettext1_libintl=yes
-
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- fi
- CPPFLAGS="$gt_save_CPPFLAGS"
- LIBS="$gt_save_LIBS"
-fi
-echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libintl" >&5
-echo "${ECHO_T}$gt_cv_func_gnugettext1_libintl" >&6
- fi
-
- if test "$gt_cv_func_gnugettext1_libc" = "yes" \
- || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \
- && test "$PACKAGE" != gettext; }; then
- gt_use_preinstalled_gnugettext=yes
- else
- LIBINTL=
- LTLIBINTL=
- INCINTL=
- fi
-
-
-
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
-
-cat >>confdefs.h <<\_ACEOF
-@%:@define ENABLE_NLS 1
-_ACEOF
-
- else
- USE_NLS=no
- fi
- fi
-
- if test "$USE_NLS" = "yes"; then
-
- if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
- echo "$as_me:$LINENO: checking how to link with libintl" >&5
-echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6
- echo "$as_me:$LINENO: result: $LIBINTL" >&5
-echo "${ECHO_T}$LIBINTL" >&6
-
- for element in $INCINTL; do
- haveit=
- for x in $CPPFLAGS; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X$element"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
- fi
- done
-
- fi
-
-
-cat >>confdefs.h <<\_ACEOF
-@%:@define HAVE_GETTEXT 1
-_ACEOF
-
-
-cat >>confdefs.h <<\_ACEOF
-@%:@define HAVE_DCGETTEXT 1
-_ACEOF
-
- fi
-
- POSUB=po
- fi
-
-
-
- INTLLIBS="$LIBINTL"
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- RANLIB=$ac_ct_RANLIB
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-for ac_prog in 'bison -y' byacc
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_YACC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$YACC"; then
- ac_cv_prog_YACC="$YACC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_YACC="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-YACC=$ac_cv_prog_YACC
-if test -n "$YACC"; then
- echo "$as_me:$LINENO: result: $YACC" >&5
-echo "${ECHO_T}$YACC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$YACC" && break
-done
-test -n "$YACC" || YACC="yacc"
-
-for ac_prog in flex lex
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_LEX+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$LEX"; then
- ac_cv_prog_LEX="$LEX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_LEX="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-LEX=$ac_cv_prog_LEX
-if test -n "$LEX"; then
- echo "$as_me:$LINENO: result: $LEX" >&5
-echo "${ECHO_T}$LEX" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$LEX" && break
-done
-test -n "$LEX" || LEX=":"
-
-if test -z "$LEXLIB"
-then
- echo "$as_me:$LINENO: checking for yywrap in -lfl" >&5
-echo $ECHO_N "checking for yywrap in -lfl... $ECHO_C" >&6
-if test "${ac_cv_lib_fl_yywrap+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lfl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char yywrap ();
-int
-main ()
-{
-yywrap ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_fl_yywrap=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_fl_yywrap=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_fl_yywrap" >&5
-echo "${ECHO_T}$ac_cv_lib_fl_yywrap" >&6
-if test $ac_cv_lib_fl_yywrap = yes; then
- LEXLIB="-lfl"
-else
- echo "$as_me:$LINENO: checking for yywrap in -ll" >&5
-echo $ECHO_N "checking for yywrap in -ll... $ECHO_C" >&6
-if test "${ac_cv_lib_l_yywrap+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ll $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char yywrap ();
-int
-main ()
-{
-yywrap ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_l_yywrap=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_l_yywrap=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_l_yywrap" >&5
-echo "${ECHO_T}$ac_cv_lib_l_yywrap" >&6
-if test $ac_cv_lib_l_yywrap = yes; then
- LEXLIB="-ll"
-fi
-
-fi
-
-fi
-
-if test "x$LEX" != "x:"; then
- echo "$as_me:$LINENO: checking lex output file root" >&5
-echo $ECHO_N "checking lex output file root... $ECHO_C" >&6
-if test "${ac_cv_prog_lex_root+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # The minimal lex program is just a single line: %%. But some broken lexes
-# (Solaris, I think it was) want two %% lines, so accommodate them.
-cat >conftest.l <<_ACEOF
-%%
-%%
-_ACEOF
-{ (eval echo "$as_me:$LINENO: \"$LEX conftest.l\"") >&5
- (eval $LEX conftest.l) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-if test -f lex.yy.c; then
- ac_cv_prog_lex_root=lex.yy
-elif test -f lexyy.c; then
- ac_cv_prog_lex_root=lexyy
-else
- { { echo "$as_me:$LINENO: error: cannot find output from $LEX; giving up" >&5
-echo "$as_me: error: cannot find output from $LEX; giving up" >&2;}
- { (exit 1); exit 1; }; }
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_lex_root" >&5
-echo "${ECHO_T}$ac_cv_prog_lex_root" >&6
-rm -f conftest.l
-LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
-
-echo "$as_me:$LINENO: checking whether yytext is a pointer" >&5
-echo $ECHO_N "checking whether yytext is a pointer... $ECHO_C" >&6
-if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # POSIX says lex can declare yytext either as a pointer or an array; the
-# default is implementation-dependent. Figure out which it is, since
-# not all implementations provide the %pointer and %array declarations.
-ac_cv_prog_lex_yytext_pointer=no
-echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
-ac_save_LIBS=$LIBS
-LIBS="$LIBS $LEXLIB"
-cat >conftest.$ac_ext <<_ACEOF
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_lex_yytext_pointer=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_save_LIBS
-rm -f "${LEX_OUTPUT_ROOT}.c"
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_lex_yytext_pointer" >&5
-echo "${ECHO_T}$ac_cv_prog_lex_yytext_pointer" >&6
-if test $ac_cv_prog_lex_yytext_pointer = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-@%:@define YYTEXT_POINTER 1
-_ACEOF
-
-fi
-
-fi
-if test "$LEX" = :; then
- LEX=${am_missing_run}flex
-fi
-
-echo "$as_me:$LINENO: checking for gcc with C99 support" >&5
-echo $ECHO_N "checking for gcc with C99 support... $ECHO_C" >&6
-if test "${ac_cv_c99+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- old_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -std=gnu99"
-cat >conftest.$ac_ext <<_ACEOF
-int foo (int a) { for (int i = 0; i < a; ++i) if (i % 4) break; int s = a; }
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c99=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_c99=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-CFLAGS="$old_CFLAGS"
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c99" >&5
-echo "${ECHO_T}$ac_cv_c99" >&6
-if test "x$ac_cv_c99" != xyes; then
- { { echo "$as_me:$LINENO: error: gcc with C99 support required" >&5
-echo "$as_me: error: gcc with C99 support required" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-
-LOCALEDIR=$datadir
-
-cat >>confdefs.h <<_ACEOF
-@%:@define LOCALEDIR "$LOCALEDIR"
-_ACEOF
-
-
-
-
-DATADIRNAME=$datadir
-
-
-# Check whether --enable-largefile or --disable-largefile was given.
-if test "${enable_largefile+set}" = set; then
- enableval="$enable_largefile"
-
-fi;
-if test "$enable_largefile" != no; then
-
- echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
-echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
-if test "${ac_cv_sys_largefile_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_sys_largefile_CC=no
- if test "$GCC" != yes; then
- ac_save_CC=$CC
- while :; do
- # IRIX 6.2 and later do not support large files by default,
- # so use the C compiler's -n32 option if that helps.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-@%:@include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
- CC="$CC -n32"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_largefile_CC=' -n32'; break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
- break
- done
- CC=$ac_save_CC
- rm -f conftest.$ac_ext
- fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
-echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
- if test "$ac_cv_sys_largefile_CC" != no; then
- CC=$CC$ac_cv_sys_largefile_CC
- fi
-
- echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
-if test "${ac_cv_sys_file_offset_bits+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- while :; do
- ac_cv_sys_file_offset_bits=no
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-@%:@include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-@%:@define _FILE_OFFSET_BITS 64
-@%:@include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_file_offset_bits=64; break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- break
-done
-fi
-echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
-echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
-if test "$ac_cv_sys_file_offset_bits" != no; then
-
-cat >>confdefs.h <<_ACEOF
-@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
-_ACEOF
-
-fi
-rm -f conftest*
- echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5
-echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
-if test "${ac_cv_sys_large_files+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- while :; do
- ac_cv_sys_large_files=no
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-@%:@include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-@%:@define _LARGE_FILES 1
-@%:@include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_large_files=1; break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- break
-done
-fi
-echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
-echo "${ECHO_T}$ac_cv_sys_large_files" >&6
-if test "$ac_cv_sys_large_files" != no; then
-
-cat >>confdefs.h <<_ACEOF
-@%:@define _LARGE_FILES $ac_cv_sys_large_files
-_ACEOF
-
-fi
-rm -f conftest*
-fi
-
-
-native_ld=no
-# Check whether --enable-generic or --disable-generic was given.
-if test "${enable_generic+set}" = set; then
- enableval="$enable_generic"
- if test "$enable_generic" = no; then
- case "$host_cpu" in
- i?86)
- cat >>confdefs.h <<\_ACEOF
-@%:@define NATIVE_ELF 32
-_ACEOF
-
- native_ld=yes
- base_cpu=i386
- ;;
- *)
- { { echo "$as_me:$LINENO: error: no machine-specific linker for this configuration available" >&5
-echo "$as_me: error: no machine-specific linker for this configuration available" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-fi
-fi;
-
-
-
-
-if test "$native_ld" = yes; then
- NATIVE_LD_TRUE=
- NATIVE_LD_FALSE='#'
-else
- NATIVE_LD_TRUE='#'
- NATIVE_LD_FALSE=
-fi
-
-if test -z "$base_cpu"; then
- base_cpu=none
-fi
-
-
-
-use_mudflap=no
-# Check whether --enable-mudflap or --disable-mudflap was given.
-if test "${enable_mudflap+set}" = set; then
- enableval="$enable_mudflap"
- if test "x$enable_mudflap" = xyes; then
- # Check whether the compiler support -fmudflap.
- old_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -fmudflap"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- use_mudflap=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-use_mudflap=fail
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS="$old_CFLAGS"
-fi
-fi;
-if test "$use_mudflap" = fail; then
- { { echo "$as_me:$LINENO: error: --enable-mudflap requires a compiler which understands this option
-See \`config.log' for more details." >&5
-echo "$as_me: error: --enable-mudflap requires a compiler which understands this option
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-
-if test "$use_mudflap" = yes; then
- MUDFLAP_TRUE=
- MUDFLAP_FALSE='#'
-else
- MUDFLAP_TRUE='#'
- MUDFLAP_FALSE=
-fi
-
-
-
-
- ac_config_files="$ac_config_files doc/Makefile"
-
-
- ac_config_files="$ac_config_files lib/Makefile"
-
-
- ac_config_files="$ac_config_files libelf/Makefile libelf-po/Makefile.in"
-
-
- ac_config_files="$ac_config_files libebl/Makefile"
-
-
- ac_config_files="$ac_config_files libdw/Makefile"
-
-
- ac_config_files="$ac_config_files libcpu/Makefile"
-
-
- ac_config_files="$ac_config_files libasm/Makefile"
-
-
- ac_config_files="$ac_config_files src/Makefile po/Makefile.in"
-
-
- ac_config_files="$ac_config_files tests/Makefile"
-
-
-
-
-
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
- (set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-} |
- sed '
- t clear
- : clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
- if test -w $cache_file; then
- test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
- cat confcache >$cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ ]*$//;
-}'
-fi
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_i=`echo "$ac_i" |
- sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
- # 2. Add them.
- ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
- ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIB@&t@OBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${NATIVE_LD_TRUE}" && test -z "${NATIVE_LD_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"NATIVE_LD\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"NATIVE_LD\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${MUDFLAP_TRUE}" && test -z "${MUDFLAP_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"MUDFLAP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"MUDFLAP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling. Logging --version etc. is OK.
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
-@%:@@%:@ Running $as_me. @%:@@%:@
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by Red Hat elfutils $as_me 0.97, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
- echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
- echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
- echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
- echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-Red Hat elfutils config.status 0.97
-configured by $0, generated by GNU Autoconf 2.59,
- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value. By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=*)
- ac_option=`expr "x$1" : 'x\([^=]*\)='`
- ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- -*)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- *) # This is not an option, so the user has probably given explicit
- # arguments.
- ac_option=$1
- ac_need_defaults=false;;
- esac
-
- case $ac_option in
- # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --vers* | -V )
- echo "$ac_cs_version"; exit 0 ;;
- --he | --h)
- # Conflict between --help and --header
- { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; };;
- --help | --hel | -h )
- echo "$ac_cs_usage"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- CONFIG_FILES="$CONFIG_FILES $ac_optarg"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
- ac_need_defaults=false;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; } ;;
-
- *) ac_config_targets="$ac_config_targets $1" ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
- echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
- exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS section.
-#
-
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-# Capture the value of obsolete $ALL_LINGUAS because we need it to compute
- # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
- # from automake.
- eval 'ALL_LINGUAS''="$ALL_LINGUAS"'
- # Capture the value of LINGUAS because we need it to compute CATALOGS.
- LINGUAS="${LINGUAS-%UNSET%}"
-
-
-_ACEOF
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
- case "$ac_config_target" in
- # Handling of arguments.
- "config/Makefile" ) CONFIG_FILES="$CONFIG_FILES config/Makefile" ;;
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "m4/Makefile" ) CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;;
- "elfutils.spec" ) CONFIG_FILES="$CONFIG_FILES elfutils.spec:config/elfutils.spec.in" ;;
- "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
- "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
- "libelf/Makefile" ) CONFIG_FILES="$CONFIG_FILES libelf/Makefile" ;;
- "libelf-po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES libelf-po/Makefile.in" ;;
- "libebl/Makefile" ) CONFIG_FILES="$CONFIG_FILES libebl/Makefile" ;;
- "libdw/Makefile" ) CONFIG_FILES="$CONFIG_FILES libdw/Makefile" ;;
- "libcpu/Makefile" ) CONFIG_FILES="$CONFIG_FILES libcpu/Makefile" ;;
- "libasm/Makefile" ) CONFIG_FILES="$CONFIG_FILES libasm/Makefile" ;;
- "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
- "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
- "tests/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
- "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
- "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=./confstat$$-$RANDOM
- (umask 077 && mkdir $tmp)
-} ||
-{
- echo "$me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
- # Protect against being on the right side of a sed subst in config.status.
- sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@CYGPATH_W@,$CYGPATH_W,;t t
-s,@PACKAGE@,$PACKAGE,;t t
-s,@VERSION@,$VERSION,;t t
-s,@ACLOCAL@,$ACLOCAL,;t t
-s,@AUTOCONF@,$AUTOCONF,;t t
-s,@AUTOMAKE@,$AUTOMAKE,;t t
-s,@AUTOHEADER@,$AUTOHEADER,;t t
-s,@MAKEINFO@,$MAKEINFO,;t t
-s,@install_sh@,$install_sh,;t t
-s,@STRIP@,$STRIP,;t t
-s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
-s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
-s,@mkdir_p@,$mkdir_p,;t t
-s,@AWK@,$AWK,;t t
-s,@SET_MAKE@,$SET_MAKE,;t t
-s,@am__leading_dot@,$am__leading_dot,;t t
-s,@AMTAR@,$AMTAR,;t t
-s,@am__tar@,$am__tar,;t t
-s,@am__untar@,$am__untar,;t t
-s,@build@,$build,;t t
-s,@build_cpu@,$build_cpu,;t t
-s,@build_vendor@,$build_vendor,;t t
-s,@build_os@,$build_os,;t t
-s,@host@,$host,;t t
-s,@host_cpu@,$host_cpu,;t t
-s,@host_vendor@,$host_vendor,;t t
-s,@host_os@,$host_os,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@DEPDIR@,$DEPDIR,;t t
-s,@am__include@,$am__include,;t t
-s,@am__quote@,$am__quote,;t t
-s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
-s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
-s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
-s,@CCDEPMODE@,$CCDEPMODE,;t t
-s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
-s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
-s,@CPP@,$CPP,;t t
-s,@EGREP@,$EGREP,;t t
-s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t
-s,@MSGFMT@,$MSGFMT,;t t
-s,@GMSGFMT@,$GMSGFMT,;t t
-s,@XGETTEXT@,$XGETTEXT,;t t
-s,@MSGMERGE@,$MSGMERGE,;t t
-s,@USE_NLS@,$USE_NLS,;t t
-s,@LIBICONV@,$LIBICONV,;t t
-s,@LTLIBICONV@,$LTLIBICONV,;t t
-s,@INTLLIBS@,$INTLLIBS,;t t
-s,@LIBINTL@,$LIBINTL,;t t
-s,@LTLIBINTL@,$LTLIBINTL,;t t
-s,@POSUB@,$POSUB,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@YACC@,$YACC,;t t
-s,@LEX@,$LEX,;t t
-s,@LEXLIB@,$LEXLIB,;t t
-s,@LEX_OUTPUT_ROOT@,$LEX_OUTPUT_ROOT,;t t
-s,@LOCALEDIR@,$LOCALEDIR,;t t
-s,@DATADIRNAME@,$DATADIRNAME,;t t
-s,@NATIVE_LD_TRUE@,$NATIVE_LD_TRUE,;t t
-s,@NATIVE_LD_FALSE@,$NATIVE_LD_FALSE,;t t
-s,@base_cpu@,$base_cpu,;t t
-s,@MUDFLAP_TRUE@,$MUDFLAP_TRUE,;t t
-s,@MUDFLAP_FALSE@,$MUDFLAP_FALSE,;t t
-s,@LIB@&t@OBJS@,$LIB@&t@OBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
- cat >>$CONFIG_STATUS <<\_ACEOF
- # Split the substitutions into bite-sized pieces for seds with
- # small command number limits, like on Digital OSF/1 and HP-UX.
- ac_max_sed_lines=48
- ac_sed_frag=1 # Number of current file.
- ac_beg=1 # First line for current file.
- ac_end=$ac_max_sed_lines # Line after last line for current file.
- ac_more_lines=:
- ac_sed_cmds=
- while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- else
- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- fi
- if test ! -s $tmp/subs.frag; then
- ac_more_lines=false
- else
- # The purpose of the label and of the branching condition is to
- # speed up the sed processing (if there are no `@' at all, there
- # is no need to browse any of the substitutions).
- # These are the two extra sed commands mentioned above.
- (echo ':t
- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
- fi
- ac_sed_frag=`expr $ac_sed_frag + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_lines`
- fi
- done
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
- fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
- esac
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- configure_input=
- else
- configure_input="$ac_file. "
- fi
- configure_input=$configure_input"Generated from `echo $ac_file_in |
- sed 's,.*/,,'` by configure."
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
-
- if test x"$ac_file" != x-; then
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
- sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
- if test x"$ac_file" != x-; then
- mv $tmp/out $ac_file
- else
- cat $tmp/out
- rm -f $tmp/out
- fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_HEADER section.
-#
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='[ ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='$,\1#\2define\3'
-ac_uC=' '
-ac_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- # Do quote $f, to prevent DOS paths from being IFS'd.
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
- # Remove the trailing spaces.
- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
-
-_ACEOF
-
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h. The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status. Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\_ACEOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
-t end
-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-_ACEOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless. Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\_ACEOF
-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-_ACEOF
-
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo ' :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
-do
- # Write a limited-size here document to $tmp/defines.sed.
- echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
- # Speed up: don't consider the non `#define' lines.
- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
- # Work around the forget-to-reset-the-flag bug.
- echo 't clr' >>$CONFIG_STATUS
- echo ': clr' >>$CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
- echo 'CEOF
- sed -f $tmp/defines.sed $tmp/in >$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
- rm -f conftest.defines
- mv conftest.tail conftest.defines
-done
-rm -f conftest.defines
-echo ' fi # grep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
-
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
-do
- # Write a limited-size here document to $tmp/undefs.sed.
- echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
- # Speed up: don't consider the non `#undef'
- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
- # Work around the forget-to-reset-the-flag bug.
- echo 't clr' >>$CONFIG_STATUS
- echo ': clr' >>$CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
- echo 'CEOF
- sed -f $tmp/undefs.sed $tmp/in >$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
- rm -f conftest.undefs
- mv conftest.tail conftest.undefs
-done
-rm -f conftest.undefs
-
-cat >>$CONFIG_STATUS <<\_ACEOF
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- echo "/* Generated by configure. */" >$tmp/config.h
- else
- echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
- fi
- cat $tmp/in >>$tmp/config.h
- rm -f $tmp/in
- if test x"$ac_file" != x-; then
- if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
- { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
- else
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- rm -f $ac_file
- mv $tmp/config.h $ac_file
- fi
- else
- cat $tmp/config.h
- rm -f $tmp/config.h
- fi
-# Compute $ac_file's index in $config_headers.
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $ac_file | $ac_file:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
-$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X$ac_file : 'X\(//\)[^/]' \| \
- X$ac_file : 'X\(//\)$' \| \
- X$ac_file : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X$ac_file |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`/stamp-h$_am_stamp_count
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
- ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
- ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_dest" : 'X\(//\)[^/]' \| \
- X"$ac_dest" : 'X\(//\)$' \| \
- X"$ac_dest" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
- case $ac_dest in
- depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # So let's grep whole file.
- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
- dirpart=`(dirname "$mf") 2>/dev/null ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`(dirname "$file") 2>/dev/null ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p $dirpart/$fdir
- else
- as_dir=$dirpart/$fdir
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
-echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
- { (exit 1); exit 1; }; }; }
-
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
-done
- ;;
- default-1 )
- for ac_file in $CONFIG_FILES; do
- # Support "outfile[:infile[:infile...]]"
- case "$ac_file" in
- *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- esac
- # PO directories have a Makefile.in generated from Makefile.in.in.
- case "$ac_file" in */Makefile.in)
- # Adjust a relative srcdir.
- ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
- ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
- ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
- # In autoconf-2.13 it is called $ac_given_srcdir.
- # In autoconf-2.50 it is called $srcdir.
- test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
- case "$ac_given_srcdir" in
- .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
- /*) top_srcdir="$ac_given_srcdir" ;;
- *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
- if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
- rm -f "$ac_dir/POTFILES"
- test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
- cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
- # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
- # on $ac_dir but don't depend on user-specified configuration
- # parameters.
- if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
- # The LINGUAS file contains the set of available languages.
- if test -n "$ALL_LINGUAS"; then
- test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
- fi
- ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
- # Hide the ALL_LINGUAS assigment from automake.
- eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
- fi
- case "$ac_given_srcdir" in
- .) srcdirpre= ;;
- *) srcdirpre='$(srcdir)/' ;;
- esac
- POFILES=
- GMOFILES=
- UPDATEPOFILES=
- DUMMYPOFILES=
- for lang in $ALL_LINGUAS; do
- POFILES="$POFILES $srcdirpre$lang.po"
- GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
- UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
- DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
- done
- # CATALOGS depends on both $ac_dir and the user's LINGUAS
- # environment variable.
- INST_LINGUAS=
- if test -n "$ALL_LINGUAS"; then
- for presentlang in $ALL_LINGUAS; do
- useit=no
- if test "%UNSET%" != "$LINGUAS"; then
- desiredlanguages="$LINGUAS"
- else
- desiredlanguages="$ALL_LINGUAS"
- fi
- for desiredlang in $desiredlanguages; do
- # Use the presentlang catalog if desiredlang is
- # a. equal to presentlang, or
- # b. a variant of presentlang (because in this case,
- # presentlang can be used as a fallback for messages
- # which are not translated in the desiredlang catalog).
- case "$desiredlang" in
- "$presentlang"*) useit=yes;;
- esac
- done
- if test $useit = yes; then
- INST_LINGUAS="$INST_LINGUAS $presentlang"
- fi
- done
- fi
- CATALOGS=
- if test -n "$INST_LINGUAS"; then
- for lang in $INST_LINGUAS; do
- CATALOGS="$CATALOGS $lang.gmo"
- done
- fi
- test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
- sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
- for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
- if test -f "$f"; then
- case "$f" in
- *.orig | *.bak | *~) ;;
- *) cat "$f" >> "$ac_dir/Makefile" ;;
- esac
- fi
- done
- fi
- ;;
- esac
- done ;;
- esac
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || { (exit 1); exit 1; }
-fi
-
diff --git a/autom4te.cache/requests b/autom4te.cache/requests
deleted file mode 100644
index f0e4b0f3..00000000
--- a/autom4te.cache/requests
+++ /dev/null
@@ -1,116 +0,0 @@
-# This file was generated by Autom4te Thu Nov 25 00:39:59 GMT 2004.
-# It contains the lists of macros which have been traced.
-# It can be safely removed.
-
-@request = (
- bless( [
- '0',
- 1,
- [
- '/usr/share/autoconf'
- ],
- [
- '/usr/share/autoconf/autoconf/autoconf.m4f',
- 'aclocal.m4',
- 'configure.ac'
- ],
- {
- 'm4_pattern_forbid' => 1,
- 'AC_CONFIG_LIBOBJ_DIR' => 1,
- 'AC_C_VOLATILE' => 1,
- 'AC_TYPE_OFF_T' => 1,
- 'AC_FUNC_CLOSEDIR_VOID' => 1,
- 'AC_REPLACE_FNMATCH' => 1,
- 'AC_PROG_LIBTOOL' => 1,
- 'AC_FUNC_STAT' => 1,
- 'AC_FUNC_WAIT3' => 1,
- 'AC_HEADER_TIME' => 1,
- 'AC_FUNC_LSTAT' => 1,
- 'AC_STRUCT_TM' => 1,
- 'AM_AUTOMAKE_VERSION' => 1,
- 'AC_FUNC_GETMNTENT' => 1,
- 'AC_TYPE_MODE_T' => 1,
- 'AC_FUNC_STRTOD' => 1,
- 'AC_CHECK_HEADERS' => 1,
- 'AC_FUNC_STRNLEN' => 1,
- 'm4_sinclude' => 1,
- 'AC_PROG_CXX' => 1,
- 'AC_PATH_X' => 1,
- 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
- 'AC_PROG_AWK' => 1,
- '_m4_warn' => 1,
- 'AC_HEADER_STDC' => 1,
- 'AC_HEADER_MAJOR' => 1,
- 'AC_FUNC_ERROR_AT_LINE' => 1,
- 'AC_PROG_GCC_TRADITIONAL' => 1,
- 'AC_LIBSOURCE' => 1,
- 'AC_FUNC_MBRTOWC' => 1,
- 'AC_STRUCT_ST_BLOCKS' => 1,
- 'AC_TYPE_SIGNAL' => 1,
- 'AC_TYPE_UID_T' => 1,
- 'AC_PROG_MAKE_SET' => 1,
- 'AC_CONFIG_AUX_DIR' => 1,
- 'm4_pattern_allow' => 1,
- 'sinclude' => 1,
- 'AC_DEFINE_TRACE_LITERAL' => 1,
- 'AC_FUNC_STRERROR_R' => 1,
- 'AC_PROG_CC' => 1,
- 'AC_DECL_SYS_SIGLIST' => 1,
- 'AC_FUNC_FORK' => 1,
- 'AC_FUNC_STRCOLL' => 1,
- 'AC_FUNC_VPRINTF' => 1,
- 'AC_PROG_YACC' => 1,
- 'AC_INIT' => 1,
- 'AC_STRUCT_TIMEZONE' => 1,
- 'AC_FUNC_CHOWN' => 1,
- 'AC_SUBST' => 1,
- 'AC_FUNC_ALLOCA' => 1,
- 'AC_CANONICAL_HOST' => 1,
- 'AC_FUNC_GETPGRP' => 1,
- 'AC_PROG_RANLIB' => 1,
- 'AM_INIT_AUTOMAKE' => 1,
- 'AC_FUNC_SETPGRP' => 1,
- 'AC_CONFIG_SUBDIRS' => 1,
- 'AC_FUNC_MMAP' => 1,
- 'AC_FUNC_REALLOC' => 1,
- 'AC_TYPE_SIZE_T' => 1,
- 'AC_CONFIG_LINKS' => 1,
- 'AC_CHECK_TYPES' => 1,
- 'AC_CHECK_MEMBERS' => 1,
- 'AM_MAINTAINER_MODE' => 1,
- 'AC_FUNC_UTIME_NULL' => 1,
- 'AC_FUNC_SELECT_ARGTYPES' => 1,
- 'AC_HEADER_STAT' => 1,
- 'AC_FUNC_STRFTIME' => 1,
- 'AC_PROG_CPP' => 1,
- 'AC_C_INLINE' => 1,
- 'AC_PROG_LEX' => 1,
- 'AC_C_CONST' => 1,
- 'AC_TYPE_PID_T' => 1,
- 'AC_CONFIG_FILES' => 1,
- 'include' => 1,
- 'AC_FUNC_SETVBUF_REVERSED' => 1,
- 'AC_PROG_INSTALL' => 1,
- 'AM_GNU_GETTEXT' => 1,
- 'AC_CHECK_LIB' => 1,
- 'AC_FUNC_OBSTACK' => 1,
- 'AC_FUNC_MALLOC' => 1,
- 'AC_FUNC_GETGROUPS' => 1,
- 'AC_FUNC_GETLOADAVG' => 1,
- 'AH_OUTPUT' => 1,
- 'AC_FUNC_FSEEKO' => 1,
- 'AM_PROG_CC_C_O' => 1,
- 'AC_FUNC_MKTIME' => 1,
- 'AC_CANONICAL_SYSTEM' => 1,
- 'AM_CONDITIONAL' => 1,
- 'AC_CONFIG_HEADERS' => 1,
- 'AC_HEADER_SYS_WAIT' => 1,
- 'AC_PROG_LN_S' => 1,
- 'AC_FUNC_MEMCMP' => 1,
- 'm4_include' => 1,
- 'AC_HEADER_DIRENT' => 1,
- 'AC_CHECK_FUNCS' => 1
- }
- ], 'Autom4te::Request' )
- );
-
diff --git a/autom4te.cache/traces.0 b/autom4te.cache/traces.0
deleted file mode 100644
index 659eef34..00000000
--- a/autom4te.cache/traces.0
+++ /dev/null
@@ -1,356 +0,0 @@
-m4trace:aclocal.m4:1054: -1- m4_include([m4/gettext.m4])
-m4trace:aclocal.m4:1055: -1- m4_include([m4/iconv.m4])
-m4trace:aclocal.m4:1056: -1- m4_include([m4/lib-ld.m4])
-m4trace:aclocal.m4:1057: -1- m4_include([m4/lib-link.m4])
-m4trace:aclocal.m4:1058: -1- m4_include([m4/lib-prefix.m4])
-m4trace:aclocal.m4:1059: -1- m4_include([m4/progtest.m4])
-m4trace:configure.ac:20: -1- AC_INIT([Red Hat elfutils], [0.97], [http://bugzilla.redhat.com/bugzilla/], [elfutils])
-m4trace:configure.ac:20: -1- m4_pattern_forbid([^_?A[CHUM]_])
-m4trace:configure.ac:20: -1- m4_pattern_forbid([_AC_])
-m4trace:configure.ac:20: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
-m4trace:configure.ac:20: -1- m4_pattern_allow([^AS_FLAGS$])
-m4trace:configure.ac:20: -1- m4_pattern_forbid([^_?m4_])
-m4trace:configure.ac:20: -1- m4_pattern_forbid([^dnl$])
-m4trace:configure.ac:20: -1- m4_pattern_forbid([^_?AS_])
-m4trace:configure.ac:20: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])
-m4trace:configure.ac:20: -1- AC_SUBST([PATH_SEPARATOR])
-m4trace:configure.ac:20: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
-m4trace:configure.ac:20: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
-m4trace:configure.ac:20: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
-m4trace:configure.ac:20: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
-m4trace:configure.ac:20: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
-m4trace:configure.ac:20: -1- AC_SUBST([exec_prefix], [NONE])
-m4trace:configure.ac:20: -1- AC_SUBST([prefix], [NONE])
-m4trace:configure.ac:20: -1- AC_SUBST([program_transform_name], [s,x,x,])
-m4trace:configure.ac:20: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
-m4trace:configure.ac:20: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
-m4trace:configure.ac:20: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
-m4trace:configure.ac:20: -1- AC_SUBST([datadir], ['${prefix}/share'])
-m4trace:configure.ac:20: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
-m4trace:configure.ac:20: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
-m4trace:configure.ac:20: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
-m4trace:configure.ac:20: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
-m4trace:configure.ac:20: -1- AC_SUBST([includedir], ['${prefix}/include'])
-m4trace:configure.ac:20: -1- AC_SUBST([oldincludedir], ['/usr/include'])
-m4trace:configure.ac:20: -1- AC_SUBST([infodir], ['${prefix}/info'])
-m4trace:configure.ac:20: -1- AC_SUBST([mandir], ['${prefix}/man'])
-m4trace:configure.ac:20: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
-m4trace:configure.ac:20: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
-#undef PACKAGE_NAME])
-m4trace:configure.ac:20: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
-m4trace:configure.ac:20: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME])
-m4trace:configure.ac:20: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
-m4trace:configure.ac:20: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
-#undef PACKAGE_VERSION])
-m4trace:configure.ac:20: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
-m4trace:configure.ac:20: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING])
-m4trace:configure.ac:20: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
-m4trace:configure.ac:20: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT])
-m4trace:configure.ac:20: -1- AC_SUBST([build_alias])
-m4trace:configure.ac:20: -1- AC_SUBST([host_alias])
-m4trace:configure.ac:20: -1- AC_SUBST([target_alias])
-m4trace:configure.ac:20: -1- AC_SUBST([DEFS])
-m4trace:configure.ac:20: -1- AC_SUBST([ECHO_C])
-m4trace:configure.ac:20: -1- AC_SUBST([ECHO_N])
-m4trace:configure.ac:20: -1- AC_SUBST([ECHO_T])
-m4trace:configure.ac:20: -1- AC_SUBST([LIBS])
-m4trace:configure.ac:22: -1- AC_CONFIG_AUX_DIR([config])
-m4trace:configure.ac:23: -1- AC_CONFIG_FILES([config/Makefile])
-m4trace:configure.ac:29: -1- AM_INIT_AUTOMAKE([gnits 1.7 dist-bzip2])
-m4trace:configure.ac:29: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
-m4trace:configure.ac:29: -1- AM_AUTOMAKE_VERSION([1.9.2])
-m4trace:configure.ac:29: -1- AC_PROG_INSTALL
-m4trace:configure.ac:29: -1- AC_SUBST([INSTALL_PROGRAM])
-m4trace:configure.ac:29: -1- AC_SUBST([INSTALL_SCRIPT])
-m4trace:configure.ac:29: -1- AC_SUBST([INSTALL_DATA])
-m4trace:configure.ac:29: -1- AC_SUBST([CYGPATH_W])
-m4trace:configure.ac:29: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])
-m4trace:configure.ac:29: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])
-m4trace:configure.ac:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE])
-m4trace:configure.ac:29: -1- AH_OUTPUT([PACKAGE], [/* Name of package */
-#undef PACKAGE])
-m4trace:configure.ac:29: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
-m4trace:configure.ac:29: -1- AH_OUTPUT([VERSION], [/* Version number of package */
-#undef VERSION])
-m4trace:configure.ac:29: -1- AC_SUBST([ACLOCAL])
-m4trace:configure.ac:29: -1- AC_SUBST([AUTOCONF])
-m4trace:configure.ac:29: -1- AC_SUBST([AUTOMAKE])
-m4trace:configure.ac:29: -1- AC_SUBST([AUTOHEADER])
-m4trace:configure.ac:29: -1- AC_SUBST([MAKEINFO])
-m4trace:configure.ac:29: -1- AC_SUBST([install_sh])
-m4trace:configure.ac:29: -1- AC_SUBST([STRIP])
-m4trace:configure.ac:29: -1- AC_SUBST([ac_ct_STRIP])
-m4trace:configure.ac:29: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
-m4trace:configure.ac:29: -1- AC_SUBST([mkdir_p])
-m4trace:configure.ac:29: -1- AC_PROG_AWK
-m4trace:configure.ac:29: -1- AC_SUBST([AWK])
-m4trace:configure.ac:29: -1- AC_PROG_MAKE_SET
-m4trace:configure.ac:29: -1- AC_SUBST([SET_MAKE])
-m4trace:configure.ac:29: -1- AC_SUBST([am__leading_dot])
-m4trace:configure.ac:29: -1- AC_SUBST([AMTAR])
-m4trace:configure.ac:29: -1- AC_SUBST([am__tar])
-m4trace:configure.ac:29: -1- AC_SUBST([am__untar])
-m4trace:configure.ac:32: -1- AC_CONFIG_FILES([Makefile])
-m4trace:configure.ac:33: -1- AC_CONFIG_HEADERS([config.h])
-m4trace:configure.ac:36: -1- AC_CONFIG_FILES([m4/Makefile])
-m4trace:configure.ac:39: -1- AC_CONFIG_FILES([elfutils.spec:config/elfutils.spec.in])
-m4trace:configure.ac:42: -1- AC_CANONICAL_HOST
-m4trace:configure.ac:42: -1- AC_SUBST([build], [$ac_cv_build])
-m4trace:configure.ac:42: -1- AC_SUBST([build_cpu], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
-m4trace:configure.ac:42: -1- AC_SUBST([build_vendor], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
-m4trace:configure.ac:42: -1- AC_SUBST([build_os], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
-m4trace:configure.ac:42: -1- AC_SUBST([host], [$ac_cv_host])
-m4trace:configure.ac:42: -1- AC_SUBST([host_cpu], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
-m4trace:configure.ac:42: -1- AC_SUBST([host_vendor], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
-m4trace:configure.ac:42: -1- AC_SUBST([host_os], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
-m4trace:configure.ac:46: -2- AC_DEFINE_TRACE_LITERAL([USE_TLS])
-m4trace:configure.ac:47: -1- AH_OUTPUT([USE_TLS], [/* Defined if thread local storage should be used. */
-#undef USE_TLS])
-m4trace:configure.ac:52: -1- AC_PROG_CC
-m4trace:configure.ac:52: -1- AC_SUBST([CC])
-m4trace:configure.ac:52: -1- AC_SUBST([CFLAGS])
-m4trace:configure.ac:52: -1- AC_SUBST([LDFLAGS])
-m4trace:configure.ac:52: -1- AC_SUBST([CPPFLAGS])
-m4trace:configure.ac:52: -1- AC_SUBST([CC])
-m4trace:configure.ac:52: -1- AC_SUBST([ac_ct_CC])
-m4trace:configure.ac:52: -1- AC_SUBST([CC])
-m4trace:configure.ac:52: -1- AC_SUBST([ac_ct_CC])
-m4trace:configure.ac:52: -1- AC_SUBST([CC])
-m4trace:configure.ac:52: -1- AC_SUBST([CC])
-m4trace:configure.ac:52: -1- AC_SUBST([ac_ct_CC])
-m4trace:configure.ac:52: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
-m4trace:configure.ac:52: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
-m4trace:configure.ac:52: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
-m4trace:configure.ac:52: -1- AC_SUBST([am__include])
-m4trace:configure.ac:52: -1- AC_SUBST([am__quote])
-m4trace:configure.ac:52: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-m4trace:configure.ac:52: -1- AC_SUBST([AMDEP_TRUE])
-m4trace:configure.ac:52: -1- AC_SUBST([AMDEP_FALSE])
-m4trace:configure.ac:52: -1- AC_SUBST([AMDEPBACKSLASH])
-m4trace:configure.ac:52: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
-m4trace:configure.ac:52: -1- AM_CONDITIONAL([am__fastdepCC], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:52: -1- AC_SUBST([am__fastdepCC_TRUE])
-m4trace:configure.ac:52: -1- AC_SUBST([am__fastdepCC_FALSE])
-m4trace:configure.ac:53: -1- AC_PROG_CPP
-m4trace:configure.ac:53: -1- AC_SUBST([CPP])
-m4trace:configure.ac:53: -1- AC_SUBST([CPPFLAGS])
-m4trace:configure.ac:53: -1- AC_SUBST([CPP])
-m4trace:configure.ac:54: -1- AC_PROG_GCC_TRADITIONAL
-m4trace:configure.ac:54: -1- AC_SUBST([EGREP])
-m4trace:configure.ac:55: -1- AM_GNU_GETTEXT([external])
-m4trace:configure.ac:55: -1- AC_SUBST([MKINSTALLDIRS])
-m4trace:configure.ac:55: -1- AC_SUBST([MSGFMT])
-m4trace:configure.ac:55: -1- AC_SUBST([GMSGFMT], [$ac_cv_path_GMSGFMT])
-m4trace:configure.ac:55: -1- AC_SUBST([XGETTEXT])
-m4trace:configure.ac:55: -1- AC_SUBST([MSGMERGE])
-m4trace:configure.ac:55: -1- _m4_warn([obsolete], [The macro `AC_OUTPUT_COMMANDS' is obsolete.
-You should run autoupdate.], [autoconf/status.m4:318: AC_OUTPUT_COMMANDS is expanded from...
-m4/gettext.m4:498: AM_PO_SUBDIRS is expanded from...
-configure.ac:55: AM_PO_SUBDIRS is required by...
-m4/gettext.m4:325: AM_GNU_GETTEXT is expanded from...
-configure.ac:55: the top level])
-m4trace:configure.ac:55: -3- _m4_warn([obsolete], [The macro `_AC_OUTPUT_COMMANDS_CNT' is obsolete.
-You should run autoupdate.], [autoconf/status.m4:321: _AC_OUTPUT_COMMANDS_CNT is expanded from...
-autoconf/status.m4:318: AC_OUTPUT_COMMANDS is expanded from...
-m4/gettext.m4:498: AM_PO_SUBDIRS is expanded from...
-configure.ac:55: AM_PO_SUBDIRS is required by...
-m4/gettext.m4:325: AM_GNU_GETTEXT is expanded from...
-configure.ac:55: the top level])
-m4trace:configure.ac:55: -1- AC_SUBST([USE_NLS])
-m4trace:configure.ac:55: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
-You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
-autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
-autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
-m4/gettext.m4:325: AM_GNU_GETTEXT is expanded from...
-configure.ac:55: the top level])
-m4trace:configure.ac:55: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
-You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
-autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
-autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
-m4/iconv.m4:75: AM_ICONV_LINK is expanded from...
-m4/gettext.m4:325: AM_GNU_GETTEXT is expanded from...
-configure.ac:55: the top level])
-m4trace:configure.ac:55: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
-You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
-autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
-autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
-m4/iconv.m4:75: AM_ICONV_LINK is expanded from...
-m4/gettext.m4:325: AM_GNU_GETTEXT is expanded from...
-configure.ac:55: the top level])
-m4trace:configure.ac:55: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ICONV])
-m4trace:configure.ac:55: -1- AH_OUTPUT([HAVE_ICONV], [/* Define if you have the iconv() function. */
-#undef HAVE_ICONV])
-m4trace:configure.ac:55: -1- AC_SUBST([LIBICONV])
-m4trace:configure.ac:55: -1- AC_SUBST([LTLIBICONV])
-m4trace:configure.ac:55: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
-You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
-autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
-autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
-m4/gettext.m4:325: AM_GNU_GETTEXT is expanded from...
-configure.ac:55: the top level])
-m4trace:configure.ac:55: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
-You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
-autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
-autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
-m4/gettext.m4:325: AM_GNU_GETTEXT is expanded from...
-configure.ac:55: the top level])
-m4trace:configure.ac:55: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_NLS])
-m4trace:configure.ac:55: -1- AH_OUTPUT([ENABLE_NLS], [/* Define to 1 if translation of program messages to the user\'s native
- language is requested. */
-#undef ENABLE_NLS])
-m4trace:configure.ac:55: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETTEXT])
-m4trace:configure.ac:55: -1- AH_OUTPUT([HAVE_GETTEXT], [/* Define if the GNU gettext() function is already present or preinstalled. */
-#undef HAVE_GETTEXT])
-m4trace:configure.ac:55: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DCGETTEXT])
-m4trace:configure.ac:55: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define if the GNU dcgettext() function is already present or preinstalled.
- */
-#undef HAVE_DCGETTEXT])
-m4trace:configure.ac:55: -1- AC_SUBST([INTLLIBS])
-m4trace:configure.ac:55: -1- AC_SUBST([LIBINTL])
-m4trace:configure.ac:55: -1- AC_SUBST([LTLIBINTL])
-m4trace:configure.ac:55: -1- AC_SUBST([POSUB])
-m4trace:configure.ac:56: -1- AC_PROG_RANLIB
-m4trace:configure.ac:56: -1- AC_SUBST([RANLIB])
-m4trace:configure.ac:56: -1- AC_SUBST([ac_ct_RANLIB])
-m4trace:configure.ac:57: -1- AC_PROG_YACC
-m4trace:configure.ac:57: -1- AC_SUBST([YACC])
-m4trace:configure.ac:58: -1- AC_PROG_LEX
-m4trace:configure.ac:58: -1- AC_SUBST([LEX])
-m4trace:configure.ac:58: -1- AC_CHECK_LIB([fl], [yywrap], [LEXLIB="-lfl"], [AC_CHECK_LIB(l, yywrap, LEXLIB="-ll")])
-m4trace:configure.ac:58: -1- AC_CHECK_LIB([l], [yywrap], [LEXLIB="-ll"])
-m4trace:configure.ac:58: -1- AC_SUBST([LEXLIB])
-m4trace:configure.ac:58: -1- AC_SUBST([LEX_OUTPUT_ROOT], [$ac_cv_prog_lex_root])
-m4trace:configure.ac:58: -1- AC_DEFINE_TRACE_LITERAL([YYTEXT_POINTER])
-m4trace:configure.ac:58: -1- AH_OUTPUT([YYTEXT_POINTER], [/* Define to 1 if `lex\' declares `yytext\' as a `char *\' by default, not a
- `char[]\'. */
-#undef YYTEXT_POINTER])
-m4trace:configure.ac:71: -1- AC_SUBST([LOCALEDIR])
-m4trace:configure.ac:72: -1- AC_DEFINE_TRACE_LITERAL([LOCALEDIR])
-m4trace:configure.ac:73: -1- AH_OUTPUT([LOCALEDIR], [/* Directory to place translation files in. */
-#undef LOCALEDIR])
-m4trace:configure.ac:76: -1- AC_SUBST([DATADIRNAME])
-m4trace:configure.ac:81: -1- AC_DEFINE_TRACE_LITERAL([_FILE_OFFSET_BITS])
-m4trace:configure.ac:81: -1- AH_OUTPUT([_FILE_OFFSET_BITS], [/* Number of bits in a file offset, on hosts where this is settable. */
-#undef _FILE_OFFSET_BITS])
-m4trace:configure.ac:81: -1- AC_DEFINE_TRACE_LITERAL([_LARGE_FILES])
-m4trace:configure.ac:81: -1- AH_OUTPUT([_LARGE_FILES], [/* Define for large files, on AIX-style hosts. */
-#undef _LARGE_FILES])
-m4trace:configure.ac:100: -1- AC_DEFINE_TRACE_LITERAL([NATIVE_ELF])
-m4trace:configure.ac:102: -1- AH_OUTPUT([NATIVE_ELF], [/* Define to 32 or 64 if a specific implementation is wanted. */
-#undef NATIVE_ELF])
-m4trace:configure.ac:103: -1- AM_CONDITIONAL([NATIVE_LD], [test "$native_ld" = yes])
-m4trace:configure.ac:103: -1- AC_SUBST([NATIVE_LD_TRUE])
-m4trace:configure.ac:103: -1- AC_SUBST([NATIVE_LD_FALSE])
-m4trace:configure.ac:108: -1- AC_SUBST([base_cpu])
-m4trace:configure.ac:124: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
-You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
-autoconf/general.m4:1303: AC_ARG_ENABLE is expanded from...
-configure.ac:124: the top level])
-m4trace:configure.ac:128: -1- AM_CONDITIONAL([MUDFLAP], [test "$use_mudflap" = yes])
-m4trace:configure.ac:128: -1- AC_SUBST([MUDFLAP_TRUE])
-m4trace:configure.ac:128: -1- AC_SUBST([MUDFLAP_FALSE])
-m4trace:configure.ac:134: -1- AC_CONFIG_FILES([doc/Makefile])
-m4trace:configure.ac:137: -1- AC_CONFIG_FILES([lib/Makefile])
-m4trace:configure.ac:140: -1- AC_CONFIG_FILES([libelf/Makefile libelf-po/Makefile.in])
-m4trace:configure.ac:143: -1- AC_CONFIG_FILES([libebl/Makefile])
-m4trace:configure.ac:146: -1- AC_CONFIG_FILES([libdw/Makefile])
-m4trace:configure.ac:149: -1- AC_CONFIG_FILES([libcpu/Makefile])
-m4trace:configure.ac:152: -1- AC_CONFIG_FILES([libasm/Makefile])
-m4trace:configure.ac:155: -1- AC_CONFIG_FILES([src/Makefile po/Makefile.in])
-m4trace:configure.ac:158: -1- AC_CONFIG_FILES([tests/Makefile])
-m4trace:configure.ac:251: -1- AH_OUTPUT([zzzz1], [
-/* Eventually we will allow multi-threaded applications to use the
- libraries. Therefore we will add the necessary locking although
- the macros used expand to nothing for now. */
-#define lock_lock(lock) ((void) (lock))
-#define rwlock_define(class,name) class int name
-#define rwlock_init(lock) ((void) (lock))
-#define rwlock_fini(lock) ((void) (lock))
-#define rwlock_rdlock(lock) ((void) (lock))
-#define rwlock_wrlock(lock) ((void) (lock))
-#define rwlock_unlock(lock) ((void) (lock))
-#define tls_key_t void *
-#define key_create(keyp, freefct) (1)
-#define getspecific(key) key
-#define setspecific(key,val) key = val
-#define once_define(class,name) class int name
-#define once_execute(name,fct) \\
- do { \\
- if (name == 0) \\
- fct (); \\
- name = 1; \\
- } while (0)
-
-/* gettext helper macro. */
-#define N_(Str) Str
-
-/* Compiler-specific definitions. */
-#define strong_alias(name, aliasname) \\
- extern __typeof (name) aliasname __attribute__ ((alias (#name)));
-
-#ifdef __i386__
-# define internal_function_def __attribute__ ((regparm (3), stdcall))
-#else
-# define internal_function_def /* nothing */
-#endif
-
-# define internal_function \\
- internal_function_def __attribute__ ((visibility ("internal")))
-# define internal_strong_alias(name, aliasname) \\
- extern __typeof (name) aliasname __attribute__ ((alias (#name), visibility ("internal"))) internal_function_def;
-
-#define attribute_hidden \\
- __attribute__ ((visibility ("hidden")))
-
-/* Define ALLOW_UNALIGNED if the architecture allows operations on
- unaligned memory locations. */
-#if defined __i386__ || defined __alpha__ || defined __x86_64__ || defined __ia64__
-# define ALLOW_UNALIGNED 1
-#else
-# define ALLOW_UNALIGNED 0
-#endif
-
-#define unlikely(expr) __builtin_expect (expr, 0)
-#define likely(expr) __builtin_expect (expr, 1)
-
-#define obstack_calloc(ob, size) \\
- ({ size_t _s = (size); memset (obstack_alloc (ob, _s), \'\\0\', _s); })
-#define obstack_strdup(ob, str) \\
- ({ const char *_s = (str); obstack_copy0 (ob, _s, strlen (_s)); })
-#define obstack_strndup(ob, str, n) \\
- ({ const char *_s = (str); obstack_copy0 (ob, _s, strnlen (_s, n)); })
-
-#if __STDC_VERSION__ >= 199901L
-# define flexarr_size /* empty */
-#else
-# define flexarr_size 0
-#endif
-
-/* Calling conventions. */
-#ifdef __i386__
-# define CALLING_CONVENTION regparm (3), stdcall
-# define AND_CALLING_CONVENTION , regparm (3), stdcall
-#else
-# define CALLING_CONVENTION
-# define AND_CALLING_CONVENTION
-#endif
-
-/* Avoid PLT entries. */
-#ifdef PIC
-# define INTUSE(name) _INTUSE(name)
-# define _INTUSE(name) __##name##_internal
-# define INTDEF(name) _INTDEF(name)
-# define _INTDEF(name) \\
- extern __typeof__ (name) __##name##_internal __attribute__ ((alias (#name)));
-#else
-# define INTUSE(name) name
-# define INTDEF(name) /* empty */
-#endif
-])
-m4trace:configure.ac:253: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
-m4trace:configure.ac:253: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
diff --git a/config-compat-cygwin.h b/config-compat-cygwin.h
deleted file mode 100644
index c256e795..00000000
--- a/config-compat-cygwin.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef CONFIG_COMPAT_CYGWIN_H
-#define CONFIG_COMPAT_CYGWIN_H
-
-#include <byteswap.h>
-#include <endian.h>
-#include <libintl.h>
-
-#endif
diff --git a/config-compat-darwin.h b/config-compat-darwin.h
deleted file mode 100644
index 7953bb6a..00000000
--- a/config-compat-darwin.h
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef CONFIG_COMPAT_DARWIN_H
-#define CONFIG_COMPAT_DARWIN_H
-
-#define gettext
-#define _gettext
-#define _dgettext
-
-typedef unsigned long long __off64_t;
-
-#define __LITTLE_ENDIAN (1234)
-#define __BIG_ENDIAN (4321)
-#define __BYTE_ORDER __LITTLE_ENDIAN
-
-#include <stddef.h>
-#include <locale.h> //LC_MESSAGES
-#include <assert.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <errno.h>
-#include <stdio.h>
-
-#define dgettext(domainname, msgid) dcgettext (domainname, msgid, LC_MESSAGES)
-
-static inline void __attribute__((noreturn)) error(int status, int errnum, const char *fmt, ...)
-{
- va_list lst;
- va_start(lst, fmt);
- vfprintf(stderr, fmt, lst);
- fprintf(stderr, "error %d: %s\n", errnum, strerror(errno));
- va_end(lst);
- exit(status);
-}
-
-static inline char *dcgettext (char *__domainname, char *__msgid, int __category)
-{
- error(EXIT_FAILURE, 0, "%s not implemented!", __FUNCTION__);
- return NULL;
-}
-
-static inline size_t strnlen (const char *__string, size_t __maxlen)
-{
- int len = 0;
- while (__maxlen-- && *__string++)
- len++;
- return len;
-}
-
-static inline void *mempcpy (void * __dest, const void * __src, size_t __n)
-{
- memcpy(__dest, __src, __n);
- return ((char *)__dest) + __n;
-}
-
-#define __mempcpy mempcpy
-
-static inline wchar_t *wmempcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n)
-{
- error(EXIT_FAILURE, 0, "%s not implemented!", __FUNCTION__);
- return NULL;
-}
-
-
-static inline unsigned short bswap_16(unsigned short val)
-{
- return ((val & 0xff) << 8) | ((val >> 8) & 0xff);
-}
-
-static inline unsigned long bswap_32(unsigned long val)
-{
- return bswap_16((unsigned short)val) << 16 |
- bswap_16((unsigned short)(val >> 16));
-}
-
-static inline unsigned long long bswap_64(unsigned long long val)
-{
- return ((((unsigned long long)bswap_32(val)) << 32) |
- (((unsigned long long)bswap_32(val >> 32)) & 0xffffffffULL));
-}
-
-extern int ___libelf_fill_byte;
-
-#endif /*CONFIG_COMPAT_DARWIN_H*/
diff --git a/config-compat-linux.h b/config-compat-linux.h
deleted file mode 100644
index 2730de1e..00000000
--- a/config-compat-linux.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef CONFIG_COMPAT_LINUX_H
-#define CONFIG_COMPAT_LINUX_H
-
-#include <byteswap.h>
-#include <endian.h>
-#include <libintl.h>
-
-#endif
diff --git a/config.h b/config.h
deleted file mode 100644
index a57e25e9..00000000
--- a/config.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* config.h. Generated by configure. */
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define to 1 if translation of program messages to the user's native
- language is requested. */
-#define ENABLE_NLS 1
-
-/* Define if the GNU dcgettext() function is already present or preinstalled.
- */
-#define HAVE_DCGETTEXT 1
-
-/* Define if the GNU gettext() function is already present or preinstalled. */
-#define HAVE_GETTEXT 1
-
-/* Define if you have the iconv() function. */
-/* #undef HAVE_ICONV */
-
-/* Directory to place translation files in. */
-#define LOCALEDIR "${prefix}/share"
-
-/* Define to 32 or 64 if a specific implementation is wanted. */
-/* #undef NATIVE_ELF */
-
-/* Name of package */
-#define PACKAGE "elfutils"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "http://bugzilla.redhat.com/bugzilla/"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "Red Hat elfutils"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "Red Hat elfutils 0.97"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "elfutils"
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.97"
-
-/* Defined if thread local storage should be used. */
-/* #undef USE_TLS */
-
-/* Version number of package */
-#define VERSION "0.97"
-
-/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
- `char[]'. */
-#define YYTEXT_POINTER 1
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-#define _FILE_OFFSET_BITS 64
-
-/* Define for large files, on AIX-style hosts. */
-/* #undef _LARGE_FILES */
-
-
-/* Eventually we will allow multi-threaded applications to use the
- libraries. Therefore we will add the necessary locking although
- the macros used expand to nothing for now. */
-#define lock_lock(lock) ((void) (lock))
-#define rwlock_define(class,name) class int name
-#define rwlock_init(lock) ((void) (lock))
-#define rwlock_fini(lock) ((void) (lock))
-#define rwlock_rdlock(lock) ((void) (lock))
-#define rwlock_wrlock(lock) ((void) (lock))
-#define rwlock_unlock(lock) ((void) (lock))
-#define tls_key_t void *
-#define key_create(keyp, freefct) (1)
-#define getspecific(key) key
-#define setspecific(key,val) key = val
-#define once_define(class,name) class int name
-#define once_execute(name,fct) \
- do { \
- if (name == 0) \
- fct (); \
- name = 1; \
- } while (0)
-
-/* gettext helper macro. */
-#define N_(Str) Str
-
-/* Compiler-specific definitions. */
-#define strong_alias(name, aliasname) \
- extern __typeof (name) aliasname __attribute__ ((alias (#name)));
-
-#ifdef __i386__
-# define internal_function_def __attribute__ ((regparm (3), stdcall))
-#else
-# define internal_function_def /* nothing */
-#endif
-
-# define internal_function \
- internal_function_def __attribute__ ((visibility ("internal")))
-# define internal_strong_alias(name, aliasname) \
- extern __typeof (name) aliasname __attribute__ ((alias (#name), visibility ("internal"))) internal_function_def;
-
-#define attribute_hidden \
- __attribute__ ((visibility ("hidden")))
-
-/* Define ALLOW_UNALIGNED if the architecture allows operations on
- unaligned memory locations. */
-#if defined __i386__ || defined __alpha__ || defined __x86_64__ || defined __ia64__
-# define ALLOW_UNALIGNED 1
-#else
-# define ALLOW_UNALIGNED 0
-#endif
-
-#define unlikely(expr) __builtin_expect (expr, 0)
-#define likely(expr) __builtin_expect (expr, 1)
-
-#define obstack_calloc(ob, size) \
- ({ size_t _s = (size); memset (obstack_alloc (ob, _s), '\0', _s); })
-#define obstack_strdup(ob, str) \
- ({ const char *_s = (str); obstack_copy0 (ob, _s, strlen (_s)); })
-#define obstack_strndup(ob, str, n) \
- ({ const char *_s = (str); obstack_copy0 (ob, _s, strnlen (_s, n)); })
-
-#if __STDC_VERSION__ >= 199901L
-# define flexarr_size /* empty */
-#else
-# define flexarr_size 0
-#endif
-
-/* Calling conventions. */
-#ifdef __i386__
-# define CALLING_CONVENTION regparm (3), stdcall
-# define AND_CALLING_CONVENTION , regparm (3), stdcall
-#else
-# define CALLING_CONVENTION
-# define AND_CALLING_CONVENTION
-#endif
-
-/* Avoid PLT entries. */
-#ifdef PIC
-# define INTUSE(name) _INTUSE(name)
-# define _INTUSE(name) __##name##_internal
-# define INTDEF(name) _INTDEF(name)
-# define _INTDEF(name) \
- extern __typeof__ (name) __##name##_internal __attribute__ ((alias (#name)));
-#else
-# define INTUSE(name) name
-# define INTDEF(name) /* empty */
-#endif
-
diff --git a/config.h.in b/config.h.in
deleted file mode 100644
index ce973f3c..00000000
--- a/config.h.in
+++ /dev/null
@@ -1,145 +0,0 @@
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define to 1 if translation of program messages to the user's native
- language is requested. */
-#undef ENABLE_NLS
-
-/* Define if the GNU dcgettext() function is already present or preinstalled.
- */
-#undef HAVE_DCGETTEXT
-
-/* Define if the GNU gettext() function is already present or preinstalled. */
-#undef HAVE_GETTEXT
-
-/* Define if you have the iconv() function. */
-#undef HAVE_ICONV
-
-/* Directory to place translation files in. */
-#undef LOCALEDIR
-
-/* Define to 32 or 64 if a specific implementation is wanted. */
-#undef NATIVE_ELF
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Defined if thread local storage should be used. */
-#undef USE_TLS
-
-/* Version number of package */
-#undef VERSION
-
-/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
- `char[]'. */
-#undef YYTEXT_POINTER
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-#undef _FILE_OFFSET_BITS
-
-/* Define for large files, on AIX-style hosts. */
-#undef _LARGE_FILES
-
-
-/* Eventually we will allow multi-threaded applications to use the
- libraries. Therefore we will add the necessary locking although
- the macros used expand to nothing for now. */
-#define lock_lock(lock) ((void) (lock))
-#define rwlock_define(class,name) class int name
-#define rwlock_init(lock) ((void) (lock))
-#define rwlock_fini(lock) ((void) (lock))
-#define rwlock_rdlock(lock) ((void) (lock))
-#define rwlock_wrlock(lock) ((void) (lock))
-#define rwlock_unlock(lock) ((void) (lock))
-#define tls_key_t void *
-#define key_create(keyp, freefct) (1)
-#define getspecific(key) key
-#define setspecific(key,val) key = val
-#define once_define(class,name) class int name
-#define once_execute(name,fct) \
- do { \
- if (name == 0) \
- fct (); \
- name = 1; \
- } while (0)
-
-/* gettext helper macro. */
-#define N_(Str) Str
-
-/* Compiler-specific definitions. */
-#define strong_alias(name, aliasname) \
- extern __typeof (name) aliasname __attribute__ ((alias (#name)));
-
-#ifdef __i386__
-# define internal_function_def __attribute__ ((regparm (3), stdcall))
-#else
-# define internal_function_def /* nothing */
-#endif
-
-# define internal_function \
- internal_function_def __attribute__ ((visibility ("internal")))
-# define internal_strong_alias(name, aliasname) \
- extern __typeof (name) aliasname __attribute__ ((alias (#name), visibility ("internal"))) internal_function_def;
-
-#define attribute_hidden \
- __attribute__ ((visibility ("hidden")))
-
-/* Define ALLOW_UNALIGNED if the architecture allows operations on
- unaligned memory locations. */
-#if defined __i386__ || defined __alpha__ || defined __x86_64__ || defined __ia64__
-# define ALLOW_UNALIGNED 1
-#else
-# define ALLOW_UNALIGNED 0
-#endif
-
-#define unlikely(expr) __builtin_expect (expr, 0)
-#define likely(expr) __builtin_expect (expr, 1)
-
-#define obstack_calloc(ob, size) \
- ({ size_t _s = (size); memset (obstack_alloc (ob, _s), '\0', _s); })
-#define obstack_strdup(ob, str) \
- ({ const char *_s = (str); obstack_copy0 (ob, _s, strlen (_s)); })
-#define obstack_strndup(ob, str, n) \
- ({ const char *_s = (str); obstack_copy0 (ob, _s, strnlen (_s, n)); })
-
-#if __STDC_VERSION__ >= 199901L
-# define flexarr_size /* empty */
-#else
-# define flexarr_size 0
-#endif
-
-/* Calling conventions. */
-#ifdef __i386__
-# define CALLING_CONVENTION regparm (3), stdcall
-# define AND_CALLING_CONVENTION , regparm (3), stdcall
-#else
-# define CALLING_CONVENTION
-# define AND_CALLING_CONVENTION
-#endif
-
-/* Avoid PLT entries. */
-#ifdef PIC
-# define INTUSE(name) _INTUSE(name)
-# define _INTUSE(name) __##name##_internal
-# define INTDEF(name) _INTDEF(name)
-# define _INTDEF(name) \
- extern __typeof__ (name) __##name##_internal __attribute__ ((alias (#name)));
-#else
-# define INTUSE(name) name
-# define INTDEF(name) /* empty */
-#endif
-
diff --git a/config.log b/config.log
deleted file mode 100644
index aa5d5d5f..00000000
--- a/config.log
+++ /dev/null
@@ -1,556 +0,0 @@
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by Red Hat elfutils configure 0.97, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- $ ./configure --prefix /work/elfutils/google/linux-install-elfutils-0.97/ --no-create --no-recursion
-
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = in2it.corp.google.com
-uname -m = i686
-uname -r = 2.6.16.11-gg1
-uname -s = Linux
-uname -v = #1 SMP Wed Apr 26 14:42:26 PDT 2006
-
-/usr/bin/uname -p = unknown
-/bin/uname -X = unknown
-
-/bin/arch = i686
-/usr/bin/arch -k = unknown
-/usr/convex/getsysinfo = unknown
-hostinfo = unknown
-/bin/machine = unknown
-/usr/bin/oslevel = unknown
-/bin/universe = unknown
-
-PATH: /usr/local/scripts
-PATH: /usr/local/symlinks
-PATH: /usr/local/sbin
-PATH: /usr/local/bin
-PATH: /usr/sbin
-PATH: /usr/bin
-PATH: /sbin
-PATH: /bin
-PATH: /usr/bin/X11
-PATH: /usr/games
-PATH: /work/android/device/prebuilt/Linux/toolchain/bin/
-PATH: /home/build/public/google/tools/
-PATH: /work/elfcopy
-PATH: /work/aldd
-PATH: /work/symchange
-PATH: /work/lsd
-PATH: /work/elfutils-0.97-install/bin/
-PATH: .
-PATH: /home/malchev/bin
-PATH: /work/android/device/out/linux-arm-release/host/bin
-PATH: /work/android/device/prebuilt/Linux/toolchain/arm-elf
-PATH: /work/android/device/prebuilt/Linux/toolchain/bin/
-PATH: /home/build/public/google/tools/
-PATH: /work/elfcopy
-PATH: /work/aldd
-PATH: /work/soslim
-PATH: /work/lsd
-PATH: /work/elfutils-0.97-install/bin/
-PATH: .
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-configure:1345: checking for a BSD-compatible install
-configure:1400: result: /usr/bin/install -c
-configure:1411: checking whether build environment is sane
-configure:1454: result: yes
-configure:1519: checking for gawk
-configure:1535: found /usr/bin/gawk
-configure:1545: result: gawk
-configure:1555: checking whether make sets $(MAKE)
-configure:1575: result: yes
-configure:1774: checking build system type
-configure:1792: result: i686-pc-linux-gnu
-configure:1800: checking host system type
-configure:1814: result: i686-pc-linux-gnu
-configure:1882: checking for gcc
-configure:1898: found /usr/bin/gcc
-configure:1908: result: gcc
-configure:2152: checking for C compiler version
-configure:2155: gcc --version </dev/null >&5
-gcc (GCC) 3.3.5 (Debian 1:3.3.5-8ubuntu2.1)
-Copyright (C) 2003 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-configure:2158: $? = 0
-configure:2160: gcc -v </dev/null >&5
-Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.5/specs
-Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
-Thread model: posix
-gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2.1)
-configure:2163: $? = 0
-configure:2165: gcc -V </dev/null >&5
-gcc: `-V' option must have argument
-configure:2168: $? = 1
-configure:2191: checking for C compiler default output file name
-configure:2194: gcc conftest.c >&5
-configure:2197: $? = 0
-configure:2243: result: a.out
-configure:2248: checking whether the C compiler works
-configure:2254: ./a.out
-configure:2257: $? = 0
-configure:2274: result: yes
-configure:2281: checking whether we are cross compiling
-configure:2283: result: no
-configure:2286: checking for suffix of executables
-configure:2288: gcc -o conftest conftest.c >&5
-configure:2291: $? = 0
-configure:2316: result:
-configure:2322: checking for suffix of object files
-configure:2343: gcc -c conftest.c >&5
-configure:2346: $? = 0
-configure:2368: result: o
-configure:2372: checking whether we are using the GNU C compiler
-configure:2396: gcc -c conftest.c >&5
-configure:2402: $? = 0
-configure:2405: test -z || test ! -s conftest.err
-configure:2408: $? = 0
-configure:2411: test -s conftest.o
-configure:2414: $? = 0
-configure:2427: result: yes
-configure:2433: checking whether gcc accepts -g
-configure:2454: gcc -c -g conftest.c >&5
-configure:2460: $? = 0
-configure:2463: test -z || test ! -s conftest.err
-configure:2466: $? = 0
-configure:2469: test -s conftest.o
-configure:2472: $? = 0
-configure:2483: result: yes
-configure:2500: checking for gcc option to accept ANSI C
-configure:2570: gcc -c -g -O2 conftest.c >&5
-configure:2576: $? = 0
-configure:2579: test -z || test ! -s conftest.err
-configure:2582: $? = 0
-configure:2585: test -s conftest.o
-configure:2588: $? = 0
-configure:2606: result: none needed
-configure:2624: gcc -c -g -O2 conftest.c >&5
-conftest.c:2: error: syntax error before "me"
-configure:2630: $? = 1
-configure: failed program was:
-| #ifndef __cplusplus
-| choke me
-| #endif
-configure:2771: checking for style of include used by make
-configure:2799: result: GNU
-configure:2827: checking dependency style of gcc
-configure:2917: result: gcc3
-configure:2939: checking how to run the C preprocessor
-configure:2974: gcc -E conftest.c
-configure:2980: $? = 0
-configure:3012: gcc -E conftest.c
-conftest.c:11:28: ac_nonexistent.h: No such file or directory
-configure:3018: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "Red Hat elfutils"
-| #define PACKAGE_TARNAME "elfutils"
-| #define PACKAGE_VERSION "0.97"
-| #define PACKAGE_STRING "Red Hat elfutils 0.97"
-| #define PACKAGE_BUGREPORT "http://bugzilla.redhat.com/bugzilla/"
-| #define PACKAGE "elfutils"
-| #define VERSION "0.97"
-| /* end confdefs.h. */
-| #include <ac_nonexistent.h>
-configure:3057: result: gcc -E
-configure:3081: gcc -E conftest.c
-configure:3087: $? = 0
-configure:3119: gcc -E conftest.c
-conftest.c:11:28: ac_nonexistent.h: No such file or directory
-configure:3125: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "Red Hat elfutils"
-| #define PACKAGE_TARNAME "elfutils"
-| #define PACKAGE_VERSION "0.97"
-| #define PACKAGE_STRING "Red Hat elfutils 0.97"
-| #define PACKAGE_BUGREPORT "http://bugzilla.redhat.com/bugzilla/"
-| #define PACKAGE "elfutils"
-| #define VERSION "0.97"
-| /* end confdefs.h. */
-| #include <ac_nonexistent.h>
-configure:3170: checking for egrep
-configure:3180: result: grep -E
-configure:3186: checking whether gcc needs -traditional
-configure:3228: result: no
-configure:3250: checking for msgfmt
-configure:3278: result: /usr/bin/msgfmt
-configure:3287: checking for gmsgfmt
-configure:3318: result: /usr/bin/msgfmt
-configure:3328: checking for xgettext
-configure:3356: result: /usr/bin/xgettext
-configure:3367: checking for msgmerge
-configure:3394: result: /usr/bin/msgmerge
-configure:3456: checking for ld used by GCC
-configure:3519: result: /usr/bin/ld
-configure:3528: checking if the linker (/usr/bin/ld) is GNU ld
-GNU ld version 2.15
-configure:3540: result: yes
-configure:3546: checking for shared library run path origin
-configure:3559: result: done
-configure:3944: checking whether NLS is requested
-configure:3953: result: yes
-configure:3970: checking for GNU gettext in libc
-configure:3994: gcc -o conftest -g -O2 conftest.c >&5
-configure:4000: $? = 0
-configure:4003: test -z || test ! -s conftest.err
-configure:4006: $? = 0
-configure:4009: test -s conftest
-configure:4012: $? = 0
-configure:4024: result: yes
-configure:4791: checking for ranlib
-configure:4807: found /usr/bin/ranlib
-configure:4818: result: ranlib
-configure:4834: checking for bison
-configure:4850: found /usr/bin/bison
-configure:4860: result: bison -y
-configure:4875: checking for flex
-configure:4891: found /usr/bin/flex
-configure:4901: result: flex
-configure:4914: checking for yywrap in -lfl
-configure:4944: gcc -o conftest -g -O2 conftest.c -lfl >&5
-configure:4950: $? = 0
-configure:4953: test -z || test ! -s conftest.err
-configure:4956: $? = 0
-configure:4959: test -s conftest
-configure:4962: $? = 0
-configure:4975: result: yes
-configure:5052: checking lex output file root
-configure:5063: flex conftest.l
-configure:5066: $? = 0
-configure:5078: result: lex.yy
-configure:5083: checking whether yytext is a pointer
-configure:5099: gcc -o conftest -g -O2 conftest.c -lfl >&5
-configure:5105: $? = 0
-configure:5108: test -z || test ! -s conftest.err
-configure:5111: $? = 0
-configure:5114: test -s conftest
-configure:5117: $? = 0
-configure:5131: result: yes
-configure:5146: checking for gcc with C99 support
-configure:5157: gcc -c -g -O2 -std=gnu99 conftest.c >&5
-configure:5163: $? = 0
-configure:5166: test -z || test ! -s conftest.err
-configure:5169: $? = 0
-configure:5172: test -s conftest.o
-configure:5175: $? = 0
-configure:5187: result: yes
-configure:5215: checking for special C compiler options needed for large files
-configure:5312: result: no
-configure:5318: checking for _FILE_OFFSET_BITS value needed for large files
-configure:5349: gcc -c -g -O2 conftest.c >&5
-conftest.c:22: warning: left shift count >= width of type
-conftest.c:22: warning: left shift count >= width of type
-conftest.c:24: error: size of array `off_t_is_large' is negative
-configure:5355: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "Red Hat elfutils"
-| #define PACKAGE_TARNAME "elfutils"
-| #define PACKAGE_VERSION "0.97"
-| #define PACKAGE_STRING "Red Hat elfutils 0.97"
-| #define PACKAGE_BUGREPORT "http://bugzilla.redhat.com/bugzilla/"
-| #define PACKAGE "elfutils"
-| #define VERSION "0.97"
-| #define ENABLE_NLS 1
-| #define HAVE_GETTEXT 1
-| #define HAVE_DCGETTEXT 1
-| #define YYTEXT_POINTER 1
-| #define LOCALEDIR "${prefix}/share"
-| /* end confdefs.h. */
-| #include <sys/types.h>
-| /* Check that off_t can represent 2**63 - 1 correctly.
-| We can't simply define LARGE_OFF_T to be 9223372036854775807,
-| since some C++ compilers masquerading as C compilers
-| incorrectly reject 9223372036854775807. */
-| #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
-| int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-| && LARGE_OFF_T % 2147483647 == 1)
-| ? 1 : -1];
-| int
-| main ()
-| {
-|
-| ;
-| return 0;
-| }
-configure:5401: gcc -c -g -O2 conftest.c >&5
-configure:5407: $? = 0
-configure:5410: test -z || test ! -s conftest.err
-configure:5413: $? = 0
-configure:5416: test -s conftest.o
-configure:5419: $? = 0
-configure:5431: result: 64
-configure:5441: checking for _LARGE_FILES value needed for large files
-configure:5472: gcc -c -g -O2 conftest.c >&5
-configure:5478: $? = 0
-configure:5481: test -z || test ! -s conftest.err
-configure:5484: $? = 0
-configure:5487: test -s conftest.o
-configure:5490: $? = 0
-configure:5554: result: no
-configure:5836: creating ./config.status
-
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-
-ac_cv_build=i686-pc-linux-gnu
-ac_cv_build_alias=i686-pc-linux-gnu
-ac_cv_c99=yes
-ac_cv_c_compiler_gnu=yes
-ac_cv_env_CC_set=
-ac_cv_env_CC_value=
-ac_cv_env_CFLAGS_set=
-ac_cv_env_CFLAGS_value=
-ac_cv_env_CPPFLAGS_set=
-ac_cv_env_CPPFLAGS_value=
-ac_cv_env_CPP_set=
-ac_cv_env_CPP_value=
-ac_cv_env_LDFLAGS_set=
-ac_cv_env_LDFLAGS_value=
-ac_cv_env_build_alias_set=
-ac_cv_env_build_alias_value=
-ac_cv_env_host_alias_set=
-ac_cv_env_host_alias_value=
-ac_cv_env_target_alias_set=
-ac_cv_env_target_alias_value=
-ac_cv_exeext=
-ac_cv_host=i686-pc-linux-gnu
-ac_cv_host_alias=i686-pc-linux-gnu
-ac_cv_lib_fl_yywrap=yes
-ac_cv_objext=o
-ac_cv_path_GMSGFMT=/usr/bin/msgfmt
-ac_cv_path_MSGFMT=/usr/bin/msgfmt
-ac_cv_path_MSGMERGE=/usr/bin/msgmerge
-ac_cv_path_XGETTEXT=/usr/bin/xgettext
-ac_cv_path_install='/usr/bin/install -c'
-ac_cv_prog_AWK=gawk
-ac_cv_prog_CPP='gcc -E'
-ac_cv_prog_LEX=flex
-ac_cv_prog_YACC='bison -y'
-ac_cv_prog_ac_ct_CC=gcc
-ac_cv_prog_ac_ct_RANLIB=ranlib
-ac_cv_prog_cc_g=yes
-ac_cv_prog_cc_stdc=
-ac_cv_prog_egrep='grep -E'
-ac_cv_prog_gcc_traditional=no
-ac_cv_prog_lex_root=lex.yy
-ac_cv_prog_lex_yytext_pointer=yes
-ac_cv_prog_make_make_set=yes
-ac_cv_sys_file_offset_bits=64
-ac_cv_sys_large_files=no
-ac_cv_sys_largefile_CC=no
-acl_cv_hardcode_direct=no
-acl_cv_hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-acl_cv_hardcode_libdir_separator=
-acl_cv_hardcode_minus_L=no
-acl_cv_libext=a
-acl_cv_path_LD=/usr/bin/ld
-acl_cv_prog_gnu_ld=yes
-acl_cv_rpath=done
-acl_cv_shlibext=so
-acl_cv_sys_lib_dlsearch_path_spec='/lib /usr/lib'
-acl_cv_sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-acl_cv_wl=-Wl,
-am_cv_CC_dependencies_compiler_type=gcc3
-gt_cv_func_gnugettext1_libc=yes
-
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-
-ACLOCAL='${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run aclocal-1.9'
-AMDEPBACKSLASH='\'
-AMDEP_FALSE='#'
-AMDEP_TRUE=''
-AMTAR='${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run tar'
-AUTOCONF='${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoconf'
-AUTOHEADER='${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoheader'
-AUTOMAKE='${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run automake-1.9'
-AWK='gawk'
-CC='gcc'
-CCDEPMODE='depmode=gcc3'
-CFLAGS='-g -O2'
-CPP='gcc -E'
-CPPFLAGS=''
-CYGPATH_W='echo'
-DATADIRNAME='${prefix}/share'
-DEFS='-DHAVE_CONFIG_H'
-DEPDIR='.deps'
-ECHO_C=''
-ECHO_N='-n'
-ECHO_T=''
-EGREP='grep -E'
-EXEEXT=''
-GMSGFMT='/usr/bin/msgfmt'
-INSTALL_DATA='${INSTALL} -m 644'
-INSTALL_PROGRAM='${INSTALL}'
-INSTALL_SCRIPT='${INSTALL}'
-INSTALL_STRIP_PROGRAM='${SHELL} $(install_sh) -c -s'
-INTLLIBS=''
-LDFLAGS=''
-LEX='flex'
-LEXLIB='-lfl'
-LEX_OUTPUT_ROOT='lex.yy'
-LIBICONV='-liconv'
-LIBINTL=''
-LIBOBJS=''
-LIBS=''
-LOCALEDIR='${prefix}/share'
-LTLIBICONV='-liconv'
-LTLIBINTL=''
-LTLIBOBJS=''
-MAKEINFO='${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run makeinfo'
-MKINSTALLDIRS='config/mkinstalldirs'
-MSGFMT='/usr/bin/msgfmt'
-MSGMERGE='/usr/bin/msgmerge'
-MUDFLAP_FALSE=''
-MUDFLAP_TRUE='#'
-NATIVE_LD_FALSE=''
-NATIVE_LD_TRUE='#'
-OBJEXT='o'
-PACKAGE='elfutils'
-PACKAGE_BUGREPORT='http://bugzilla.redhat.com/bugzilla/'
-PACKAGE_NAME='Red Hat elfutils'
-PACKAGE_STRING='Red Hat elfutils 0.97'
-PACKAGE_TARNAME='elfutils'
-PACKAGE_VERSION='0.97'
-PATH_SEPARATOR=':'
-POSUB='po'
-RANLIB='ranlib'
-SET_MAKE=''
-SHELL='/bin/sh'
-STRIP=''
-USE_NLS='yes'
-VERSION='0.97'
-XGETTEXT='/usr/bin/xgettext'
-YACC='bison -y'
-ac_ct_CC='gcc'
-ac_ct_RANLIB='ranlib'
-ac_ct_STRIP=''
-am__fastdepCC_FALSE='#'
-am__fastdepCC_TRUE=''
-am__include='include'
-am__leading_dot='.'
-am__quote=''
-am__tar='${AMTAR} chof - "$$tardir"'
-am__untar='${AMTAR} xf -'
-base_cpu='none'
-bindir='${exec_prefix}/bin'
-build='i686-pc-linux-gnu'
-build_alias=''
-build_cpu='i686'
-build_os='linux-gnu'
-build_vendor='pc'
-datadir='${prefix}/share'
-exec_prefix='${prefix}'
-host='i686-pc-linux-gnu'
-host_alias=''
-host_cpu='i686'
-host_os='linux-gnu'
-host_vendor='pc'
-includedir='${prefix}/include'
-infodir='${prefix}/info'
-install_sh='/work/elfutils/stock/elfutils-0.97/config/install-sh'
-libdir='${exec_prefix}/lib'
-libexecdir='${exec_prefix}/libexec'
-localstatedir='${prefix}/var'
-mandir='${prefix}/man'
-mkdir_p='mkdir -p --'
-oldincludedir='/usr/include'
-prefix='/work/elfutils/google/linux-install-elfutils-0.97/'
-program_transform_name='s,x,x,'
-sbindir='${exec_prefix}/sbin'
-sharedstatedir='${prefix}/com'
-sysconfdir='${prefix}/etc'
-target_alias=''
-
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-
-#define ENABLE_NLS 1
-#define HAVE_DCGETTEXT 1
-#define HAVE_GETTEXT 1
-#define LOCALEDIR "${prefix}/share"
-#define PACKAGE "elfutils"
-#define PACKAGE_BUGREPORT "http://bugzilla.redhat.com/bugzilla/"
-#define PACKAGE_NAME "Red Hat elfutils"
-#define PACKAGE_STRING "Red Hat elfutils 0.97"
-#define PACKAGE_TARNAME "elfutils"
-#define PACKAGE_VERSION "0.97"
-#define VERSION "0.97"
-#define YYTEXT_POINTER 1
-#define _FILE_OFFSET_BITS 64
-
-configure: exit 0
-
-## ---------------------- ##
-## Running config.status. ##
-## ---------------------- ##
-
-This file was extended by Red Hat elfutils config.status 0.97, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- CONFIG_FILES =
- CONFIG_HEADERS =
- CONFIG_LINKS =
- CONFIG_COMMANDS =
- $ ./config.status
-
-on in2it.corp.google.com
-
-config.status:783: creating config/Makefile
-config.status:783: creating Makefile
-config.status:783: creating m4/Makefile
-config.status:783: creating elfutils.spec
-config.status:783: creating doc/Makefile
-config.status:783: creating lib/Makefile
-config.status:783: creating libelf/Makefile
-config.status:783: creating libelf-po/Makefile.in
-config.status:783: creating libebl/Makefile
-config.status:783: creating libdw/Makefile
-config.status:783: creating libcpu/Makefile
-config.status:783: creating libasm/Makefile
-config.status:783: creating src/Makefile
-config.status:783: creating po/Makefile.in
-config.status:783: creating tests/Makefile
-config.status:849: creating config.h
-config.status:947: config.h is unchanged
-config.status:1127: executing depfiles commands
-config.status:1127: executing default-1 commands
-
-## ---------------------- ##
-## Running config.status. ##
-## ---------------------- ##
-
-This file was extended by Red Hat elfutils config.status 0.97, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- CONFIG_FILES =
- CONFIG_HEADERS =
- CONFIG_LINKS =
- CONFIG_COMMANDS =
- $ ./config.status config.h
-
-on in2it.corp.google.com
-
-config.status:849: creating config.h
-config.status:947: config.h is unchanged
diff --git a/config.status b/config.status
deleted file mode 100755
index b03a4b73..00000000
--- a/config.status
+++ /dev/null
@@ -1,1314 +0,0 @@
-#! /bin/sh
-# Generated by configure.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=${CONFIG_SHELL-/bin/sh}
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling. Logging --version etc. is OK.
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by Red Hat elfutils $as_me 0.97, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-config_files=" config/Makefile Makefile m4/Makefile elfutils.spec:config/elfutils.spec.in doc/Makefile lib/Makefile libelf/Makefile libelf-po/Makefile.in libebl/Makefile libdw/Makefile libcpu/Makefile libasm/Makefile src/Makefile po/Makefile.in tests/Makefile"
-config_headers=" config.h"
-config_commands=" depfiles default-1"
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-ac_cs_version="\
-Red Hat elfutils config.status 0.97
-configured by ./configure, generated by GNU Autoconf 2.59,
- with options \"'--prefix' '/work/elfutils/google/linux-install-elfutils-0.97/'\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=.
-INSTALL="/usr/bin/install -c"
-# If no file are specified by the user, then we need to provide default
-# value. By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=*)
- ac_option=`expr "x$1" : 'x\([^=]*\)='`
- ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- -*)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- *) # This is not an option, so the user has probably given explicit
- # arguments.
- ac_option=$1
- ac_need_defaults=false;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --vers* | -V )
- echo "$ac_cs_version"; exit 0 ;;
- --he | --h)
- # Conflict between --help and --header
- { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; };;
- --help | --hel | -h )
- echo "$ac_cs_usage"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- CONFIG_FILES="$CONFIG_FILES $ac_optarg"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
- ac_need_defaults=false;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; } ;;
-
- *) ac_config_targets="$ac_config_targets $1" ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-if $ac_cs_recheck; then
- echo "running /bin/sh ./configure " '--prefix' '/work/elfutils/google/linux-install-elfutils-0.97/' $ac_configure_extra_args " --no-create --no-recursion" >&6
- exec /bin/sh ./configure '--prefix' '/work/elfutils/google/linux-install-elfutils-0.97/' $ac_configure_extra_args --no-create --no-recursion
-fi
-
-#
-# INIT-COMMANDS section.
-#
-
-AMDEP_TRUE="" ac_aux_dir="config"
-# Capture the value of obsolete because we need it to compute
- # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
- # from automake.
- eval 'ALL_LINGUAS''=""'
- # Capture the value of LINGUAS because we need it to compute CATALOGS.
- LINGUAS="%UNSET%"
-
-
-for ac_config_target in $ac_config_targets
-do
- case "$ac_config_target" in
- # Handling of arguments.
- "config/Makefile" ) CONFIG_FILES="$CONFIG_FILES config/Makefile" ;;
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "m4/Makefile" ) CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;;
- "elfutils.spec" ) CONFIG_FILES="$CONFIG_FILES elfutils.spec:config/elfutils.spec.in" ;;
- "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
- "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
- "libelf/Makefile" ) CONFIG_FILES="$CONFIG_FILES libelf/Makefile" ;;
- "libelf-po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES libelf-po/Makefile.in" ;;
- "libebl/Makefile" ) CONFIG_FILES="$CONFIG_FILES libebl/Makefile" ;;
- "libdw/Makefile" ) CONFIG_FILES="$CONFIG_FILES libdw/Makefile" ;;
- "libcpu/Makefile" ) CONFIG_FILES="$CONFIG_FILES libcpu/Makefile" ;;
- "libasm/Makefile" ) CONFIG_FILES="$CONFIG_FILES libasm/Makefile" ;;
- "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
- "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
- "tests/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
- "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
- "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=./confstat$$-$RANDOM
- (umask 077 && mkdir $tmp)
-} ||
-{
- echo "$me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
-}
-
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "$CONFIG_FILES"; then
- # Protect against being on the right side of a sed subst in config.status.
- sed 's/,@/@@/; s/@,/@@/; s/,;t t$/@;t t/; /@;t t$/s/[\\&,]/\\&/g;
- s/@@/,@/; s/@@/@,/; s/@;t t$/,;t t/' >$tmp/subs.sed <<\CEOF
-s,@SHELL@,/bin/sh,;t t
-s,@PATH_SEPARATOR@,:,;t t
-s,@PACKAGE_NAME@,Red Hat elfutils,;t t
-s,@PACKAGE_TARNAME@,elfutils,;t t
-s,@PACKAGE_VERSION@,0.97,;t t
-s,@PACKAGE_STRING@,Red Hat elfutils 0.97,;t t
-s,@PACKAGE_BUGREPORT@,http://bugzilla.redhat.com/bugzilla/,;t t
-s,@exec_prefix@,${prefix},;t t
-s,@prefix@,/work/elfutils/google/linux-install-elfutils-0.97/,;t t
-s,@program_transform_name@,s,x,x,,;t t
-s,@bindir@,${exec_prefix}/bin,;t t
-s,@sbindir@,${exec_prefix}/sbin,;t t
-s,@libexecdir@,${exec_prefix}/libexec,;t t
-s,@datadir@,${prefix}/share,;t t
-s,@sysconfdir@,${prefix}/etc,;t t
-s,@sharedstatedir@,${prefix}/com,;t t
-s,@localstatedir@,${prefix}/var,;t t
-s,@libdir@,${exec_prefix}/lib,;t t
-s,@includedir@,${prefix}/include,;t t
-s,@oldincludedir@,/usr/include,;t t
-s,@infodir@,${prefix}/info,;t t
-s,@mandir@,${prefix}/man,;t t
-s,@build_alias@,,;t t
-s,@host_alias@,,;t t
-s,@target_alias@,,;t t
-s,@DEFS@,-DHAVE_CONFIG_H,;t t
-s,@ECHO_C@,,;t t
-s,@ECHO_N@,-n,;t t
-s,@ECHO_T@,,;t t
-s,@LIBS@,,;t t
-s,@INSTALL_PROGRAM@,${INSTALL},;t t
-s,@INSTALL_SCRIPT@,${INSTALL},;t t
-s,@INSTALL_DATA@,${INSTALL} -m 644,;t t
-s,@CYGPATH_W@,echo,;t t
-s,@PACKAGE@,elfutils,;t t
-s,@VERSION@,0.97,;t t
-s,@ACLOCAL@,${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run aclocal-1.9,;t t
-s,@AUTOCONF@,${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoconf,;t t
-s,@AUTOMAKE@,${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run automake-1.9,;t t
-s,@AUTOHEADER@,${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoheader,;t t
-s,@MAKEINFO@,${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run makeinfo,;t t
-s,@install_sh@,/work/elfutils/stock/elfutils-0.97/config/install-sh,;t t
-s,@STRIP@,,;t t
-s,@ac_ct_STRIP@,,;t t
-s,@INSTALL_STRIP_PROGRAM@,${SHELL} $(install_sh) -c -s,;t t
-s,@mkdir_p@,mkdir -p --,;t t
-s,@AWK@,gawk,;t t
-s,@SET_MAKE@,,;t t
-s,@am__leading_dot@,.,;t t
-s,@AMTAR@,${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run tar,;t t
-s,@am__tar@,${AMTAR} chof - "$$tardir",;t t
-s,@am__untar@,${AMTAR} xf -,;t t
-s,@build@,i686-pc-linux-gnu,;t t
-s,@build_cpu@,i686,;t t
-s,@build_vendor@,pc,;t t
-s,@build_os@,linux-gnu,;t t
-s,@host@,i686-pc-linux-gnu,;t t
-s,@host_cpu@,i686,;t t
-s,@host_vendor@,pc,;t t
-s,@host_os@,linux-gnu,;t t
-s,@CC@,gcc,;t t
-s,@CFLAGS@,-g -O2,;t t
-s,@LDFLAGS@,,;t t
-s,@CPPFLAGS@,,;t t
-s,@ac_ct_CC@,gcc,;t t
-s,@EXEEXT@,,;t t
-s,@OBJEXT@,o,;t t
-s,@DEPDIR@,.deps,;t t
-s,@am__include@,include,;t t
-s,@am__quote@,,;t t
-s,@AMDEP_TRUE@,,;t t
-s,@AMDEP_FALSE@,#,;t t
-s,@AMDEPBACKSLASH@,\,;t t
-s,@CCDEPMODE@,depmode=gcc3,;t t
-s,@am__fastdepCC_TRUE@,,;t t
-s,@am__fastdepCC_FALSE@,#,;t t
-s,@CPP@,gcc -E,;t t
-s,@EGREP@,grep -E,;t t
-s,@MKINSTALLDIRS@,config/mkinstalldirs,;t t
-s,@MSGFMT@,/usr/bin/msgfmt,;t t
-s,@GMSGFMT@,/usr/bin/msgfmt,;t t
-s,@XGETTEXT@,/usr/bin/xgettext,;t t
-s,@MSGMERGE@,/usr/bin/msgmerge,;t t
-s,@USE_NLS@,yes,;t t
-s,@LIBICONV@,-liconv,;t t
-s,@LTLIBICONV@,-liconv,;t t
-s,@INTLLIBS@,,;t t
-s,@LIBINTL@,,;t t
-s,@LTLIBINTL@,,;t t
-s,@POSUB@,po,;t t
-s,@RANLIB@,ranlib,;t t
-s,@ac_ct_RANLIB@,ranlib,;t t
-s,@YACC@,bison -y,;t t
-s,@LEX@,flex,;t t
-s,@LEXLIB@,-lfl,;t t
-s,@LEX_OUTPUT_ROOT@,lex.yy,;t t
-s,@LOCALEDIR@,${prefix}/share,;t t
-s,@DATADIRNAME@,${prefix}/share,;t t
-s,@NATIVE_LD_TRUE@,#,;t t
-s,@NATIVE_LD_FALSE@,,;t t
-s,@base_cpu@,none,;t t
-s,@MUDFLAP_TRUE@,#,;t t
-s,@MUDFLAP_FALSE@,,;t t
-s,@LIBOBJS@,,;t t
-s,@LTLIBOBJS@,,;t t
-CEOF
-
- # Split the substitutions into bite-sized pieces for seds with
- # small command number limits, like on Digital OSF/1 and HP-UX.
- ac_max_sed_lines=48
- ac_sed_frag=1 # Number of current file.
- ac_beg=1 # First line for current file.
- ac_end=$ac_max_sed_lines # Line after last line for current file.
- ac_more_lines=:
- ac_sed_cmds=
- while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- else
- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- fi
- if test ! -s $tmp/subs.frag; then
- ac_more_lines=false
- else
- # The purpose of the label and of the branching condition is to
- # speed up the sed processing (if there are no `@' at all, there
- # is no need to browse any of the substitutions).
- # These are the two extra sed commands mentioned above.
- (echo ':t
- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
- fi
- ac_sed_frag=`expr $ac_sed_frag + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_lines`
- fi
- done
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
- fi
-fi # test -n "$CONFIG_FILES"
-
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
- esac
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- configure_input=
- else
- configure_input="$ac_file. "
- fi
- configure_input=$configure_input"Generated from `echo $ac_file_in |
- sed 's,.*/,,'` by configure."
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
-
- if test x"$ac_file" != x-; then
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
- sed "/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ ]*$//;
-}
-
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
- if test x"$ac_file" != x-; then
- mv $tmp/out $ac_file
- else
- cat $tmp/out
- rm -f $tmp/out
- fi
-
-done
-
-#
-# CONFIG_HEADER section.
-#
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='[ ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='$,\1#\2define\3'
-ac_uC=' '
-ac_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- # Do quote $f, to prevent DOS paths from being IFS'd.
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
- # Remove the trailing spaces.
- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
-
- # Handle all the #define templates only if necessary.
- if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then
- # If there are no defines, we may have an empty if/fi
- :
- cat >$tmp/defines.sed <<CEOF
-/^[ ]*#[ ]*define/!b
-t clr
-: clr
-${ac_dA}PACKAGE_NAME${ac_dB}PACKAGE_NAME${ac_dC}"Red Hat elfutils"${ac_dD}
-${ac_dA}PACKAGE_TARNAME${ac_dB}PACKAGE_TARNAME${ac_dC}"elfutils"${ac_dD}
-${ac_dA}PACKAGE_VERSION${ac_dB}PACKAGE_VERSION${ac_dC}"0.97"${ac_dD}
-${ac_dA}PACKAGE_STRING${ac_dB}PACKAGE_STRING${ac_dC}"Red Hat elfutils 0.97"${ac_dD}
-${ac_dA}PACKAGE_BUGREPORT${ac_dB}PACKAGE_BUGREPORT${ac_dC}"http://bugzilla.redhat.com/bugzilla/"${ac_dD}
-${ac_dA}PACKAGE${ac_dB}PACKAGE${ac_dC}"elfutils"${ac_dD}
-${ac_dA}VERSION${ac_dB}VERSION${ac_dC}"0.97"${ac_dD}
-${ac_dA}ENABLE_NLS${ac_dB}ENABLE_NLS${ac_dC}1${ac_dD}
-${ac_dA}HAVE_GETTEXT${ac_dB}HAVE_GETTEXT${ac_dC}1${ac_dD}
-${ac_dA}HAVE_DCGETTEXT${ac_dB}HAVE_DCGETTEXT${ac_dC}1${ac_dD}
-${ac_dA}YYTEXT_POINTER${ac_dB}YYTEXT_POINTER${ac_dC}1${ac_dD}
-${ac_dA}LOCALEDIR${ac_dB}LOCALEDIR${ac_dC}"\${prefix}/share"${ac_dD}
-${ac_dA}_FILE_OFFSET_BITS${ac_dB}_FILE_OFFSET_BITS${ac_dC}64${ac_dD}
-CEOF
- sed -f $tmp/defines.sed $tmp/in >$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-
- fi # grep
-
- # Handle all the #undef templates
- cat >$tmp/undefs.sed <<CEOF
-/^[ ]*#[ ]*undef/!b
-t clr
-: clr
-${ac_uA}PACKAGE_NAME${ac_uB}PACKAGE_NAME${ac_uC}"Red Hat elfutils"${ac_uD}
-${ac_uA}PACKAGE_TARNAME${ac_uB}PACKAGE_TARNAME${ac_uC}"elfutils"${ac_uD}
-${ac_uA}PACKAGE_VERSION${ac_uB}PACKAGE_VERSION${ac_uC}"0.97"${ac_uD}
-${ac_uA}PACKAGE_STRING${ac_uB}PACKAGE_STRING${ac_uC}"Red Hat elfutils 0.97"${ac_uD}
-${ac_uA}PACKAGE_BUGREPORT${ac_uB}PACKAGE_BUGREPORT${ac_uC}"http://bugzilla.redhat.com/bugzilla/"${ac_uD}
-${ac_uA}PACKAGE${ac_uB}PACKAGE${ac_uC}"elfutils"${ac_uD}
-${ac_uA}VERSION${ac_uB}VERSION${ac_uC}"0.97"${ac_uD}
-${ac_uA}ENABLE_NLS${ac_uB}ENABLE_NLS${ac_uC}1${ac_uD}
-${ac_uA}HAVE_GETTEXT${ac_uB}HAVE_GETTEXT${ac_uC}1${ac_uD}
-${ac_uA}HAVE_DCGETTEXT${ac_uB}HAVE_DCGETTEXT${ac_uC}1${ac_uD}
-${ac_uA}YYTEXT_POINTER${ac_uB}YYTEXT_POINTER${ac_uC}1${ac_uD}
-${ac_uA}LOCALEDIR${ac_uB}LOCALEDIR${ac_uC}"\${prefix}/share"${ac_uD}
-${ac_uA}_FILE_OFFSET_BITS${ac_uB}_FILE_OFFSET_BITS${ac_uC}64${ac_uD}
-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-CEOF
- sed -f $tmp/undefs.sed $tmp/in >$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- echo "/* Generated by configure. */" >$tmp/config.h
- else
- echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
- fi
- cat $tmp/in >>$tmp/config.h
- rm -f $tmp/in
- if test x"$ac_file" != x-; then
- if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
- { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
- else
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- rm -f $ac_file
- mv $tmp/config.h $ac_file
- fi
- else
- cat $tmp/config.h
- rm -f $tmp/config.h
- fi
-# Compute $ac_file's index in $config_headers.
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $ac_file | $ac_file:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
-$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X$ac_file : 'X\(//\)[^/]' \| \
- X$ac_file : 'X\(//\)$' \| \
- X$ac_file : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X$ac_file |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`/stamp-h$_am_stamp_count
-done
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
- ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
- ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_dest" : 'X\(//\)[^/]' \| \
- X"$ac_dest" : 'X\(//\)$' \| \
- X"$ac_dest" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
- case $ac_dest in
- depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # So let's grep whole file.
- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
- dirpart=`(dirname "$mf") 2>/dev/null ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`(dirname "$file") 2>/dev/null ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p $dirpart/$fdir
- else
- as_dir=$dirpart/$fdir
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
-echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
- { (exit 1); exit 1; }; }; }
-
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
-done
- ;;
- default-1 )
- for ac_file in $CONFIG_FILES; do
- # Support "outfile[:infile[:infile...]]"
- case "$ac_file" in
- *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- esac
- # PO directories have a Makefile.in generated from Makefile.in.in.
- case "$ac_file" in */Makefile.in)
- # Adjust a relative srcdir.
- ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
- ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
- ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
- # In autoconf-2.13 it is called $ac_given_srcdir.
- # In autoconf-2.50 it is called $srcdir.
- test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
- case "$ac_given_srcdir" in
- .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
- /*) top_srcdir="$ac_given_srcdir" ;;
- *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
- if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
- rm -f "$ac_dir/POTFILES"
- test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
- cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
- # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
- # on $ac_dir but don't depend on user-specified configuration
- # parameters.
- if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
- # The LINGUAS file contains the set of available languages.
- if test -n "$ALL_LINGUAS"; then
- test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
- fi
- ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
- # Hide the ALL_LINGUAS assigment from automake.
- eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
- fi
- case "$ac_given_srcdir" in
- .) srcdirpre= ;;
- *) srcdirpre='$(srcdir)/' ;;
- esac
- POFILES=
- GMOFILES=
- UPDATEPOFILES=
- DUMMYPOFILES=
- for lang in $ALL_LINGUAS; do
- POFILES="$POFILES $srcdirpre$lang.po"
- GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
- UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
- DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
- done
- # CATALOGS depends on both $ac_dir and the user's LINGUAS
- # environment variable.
- INST_LINGUAS=
- if test -n "$ALL_LINGUAS"; then
- for presentlang in $ALL_LINGUAS; do
- useit=no
- if test "%UNSET%" != "$LINGUAS"; then
- desiredlanguages="$LINGUAS"
- else
- desiredlanguages="$ALL_LINGUAS"
- fi
- for desiredlang in $desiredlanguages; do
- # Use the presentlang catalog if desiredlang is
- # a. equal to presentlang, or
- # b. a variant of presentlang (because in this case,
- # presentlang can be used as a fallback for messages
- # which are not translated in the desiredlang catalog).
- case "$desiredlang" in
- "$presentlang"*) useit=yes;;
- esac
- done
- if test $useit = yes; then
- INST_LINGUAS="$INST_LINGUAS $presentlang"
- fi
- done
- fi
- CATALOGS=
- if test -n "$INST_LINGUAS"; then
- for lang in $INST_LINGUAS; do
- CATALOGS="$CATALOGS $lang.gmo"
- done
- fi
- test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
- sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
- for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
- if test -f "$f"; then
- case "$f" in
- *.orig | *.bak | *~) ;;
- *) cat "$f" >> "$ac_dir/Makefile" ;;
- esac
- fi
- done
- fi
- ;;
- esac
- done ;;
- esac
-done
-
-{ (exit 0); exit 0; }
diff --git a/config/ChangeLog b/config/ChangeLog
deleted file mode 100644
index 783365d4..00000000
--- a/config/ChangeLog
+++ /dev/null
@@ -1,15 +0,0 @@
-2004-01-29 Ulrich Drepper <drepper@redhat.com>
-
- * elfutils.spec.in: Update BuildRequires.
-
-2004-01-17 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am: New file.
- * config.guess: Moved to here from toplevel.
- * config.rpath: Likewise.
- * config.sub: Likewise.
- * depcomp: Likewise.
- * install-sh: Likewise.
- * missing: Likewise.
- * mkinstalldirs: Likewise.
- * elfutils.spec.in: New file.
diff --git a/config/Makefile b/config/Makefile
deleted file mode 100644
index 9dbd8a8e..00000000
--- a/config/Makefile
+++ /dev/null
@@ -1,312 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# config/Makefile. Generated from Makefile.in by configure.
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-srcdir = .
-top_srcdir = ..
-
-pkgdatadir = $(datadir)/elfutils
-pkglibdir = $(libdir)/elfutils
-pkgincludedir = $(includedir)/elfutils
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = /usr/bin/install -c
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = i686-pc-linux-gnu
-host_triplet = i686-pc-linux-gnu
-subdir = config
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog \
- config.guess config.rpath config.sub depcomp install-sh \
- missing mkinstalldirs
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-SOURCES =
-DIST_SOURCES =
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run aclocal-1.9
-AMDEP_FALSE = #
-AMDEP_TRUE =
-AMTAR = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run tar
-AUTOCONF = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoconf
-AUTOHEADER = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoheader
-AUTOMAKE = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run automake-1.9
-AWK = gawk
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CFLAGS = -g -O2
-CPP = gcc -E
-CPPFLAGS =
-CYGPATH_W = echo
-DATADIRNAME = ${prefix}/share
-DEFS = -DHAVE_CONFIG_H
-DEPDIR = .deps
-ECHO_C =
-ECHO_N = -n
-ECHO_T =
-EGREP = grep -E
-EXEEXT =
-GMSGFMT = /usr/bin/msgfmt
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
-INTLLIBS =
-LDFLAGS =
-LEX = flex
-LEXLIB = -lfl
-LEX_OUTPUT_ROOT = lex.yy
-LIBICONV = -liconv
-LIBINTL =
-LIBOBJS =
-LIBS =
-LOCALEDIR = ${prefix}/share
-LTLIBICONV = -liconv
-LTLIBINTL =
-LTLIBOBJS =
-MAKEINFO = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run makeinfo
-MKINSTALLDIRS = config/mkinstalldirs
-MSGFMT = /usr/bin/msgfmt
-MSGMERGE = /usr/bin/msgmerge
-MUDFLAP_FALSE =
-MUDFLAP_TRUE = #
-NATIVE_LD_FALSE =
-NATIVE_LD_TRUE = #
-OBJEXT = o
-PACKAGE = elfutils
-PACKAGE_BUGREPORT = http://bugzilla.redhat.com/bugzilla/
-PACKAGE_NAME = Red Hat elfutils
-PACKAGE_STRING = Red Hat elfutils 0.97
-PACKAGE_TARNAME = elfutils
-PACKAGE_VERSION = 0.97
-PATH_SEPARATOR = :
-POSUB = po
-RANLIB = ranlib
-SET_MAKE =
-SHELL = /bin/sh
-STRIP =
-USE_NLS = yes
-VERSION = 0.97
-XGETTEXT = /usr/bin/xgettext
-YACC = bison -y
-ac_ct_CC = gcc
-ac_ct_RANLIB = ranlib
-ac_ct_STRIP =
-am__fastdepCC_FALSE = #
-am__fastdepCC_TRUE =
-am__include = include
-am__leading_dot = .
-am__quote =
-am__tar = ${AMTAR} chof - "$$tardir"
-am__untar = ${AMTAR} xf -
-base_cpu = none
-bindir = ${exec_prefix}/bin
-build = i686-pc-linux-gnu
-build_alias =
-build_cpu = i686
-build_os = linux-gnu
-build_vendor = pc
-datadir = ${prefix}/share
-exec_prefix = ${prefix}
-host = i686-pc-linux-gnu
-host_alias =
-host_cpu = i686
-host_os = linux-gnu
-host_vendor = pc
-includedir = ${prefix}/include
-infodir = ${prefix}/info
-install_sh = /work/elfutils/stock/elfutils-0.97/config/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-localstatedir = ${prefix}/var
-mandir = ${prefix}/man
-mkdir_p = mkdir -p --
-oldincludedir = /usr/include
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-program_transform_name = s,x,x,
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-sysconfdir = ${prefix}/etc
-target_alias =
-EXTRA_DIST = elfutils.spec.in
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits config/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits config/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-uninstall-info-am:
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-exec \
- install-exec-am install-info install-info-am install-man \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
- uninstall-info-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/config/Makefile.am b/config/Makefile.am
deleted file mode 100644
index 4f327520..00000000
--- a/config/Makefile.am
+++ /dev/null
@@ -1,19 +0,0 @@
-## Process this file with automake to produce Makefile.in -*-Makefile-*-
-## Configure input file for elfutils.
-##
-## Copyright (C) 2004 Red Hat, Inc.
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation, version 2.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software Foundation,
-## Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-##
-EXTRA_DIST = elfutils.spec.in
diff --git a/config/Makefile.in b/config/Makefile.in
deleted file mode 100644
index 7b069373..00000000
--- a/config/Makefile.in
+++ /dev/null
@@ -1,312 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = config
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog \
- config.guess config.rpath config.sub depcomp install-sh \
- missing mkinstalldirs
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-SOURCES =
-DIST_SOURCES =
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GMSGFMT = @GMSGFMT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
-MUDFLAP_FALSE = @MUDFLAP_FALSE@
-MUDFLAP_TRUE = @MUDFLAP_TRUE@
-NATIVE_LD_FALSE = @NATIVE_LD_FALSE@
-NATIVE_LD_TRUE = @NATIVE_LD_TRUE@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-XGETTEXT = @XGETTEXT@
-YACC = @YACC@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-base_cpu = @base_cpu@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-EXTRA_DIST = elfutils.spec.in
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits config/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits config/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-uninstall-info-am:
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-exec \
- install-exec-am install-info install-info-am install-man \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
- uninstall-info-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/config/config.guess b/config/config.guess
deleted file mode 100644
index f1657bbc..00000000
--- a/config/config.guess
+++ /dev/null
@@ -1,1363 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002 Free Software Foundation, Inc.
-
-timestamp='2002-09-03'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
- --version | -v )
- echo "$version" ; exit 0 ;;
- --help | --h* | -h )
- echo "$usage"; exit 0 ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# This shell variable is my proudest work .. or something. --bje
-
-set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
-(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
- || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
-dummy=$tmpdir/dummy ;
-files="$dummy.c $dummy.o $dummy.rel $dummy" ;
-trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- if ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- rm -f $files ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ;
-unset files'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- *:NetBSD:*:*)
- # NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
- # switched to ELF, *-*-netbsd* would select the old
- # object file format. This provides both forward
- # compatibility and a consistent mechanism for selecting the
- # object file format.
- #
- # Note: NetBSD doesn't particularly care about the vendor
- # portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
- UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
- armeb) machine=armeb-unknown ;;
- arm*) machine=arm-unknown ;;
- sh3el) machine=shl-unknown ;;
- sh3eb) machine=sh-unknown ;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
- esac
- # The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
- case "${UNAME_MACHINE_ARCH}" in
- arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
- if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep __ELF__ >/dev/null
- then
- # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- # Return netbsd for either. FIX?
- os=netbsd
- else
- os=netbsdelf
- fi
- ;;
- *)
- os=netbsd
- ;;
- esac
- # The OS release
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit 0 ;;
- amiga:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- arc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- hp300:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- macppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme88k:OpenBSD:*:*)
- echo m88k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvmeppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- pmax:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sgi:OpenBSD:*:*)
- echo mipseb-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sun3:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- wgrisc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- *:OpenBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- alpha:OSF1:*:*)
- if test $UNAME_RELEASE = "V4.0"; then
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- fi
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- eval $set_cc_for_build
- cat <<EOF >$dummy.s
- .data
-\$Lformat:
- .byte 37,100,45,37,120,10,0 # "%d-%x\n"
-
- .text
- .globl main
- .align 4
- .ent main
-main:
- .frame \$30,16,\$26,0
- ldgp \$29,0(\$27)
- .prologue 1
- .long 0x47e03d80 # implver \$0
- lda \$2,-1
- .long 0x47e20c21 # amask \$2,\$1
- lda \$16,\$Lformat
- mov \$0,\$17
- not \$1,\$18
- jsr \$26,printf
- ldgp \$29,0(\$26)
- mov 0,\$16
- jsr \$26,exit
- .end main
-EOF
- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
- if test "$?" = 0 ; then
- case `$dummy` in
- 0-0)
- UNAME_MACHINE="alpha"
- ;;
- 1-0)
- UNAME_MACHINE="alphaev5"
- ;;
- 1-1)
- UNAME_MACHINE="alphaev56"
- ;;
- 1-101)
- UNAME_MACHINE="alphapca56"
- ;;
- 2-303)
- UNAME_MACHINE="alphaev6"
- ;;
- 2-307)
- UNAME_MACHINE="alphaev67"
- ;;
- 2-1307)
- UNAME_MACHINE="alphaev68"
- ;;
- 3-1307)
- UNAME_MACHINE="alphaev7"
- ;;
- esac
- fi
- rm -f $dummy.s $dummy && rmdir $tmpdir
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit 0 ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit 0 ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit 0;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit 0 ;;
- *:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit 0 ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit 0 ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit 0;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit 0 ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit 0 ;;
- DRS?6000:UNIX_SV:4.2*:7*)
- case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7 && exit 0 ;;
- esac ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- exit 0 ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit 0 ;;
- # The situation for MiNT is a little confusing. The machine name
- # can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit 0 ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit 0 ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit 0 ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit 0 ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit 0 ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy \
- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
- rm -f $dummy.c $dummy && rmdir $tmpdir
- echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
- Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit 0 ;;
- Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit 0 ;;
- Night_Hawk:*:*:PowerMAX_OS)
- echo powerpc-harris-powermax
- exit 0 ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit 0 ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit 0 ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit 0 ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit 0 ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit 0 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit 0 ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit 0 ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit 0 ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit 0 ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit 0 ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i*86:AIX:*:*)
- echo i386-ibm-aix
- exit 0 ;;
- ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
- rm -f $dummy.c $dummy && rmdir $tmpdir
- echo rs6000-ibm-aix3.2.5
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit 0 ;;
- *:AIX:*:[45])
- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit 0 ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit 0 ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit 0 ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit 0 ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit 0 ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit 0 ;;
- 9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
- esac ;;
- esac
- fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`$dummy`
- if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
- rm -f $dummy.c $dummy && rmdir $tmpdir
- fi ;;
- esac
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
- ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
- exit 0 ;;
- 3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
- rm -f $dummy.c $dummy && rmdir $tmpdir
- echo unknown-hitachi-hiuxwe2
- exit 0 ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit 0 ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit 0 ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit 0 ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit 0 ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit 0 ;;
- i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit 0 ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit 0 ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit 0 ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit 0 ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit 0 ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit 0 ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
- | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*T3D:*:*:*)
- echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:FreeBSD:*:*)
- # Determine whether the default compiler uses glibc.
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #if __GLIBC__ >= 2
- LIBC=gnu
- #else
- LIBC=
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- rm -f $dummy.c && rmdir $tmpdir
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
- exit 0 ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit 0 ;;
- i*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit 0 ;;
- i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
- exit 0 ;;
- x86:Interix*:3*)
- echo i386-pc-interix3
- exit 0 ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i386-pc-interix
- exit 0 ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit 0 ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit 0 ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- *:GNU:*:*)
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit 0 ;;
- arm*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
- ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
- m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
- mips:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips
- #undef mipsel
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mipsel
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips
- #else
- CPU=
- #endif
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- rm -f $dummy.c && rmdir $tmpdir
- test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
- ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
- exit 0 ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
- exit 0 ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
- exit 0 ;;
- parisc:Linux:*:* | hppa:Linux:*:*)
- # Look for CPU level
- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
- *) echo hppa-unknown-linux-gnu ;;
- esac
- exit 0 ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
- exit 0 ;;
- s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
- exit 0 ;;
- sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
- sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
- x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
- exit 0 ;;
- i*86:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us. cd to the root directory to prevent
- # problems with other programs or directories called `ld' in the path.
- # Set LC_ALL=C to ensure ld outputs messages in English.
- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
- | sed -ne '/supported targets:/!d
- s/[ ][ ]*/ /g
- s/.*supported targets: *//
- s/ .*//
- p'`
- case "$ld_supported_targets" in
- elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
- ;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit 0 ;;
- coff-i386)
- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- exit 0 ;;
- "")
- # Either a pre-BFD a.out linker (linux-gnuoldld) or
- # one that does not give us useful --help.
- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
- exit 0 ;;
- esac
- # Determine whether the default compiler is a.out or elf
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #ifdef __ELF__
- # ifdef __GLIBC__
- # if __GLIBC__ >= 2
- LIBC=gnu
- # else
- LIBC=gnulibc1
- # endif
- # else
- LIBC=gnulibc1
- # endif
- #else
- #ifdef __INTEL_COMPILER
- LIBC=gnu
- #else
- LIBC=gnuaout
- #endif
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- rm -f $dummy.c && rmdir $tmpdir
- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
- ;;
- i*86:DYNIX/ptx:4*:*)
- # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
- # earlier versions are messed up and put the nodename in both
- # sysname and nodename.
- echo i386-sequent-sysv4
- exit 0 ;;
- i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
- # I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit 0 ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- fi
- exit 0 ;;
- i*86:*:5:[78]*)
- case `/bin/uname -X | grep "^Machine"` in
- *486*) UNAME_MACHINE=i486 ;;
- *Pentium) UNAME_MACHINE=i586 ;;
- *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
- esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit 0 ;;
- i*86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
- (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
- && UNAME_MACHINE=i586
- (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit 0 ;;
- i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
- exit 0 ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit 0 ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit 0 ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit 0 ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit 0 ;;
- mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit 0 ;;
- M68*:*:R3V[567]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4 && exit 0 ;;
- m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit 0 ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit 0 ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit 0 ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit 0 ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes <hewes@openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit 0 ;;
- *:*:*:FTX*)
- # From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit 0 ;;
- *:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo hppa1.1-stratus-vos
- exit 0 ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit 0 ;;
- news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit 0 ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit 0 ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit 0 ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit 0 ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Darwin:*:*)
- echo `uname -p`-apple-darwin${UNAME_RELEASE}
- exit 0 ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
- UNAME_PROCESSOR=i386
- UNAME_MACHINE=pc
- fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit 0 ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit 0 ;;
- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
- exit 0 ;;
- *:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit 0 ;;
- BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit 0 ;;
- DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit 0 ;;
- *:Plan9:*:*)
- # "uname -m" is not consistent, so use $cputype instead. 386
- # is converted to i386 for consistency with other x86
- # operating systems.
- if test "$cputype" = "386"; then
- UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
- fi
- echo ${UNAME_MACHINE}-unknown-plan9
- exit 0 ;;
- i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
- # is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
- exit 0 ;;
- *:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit 0 ;;
- *:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit 0 ;;
- KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit 0 ;;
- XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit 0 ;;
- *:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit 0 ;;
- *:ITS:*:*)
- echo pdp10-unknown-its
- exit 0 ;;
- i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
- exit 0 ;;
- i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
- exit 0 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
-rm -f $dummy.c $dummy && rmdir $tmpdir
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit 0 ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- c34*)
- echo c34-convex-bsd
- exit 0 ;;
- c38*)
- echo c38-convex-bsd
- exit 0 ;;
- c4*)
- echo c4-convex-bsd
- exit 0 ;;
- esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
- ftp://ftp.gnu.org/pub/gnu/config/
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo = `(hostinfo) 2>/dev/null`
-/bin/universe = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/config/config.rpath b/config/config.rpath
deleted file mode 100644
index 5ead7586..00000000
--- a/config/config.rpath
+++ /dev/null
@@ -1,513 +0,0 @@
-#! /bin/sh
-# Output a system dependent set of variables, describing how to set the
-# run time search path of shared libraries in an executable.
-#
-# Copyright 1996-2002 Free Software Foundation, Inc.
-# Taken from GNU libtool, 2001
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-#
-# The first argument passed to this file is the canonical host specification,
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
-# should be set by the caller.
-#
-# The set of defined variables is at the end of this script.
-
-# All known linkers require a `.a' archive for static linking (except M$VC,
-# which needs '.lib').
-libext=a
-shlibext=
-
-host="$1"
-host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-wl=
-if test "$GCC" = yes; then
- wl='-Wl,'
-else
- case "$host_os" in
- aix3* | aix4* | aix5*)
- wl='-Wl,'
- ;;
- hpux9* | hpux10* | hpux11*)
- wl='-Wl,'
- ;;
- irix5* | irix6*)
- wl='-Wl,'
- ;;
- linux*)
- echo '__INTEL_COMPILER' > conftest.$ac_ext
- if $CC -E conftest.$ac_ext >/dev/null | grep __INTEL_COMPILER >/dev/null
- then
- :
- else
- # Intel icc
- wl='-Qoption,ld,'
- fi
- ;;
- osf3* | osf4* | osf5*)
- wl='-Wl,'
- ;;
- solaris*)
- wl='-Wl,'
- ;;
- sunos4*)
- wl='-Qoption ld '
- ;;
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- if test "x$host_vendor" = xsni; then
- wl='-LD'
- else
- wl='-Wl,'
- fi
- ;;
- esac
-fi
-
-hardcode_libdir_flag_spec=
-hardcode_libdir_separator=
-hardcode_direct=no
-hardcode_minus_L=no
-
-case "$host_os" in
- cygwin* | mingw* | pw32*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
-esac
-
-ld_shlibs=yes
-if test "$with_gnu_ld" = yes; then
- case "$host_os" in
- aix3* | aix4* | aix5*)
- # On AIX, the GNU linker is very broken
- ld_shlibs=no
- ;;
- amigaos*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we can use
- # them.
- ld_shlibs=no
- ;;
- beos*)
- if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
- :
- else
- ld_shlibs=no
- fi
- ;;
- cygwin* | mingw* | pw32*)
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- ;;
- solaris* | sysv5*)
- if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
- :
- else
- ld_shlibs=no
- fi
- ;;
- sunos4*)
- hardcode_direct=yes
- ;;
- *)
- if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
- :
- else
- ld_shlibs=no
- fi
- ;;
- esac
- if test "$ld_shlibs" = yes; then
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- fi
-else
- case "$host_os" in
- aix3*)
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test "$GCC" = yes; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
- aix4* | aix5*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- else
- aix_use_runtimelinking=no
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- esac
- fi
- hardcode_direct=yes
- hardcode_libdir_separator=':'
- if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" && \
- strings "$collect2name" | grep resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- hardcode_direct=yes
- else
- # We have old collect2
- hardcode_direct=unsupported
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- esac
- fi
- if test "$aix_use_runtimelinking" = yes; then
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
- else
- hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
- fi
- fi
- ;;
- amigaos*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- # see comment about different semantics on the GNU ld section
- ld_shlibs=no
- ;;
- cygwin* | mingw* | pw32*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec=' '
- libext=lib
- ;;
- darwin* | rhapsody*)
- hardcode_direct=yes
- ;;
- freebsd1*)
- ld_shlibs=no
- ;;
- freebsd2.2*)
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- ;;
- freebsd2*)
- hardcode_direct=yes
- hardcode_minus_L=yes
- ;;
- freebsd*)
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- ;;
- hpux9* | hpux10* | hpux11*)
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- hardcode_minus_L=yes # Not in the search PATH, but as the default
- # location of the library.
- ;;
- irix5* | irix6*)
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
- netbsd*)
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- ;;
- newsos6)
- hardcode_direct=yes
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
- openbsd*)
- hardcode_direct=yes
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- else
- case "$host_os" in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- ;;
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- osf3*)
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
- osf4* | osf5*)
- if test "$GCC" = yes; then
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- else
- # Both cc and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec='-rpath $libdir'
- fi
- hardcode_libdir_separator=:
- ;;
- sco3.2v5*)
- ;;
- solaris*)
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- sunos4*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- ;;
- sysv4)
- if test "x$host_vendor" = xsno; then
- hardcode_direct=yes # is this really true???
- else
- hardcode_direct=no # Motorola manual says yes, but my tests say they lie
- fi
- ;;
- sysv4.3*)
- ;;
- sysv5*)
- hardcode_libdir_flag_spec=
- ;;
- uts4*)
- hardcode_libdir_flag_spec='-L$libdir'
- ;;
- dgux*)
- hardcode_libdir_flag_spec='-L$libdir'
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- ld_shlibs=yes
- fi
- ;;
- sysv4.2uw2*)
- hardcode_direct=yes
- hardcode_minus_L=no
- ;;
- sysv5uw7* | unixware7*)
- ;;
- *)
- ld_shlibs=no
- ;;
- esac
-fi
-
-# Check dynamic linker characteristics
-libname_spec='lib$name'
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-case "$host_os" in
- aix3*)
- shlibext=so
- ;;
- aix4* | aix5*)
- shlibext=so
- ;;
- amigaos*)
- shlibext=ixlibrary
- ;;
- beos*)
- shlibext=so
- ;;
- bsdi4*)
- shlibext=so
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- ;;
- cygwin* | mingw* | pw32*)
- case $GCC,$host_os in
- yes,cygwin*)
- shlibext=dll.a
- ;;
- yes,mingw*)
- shlibext=dll
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
- ;;
- yes,pw32*)
- shlibext=dll
- ;;
- *)
- shlibext=dll
- ;;
- esac
- ;;
- darwin* | rhapsody*)
- shlibext=dylib
- ;;
- freebsd1*)
- ;;
- freebsd*)
- shlibext=so
- ;;
- gnu*)
- shlibext=so
- ;;
- hpux9* | hpux10* | hpux11*)
- shlibext=sl
- ;;
- irix5* | irix6*)
- shlibext=so
- case "$host_os" in
- irix5*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in
- *-32|*"-32 ") libsuff= shlibsuff= ;;
- *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 ;;
- *-64|*"-64 ") libsuff=64 shlibsuff=64 ;;
- *) libsuff= shlibsuff= ;;
- esac
- ;;
- esac
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- ;;
- linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
- ;;
- linux-gnu*)
- shlibext=so
- ;;
- netbsd*)
- shlibext=so
- ;;
- newsos6)
- shlibext=so
- ;;
- openbsd*)
- shlibext=so
- ;;
- os2*)
- libname_spec='$name'
- shlibext=dll
- ;;
- osf3* | osf4* | osf5*)
- shlibext=so
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
- sco3.2v5*)
- shlibext=so
- ;;
- solaris*)
- shlibext=so
- ;;
- sunos4*)
- shlibext=so
- ;;
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- shlibext=so
- case "$host_vendor" in
- motorola)
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
- uts4*)
- shlibext=so
- ;;
- dgux*)
- shlibext=so
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- shlibext=so
- fi
- ;;
-esac
-
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
-escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-escaped_sys_lib_search_path_spec=`echo "X$sys_lib_search_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-escaped_sys_lib_dlsearch_path_spec=`echo "X$sys_lib_dlsearch_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-
-sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
-
-# How to pass a linker flag through the compiler.
-wl="$escaped_wl"
-
-# Static library suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally "so").
-shlibext="$shlibext"
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator="$hardcode_libdir_separator"
-
-# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct="$hardcode_direct"
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L="$hardcode_minus_L"
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec="$escaped_sys_lib_search_path_spec"
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec="$escaped_sys_lib_dlsearch_path_spec"
-
-EOF
diff --git a/config/config.sub b/config/config.sub
deleted file mode 100644
index 1dea9b79..00000000
--- a/config/config.sub
+++ /dev/null
@@ -1,1470 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002 Free Software Foundation, Inc.
-
-timestamp='2002-09-05'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
- $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
- --version | -v )
- echo "$version" ; exit 0 ;;
- --help | --h* | -h )
- echo "$usage"; exit 0 ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help"
- exit 1 ;;
-
- *local*)
- # First pass through any local machine types.
- echo $1
- exit 0;;
-
- * )
- break ;;
- esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
- exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
- exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis)
- os=
- basic_machine=$1
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
- -psos*)
- os=-psos
- ;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 1750a | 580 \
- | a29k \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
- | clipper \
- | d10v | d30v | dlx | dsp16xx \
- | fr30 | frv \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | i370 | i860 | i960 | ia64 \
- | ip2k \
- | m32r | m68000 | m68k | m88k | mcore \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
- | mips64vr | mips64vrel \
- | mips64orion | mips64orionel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mipsisa32 | mipsisa32el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | ns16k | ns32k \
- | openrisc | or32 \
- | pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
- | pyramid \
- | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
- | sh64 | sh64le \
- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
- | strongarm \
- | tahoe | thumb | tic80 | tron \
- | v850 | v850e \
- | we32k \
- | x86 | xscale | xstormy16 | xtensa \
- | z8k)
- basic_machine=$basic_machine-unknown
- ;;
- m6811 | m68hc11 | m6812 | m68hc12)
- # Motorola 68HC11/12.
- basic_machine=$basic_machine-unknown
- os=-none
- ;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
- ;;
-
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | avr-* \
- | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \
- | clipper-* | cydra-* \
- | d10v-* | d30v-* | dlx-* \
- | elxsi-* \
- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | i*86-* | i860-* | i960-* | ia64-* \
- | ip2k-* \
- | m32r-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | mcore-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | mips16-* \
- | mips64-* | mips64el-* \
- | mips64vr-* | mips64vrel-* \
- | mips64orion-* | mips64orionel-* \
- | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* \
- | mips64vr5000-* | mips64vr5000el-* \
- | mipsisa32-* | mipsisa32el-* \
- | mipsisa64-* | mipsisa64el-* \
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipstx39 | mipstx39el \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
- | pyramid-* \
- | romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
- | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \
- | v850-* | v850e-* | vax-* \
- | we32k-* \
- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
- | xtensa-* \
- | ymp-* \
- | z8k-*)
- ;;
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- ;;
- decsystem10* | dec10*)
- basic_machine=pdp10-dec
- os=-tops10
- ;;
- decsystem20* | dec20*)
- basic_machine=pdp10-dec
- os=-tops20
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax)
- basic_machine=ns32k-encore
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- ;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
- ;;
- i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
- ;;
- i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
- ;;
- i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
- ;;
- iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- mingw32)
- basic_machine=i386-pc
- os=-mingw32
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- mmix*)
- basic_machine=mmix-knuth
- os=-mmixware
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- or32 | or32-*)
- basic_machine=or32-unknown
- os=-coff
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2)
- basic_machine=i686-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=power-ibm
- ;;
- ppc) basic_machine=powerpc-unknown
- ;;
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64) basic_machine=powerpc64-unknown
- ;;
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
- basic_machine=powerpc64le-unknown
- ;;
- ppc64le-* | powerpc64little-*)
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ps2)
- basic_machine=i386-ibm
- ;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- s390 | s390-*)
- basic_machine=s390-ibm
- ;;
- s390x | s390x-*)
- basic_machine=s390x-ibm
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
- ;;
- sb1)
- basic_machine=mipsisa64sb1-unknown
- ;;
- sb1el)
- basic_machine=mipsisa64sb1el-unknown
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sparclite-wrs | simso-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- st2000)
- basic_machine=m68k-tandem
- ;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- t3d)
- basic_machine=alpha-cray
- os=-unicos
- ;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
- ;;
- t90)
- basic_machine=t90-cray
- os=-unicos
- ;;
- tic4x | c4x*)
- basic_machine=tic4x-unknown
- os=-coff
- ;;
- tic54x | c54x*)
- basic_machine=tic54x-unknown
- os=-coff
- ;;
- tx39)
- basic_machine=mipstx39-unknown
- ;;
- tx39el)
- basic_machine=mipstx39el-unknown
- ;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- w65*)
- basic_machine=w65-wdc
- os=-none
- ;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
- ;;
- windows32)
- basic_machine=i386-pc
- os=-windows32-msvcrt
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
- ;;
- op50n)
- basic_machine=hppa1.1-oki
- ;;
- op60c)
- basic_machine=hppa1.1-oki
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- vax)
- basic_machine=vax-dec
- ;;
- pdp10)
- # there are many clones, so DEC is not a safe bet
- basic_machine=pdp10-unknown
- ;;
- pdp11)
- basic_machine=pdp11-dec
- ;;
- we32k)
- basic_machine=we32k-att
- ;;
- sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
- basic_machine=sh-unknown
- ;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- sparc | sparcv9 | sparcv9b)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
- ;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
- ;;
- *-unknown)
- # Make sure to match an already-canonicalized machine name.
- ;;
- *)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -svr4*)
- os=-sysv4
- ;;
- -unixware*)
- os=-sysv4.2uw
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
- ;;
- -nto*)
- os=-nto-qnx
- ;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
- ;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
- ;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -opened*)
- os=-openedition
- ;;
- -wince*)
- os=-wince
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -atheos*)
- os=-atheos
- ;;
- -386bsd)
- os=-bsd
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- -nova*)
- os=-rtmk-nova
- ;;
- -ns2 )
- os=-nextstep2
- ;;
- -nsk*)
- os=-nsk
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -ose*)
- os=-ose
- ;;
- -es1800*)
- os=-ose
- ;;
- -xenix)
- os=-xenix
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-rebel)
- os=-linux
- ;;
- arm*-semi)
- os=-aout
- ;;
- # This must come before the *-dec entry.
- pdp10-*)
- os=-tops20
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
- ;;
- m68*-cisco)
- os=-aout
- ;;
- mips*-cisco)
- os=-elf
- ;;
- mips*-*)
- os=-elf
- ;;
- or32-*)
- os=-coff
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-be)
- os=-beos
- ;;
- *-ibm)
- os=-aix
- ;;
- *-wec)
- os=-proelf
- ;;
- *-winbond)
- os=-proelf
- ;;
- *-oki)
- os=-proelf
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigaos
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-next )
- os=-nextstep
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
- ;;
- *-rom68k)
- os=-coff
- ;;
- *-*bug)
- os=-coff
- ;;
- *-apple)
- os=-macos
- ;;
- *-atari*)
- os=-mint
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -aix*)
- vendor=ibm
- ;;
- -beos*)
- vendor=be
- ;;
- -hpux*)
- vendor=hp
- ;;
- -mpeix*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs* | -opened*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -vxsim* | -vxworks* | -windiss*)
- vendor=wrs
- ;;
- -aux*)
- vendor=apple
- ;;
- -hms*)
- vendor=hitachi
- ;;
- -mpw* | -macos*)
- vendor=apple
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- vendor=atari
- ;;
- -vos*)
- vendor=stratus
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/config/depcomp b/config/depcomp
deleted file mode 100644
index 368e3be9..00000000
--- a/config/depcomp
+++ /dev/null
@@ -1,436 +0,0 @@
-#! /bin/sh
-
-# depcomp - compile a program generating dependencies as side-effects
-# Copyright 1999, 2000 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
-
-if test -z "$depmode" || test -z "$source" || test -z "$object"; then
- echo "depcomp: Variables source, object and depmode must be set" 1>&2
- exit 1
-fi
-# `libtool' can also be set to `yes' or `no'.
-
-if test -z "$depfile"; then
- base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
- dir=`echo "$object" | sed 's,/.*$,/,'`
- if test "$dir" = "$object"; then
- dir=
- fi
- # FIXME: should be _deps on DOS.
- depfile="$dir.deps/$base"
-fi
-
-tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
-
-rm -f "$tmpdepfile"
-
-# Some modes work just like other modes, but use different flags. We
-# parameterize here, but still list the modes in the big case below,
-# to make depend.m4 easier to write. Note that we *cannot* use a case
-# here, because this file can only contain one case statement.
-if test "$depmode" = hp; then
- # HP compiler uses -M and no extra arg.
- gccflag=-M
- depmode=gcc
-fi
-
-if test "$depmode" = dashXmstdout; then
- # This is just like dashmstdout with a different argument.
- dashmflag=-xM
- depmode=dashmstdout
-fi
-
-case "$depmode" in
-gcc3)
-## gcc 3 implements dependency tracking that does exactly what
-## we want. Yay! Note: for some reason libtool 1.4 doesn't like
-## it if -MD -MP comes after the -MF stuff. Hmm.
- "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- mv "$tmpdepfile" "$depfile"
- ;;
-
-gcc)
-## There are various ways to get dependency output from gcc. Here's
-## why we pick this rather obscure method:
-## - Don't want to use -MD because we'd like the dependencies to end
-## up in a subdir. Having to rename by hand is ugly.
-## (We might end up doing this anyway to support other compilers.)
-## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-## -MM, not -M (despite what the docs say).
-## - Using -M directly means running the compiler twice (even worse
-## than renaming).
- if test -z "$gccflag"; then
- gccflag=-MD,
- fi
- "$@" -Wp,"$gccflag$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
- sed -e 's/^[^:]*: / /' \
- -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the `deleted header file' problem.
-## The problem is that when a header file which appears in a .P file
-## is deleted, the dependency causes make to die (because there is
-## typically no way to rebuild the header). We avoid this by adding
-## dummy dependencies for each header file. Too bad gcc doesn't do
-## this for us directly.
- tr ' ' '
-' < "$tmpdepfile" |
-## Some versions of gcc put a space before the `:'. On the theory
-## that the space means something, we add a space to the output as
-## well.
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-sgi)
- if test "$libtool" = yes; then
- "$@" "-Wp,-MDupdate,$tmpdepfile"
- else
- "$@" -MDupdate "$tmpdepfile"
- fi
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
-
- if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
- echo "$object : \\" > "$depfile"
-
- # Clip off the initial element (the dependent). Don't try to be
- # clever and replace this with sed code, as IRIX sed won't handle
- # lines with more than a fixed number of characters (4096 in
- # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
- # the IRIX cc adds comments like `#:fec' to the end of the
- # dependency line.
- tr ' ' '
-' < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
- tr '
-' ' ' >> $depfile
- echo >> $depfile
-
- # The second pass generates a dummy entry for each header file.
- tr ' ' '
-' < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
- >> $depfile
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-aix)
- # The C for AIX Compiler uses -M and outputs the dependencies
- # in a .u file. This file always lives in the current directory.
- # Also, the AIX compiler puts `$object:' at the start of each line;
- # $object doesn't have directory information.
- stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
- tmpdepfile="$stripped.u"
- outname="$stripped.o"
- if test "$libtool" = yes; then
- "$@" -Wc,-M
- else
- "$@" -M
- fi
-
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
-
- if test -f "$tmpdepfile"; then
- # Each line is of the form `foo.o: dependent.h'.
- # Do two passes, one to just change these to
- # `$object: dependent.h' and one to simply `dependent.h:'.
- sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
- sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-tru64)
- # The Tru64 AIX compiler uses -MD to generate dependencies as a side
- # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
- # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
- # dependencies in `foo.d' instead, so we check for that too.
- # Subdirectories are respected.
-
- base=`echo "$object" | sed -e 's/\.o$/.d/' -e 's/\.lo$/.d/'`
- tmpdepfile1="$base.o.d"
- tmpdepfile2="$base.d"
- if test "$libtool" = yes; then
- "$@" -Wc,-MD
- else
- "$@" -MD
- fi
-
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2"
- exit $stat
- fi
-
- if test -f "$tmpdepfile1"; then
- tmpdepfile="$tmpdepfile1"
- else
- tmpdepfile="$tmpdepfile2"
- fi
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- # That's a space and a tab in the [].
- sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-#nosideeffect)
- # This comment above is used by automake to tell side-effect
- # dependency tracking mechanisms from slower ones.
-
-dashmstdout)
- # Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o,
- # because we must use -o when running libtool.
- test -z "$dashmflag" && dashmflag=-M
- ( IFS=" "
- case " $* " in
- *" --mode=compile "*) # this is libtool, let us make it quiet
- for arg
- do # cycle over the arguments
- case "$arg" in
- "--mode=compile")
- # insert --quiet before "--mode=compile"
- set fnord "$@" --quiet
- shift # fnord
- ;;
- esac
- set fnord "$@" "$arg"
- shift # fnord
- shift # "$arg"
- done
- ;;
- esac
- "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- tr ' ' '
-' < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-dashXmstdout)
- # This case only exists to satisfy depend.m4. It is never actually
- # run, as this mode is specially recognized in the preamble.
- exit 1
- ;;
-
-makedepend)
- # X makedepend
- (
- shift
- cleared=no
- for arg in "$@"; do
- case $cleared in no)
- set ""; shift
- cleared=yes
- esac
- case "$arg" in
- -D*|-I*)
- set fnord "$@" "$arg"; shift;;
- -*)
- ;;
- *)
- set fnord "$@" "$arg"; shift;;
- esac
- done
- obj_suffix="`echo $object | sed 's/^.*\././'`"
- touch "$tmpdepfile"
- ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- sed '1,2d' "$tmpdepfile" | tr ' ' '
-' | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile" "$tmpdepfile".bak
- ;;
-
-cpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o,
- # because we must use -o when running libtool.
- ( IFS=" "
- case " $* " in
- *" --mode=compile "*)
- for arg
- do # cycle over the arguments
- case $arg in
- "--mode=compile")
- # insert --quiet before "--mode=compile"
- set fnord "$@" --quiet
- shift # fnord
- ;;
- esac
- set fnord "$@" "$arg"
- shift # fnord
- shift # "$arg"
- done
- ;;
- esac
- "$@" -E |
- sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
- sed '$ s: \\$::' > "$tmpdepfile"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- cat < "$tmpdepfile" >> "$depfile"
- sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvisualcpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o,
- # because we must use -o when running libtool.
- ( IFS=" "
- case " $* " in
- *" --mode=compile "*)
- for arg
- do # cycle over the arguments
- case $arg in
- "--mode=compile")
- # insert --quiet before "--mode=compile"
- set fnord "$@" --quiet
- shift # fnord
- ;;
- esac
- set fnord "$@" "$arg"
- shift # fnord
- shift # "$arg"
- done
- ;;
- esac
- for arg
- do
- case "$arg" in
- "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
- set fnord "$@"
- shift
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift
- shift
- ;;
- esac
- done
- "$@" -E |
- sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
- echo " " >> "$depfile"
- . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-none)
- exec "$@"
- ;;
-
-*)
- echo "Unknown depmode $depmode" 1>&2
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in
deleted file mode 100644
index f5377b0e..00000000
--- a/config/elfutils.spec.in
+++ /dev/null
@@ -1,331 +0,0 @@
-%define gpl 0
-Summary: A collection of utilities and DSOs to handle compiled objects.
-Name: elfutils
-Version: @PACKAGE_VERSION@
-Release: 1
-Copyright: OSL
-Group: Development/Tools
-#URL: file://home/devel/drepper/
-Source: elfutils-%{version}.tar.gz
-Obsoletes: libelf libelf-devel
-Requires: elfutils-libelf = %{version}-%{release}
-%if %{gpl}
-Requires: binutils >= 2.14.90.0.4-26.2
-%endif
-
-# ExcludeArch: xxx
-
-BuildRoot: %{_tmppath}/%{name}-root
-BuildRequires: gcc >= 3.2
-BuildRequires: bison >= 1.875
-BuildRequires: flex >= 2.5.4a
-
-%define _gnu %{nil}
-%define _programprefix eu-
-
-%description
-Elfutils is a collection of utilities, including ld (a linker),
-nm (for listing symbols from object files), size (for listing the
-section sizes of an object or archive file), strip (for discarding
-symbols), readelf (to see the raw ELF file structures), and elflint
-(to check for well-formed ELF files). Also included are numerous
-helper libraries which implement DWARF, ELF, and machine-specific ELF
-handling.
-
-%package devel
-Summary: Development libraries to handle compiled objects.
-Group: Development/Tools
-Copyright: OSL
-Requires: elfutils = %{version}-%{release}
-Requires: elfutils-libelf-devel = %{version}-%{release}
-
-%description devel
-The elfutils-devel package contains the libraries to create
-applications for handling compiled objects. libebl provides some
-higher-level ELF access functionality. libdw provides access to
-the DWARF debugging information. libasm provides a programmable
-assembler interface.
-
-%package libelf
-Summary: Library to read and write ELF files.
-Group: Development/Tools
-%if %{gpl}
-Copyright: GPL
-%endif
-
-%description libelf
-The elfutils-libelf package provides a DSO which allows reading and
-writing ELF files on a high level. Third party programs depend on
-this package to read internals of ELF files. The programs of the
-elfutils package use it also to generate new ELF files.
-
-%package libelf-devel
-Summary: Development support for libelf
-Group: Development/Tools
-Requires: elfutils-libelf = %{version}-%{release}
-Conflicts: libelf-devel
-%if %{gpl}
-Copyright: GPL
-%endif
-
-%description libelf-devel
-The elfutils-libelf-devel package contains the libraries to create
-applications for handling compiled objects. libelf allows you to
-access the internals of the ELF object file format, so you can see the
-different sections of an ELF file.
-
-%prep
-%setup -q
-
-%build
-mkdir build-%{_target_platform}
-cd build-%{_target_platform}
-../configure \
- --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} \
- --bindir=%{_bindir} --sbindir=%{_sbindir} --sysconfdir=%{_sysconfdir} \
- --datadir=%{_datadir} --includedir=%{_includedir} --libdir=%{_libdir} \
- --libexecdir=%{_libexecdir} --localstatedir=%{_localstatedir} \
- --sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
- --infodir=%{_infodir} --program-prefix=%{_programprefix} --enable-shared
-cd ..
-
-%install
-rm -rf ${RPM_BUILD_ROOT}
-mkdir -p ${RPM_BUILD_ROOT}%{_prefix}
-
-cd build-%{_target_platform}
-#make check
-%makeinstall
-
-chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib*.so*
-%if !%{gpl}
-chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/elfutils/lib*.so*
-%endif
-
-cd ..
-
-%if !%{gpl}
-# XXX Nuke unpackaged files
-{ cd ${RPM_BUILD_ROOT}
- rm -f .%{_bindir}/eu-ld
- rm -f .%{_includedir}/elfutils/libasm.h
- rm -f .%{_includedir}/elfutils/libdw.h
- rm -f .%{_libdir}/libasm-%{version}.so
- rm -f .%{_libdir}/libasm.a
- rm -f .%{_libdir}/libdw.so
- rm -f .%{_libdir}/libdw.a
-}
-%endif
-
-%check
-cd build-%{_target_platform}
-make check
-
-%clean
-rm -rf ${RPM_BUILD_ROOT}
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-%post libelf -p /sbin/ldconfig
-
-%postun libelf -p /sbin/ldconfig
-
-%files
-%defattr(-,root,root)
-%doc README TODO
-%if %{gpl}
-%doc fake-src/FULL
-%endif
-%{_bindir}/eu-elflint
-%{_bindir}/eu-nm
-%{_bindir}/eu-readelf
-%{_bindir}/eu-size
-%{_bindir}/eu-strip
-%if !%{gpl}
-#%{_bindir}/eu-ld
-#%{_libdir}/libasm-%{version}.so
-%{_libdir}/libdw-%{version}.so
-#%{_libdir}/libasm*.so.*
-%{_libdir}/libdw*.so.*
-%dir %{_libdir}/elfutils
-%{_libdir}/elfutils/lib*.so
-%endif
-
-%files devel
-%defattr(-,root,root)
-%{_includedir}/dwarf.h
-%dir %{_includedir}/elfutils
-%{_includedir}/elfutils/elf-knowledge.h
-%if !%{gpl}
-%{_includedir}/elfutils/libebl.h
-#%{_libdir}/libasm.a
-%{_libdir}/libebl.a
-#%{_libdir}/libdw.a
-#%{_libdir}/libasm.so
-#%{_libdir}/libdw.so
-%endif
-
-%files libelf
-%defattr(-,root,root)
-%{_libdir}/libelf-%{version}.so
-%{_libdir}/libelf*.so.*
-
-%files libelf-devel
-%defattr(-,root,root)
-%{_includedir}/libelf.h
-%{_includedir}/gelf.h
-%{_includedir}/nlist.h
-%{_libdir}/libelf.a
-%{_libdir}/libelf.so
-
-%changelog
-* Fri Jan 16 2004 Jakub Jelinek <jakub@redhat.com> 0.94-1
-- upgrade to 0.94
-
-* Fri Jan 16 2004 Jakub Jelinek <jakub@redhat.com> 0.93-1
-- upgrade to 0.93
-
-* Thu Jan 8 2004 Jakub Jelinek <jakub@redhat.com> 0.92-1
-- full version
-- macroized spec file for GPL or OSL builds
-- include only libelf under GPL plus wrapper scripts
-
-* Wed Jan 7 2004 Jakub Jelinek <jakub@redhat.com> 0.91-2
-- macroized spec file for GPL or OSL builds
-
-* Wed Jan 7 2004 Ulrich Drepper <drepper@redhat.com>
-- split elfutils-devel into two packages.
-
-* Wed Jan 7 2004 Jakub Jelinek <jakub@redhat.com> 0.91-1
-- include only libelf under GPL plus wrapper scripts
-
-* Tue Dec 23 2003 Jeff Johnson <jbj@redhat.com> 0.89-3
-- readelf, not readline, in %%description (#111214).
-
-* Fri Sep 26 2003 Bill Nottingham <notting@redhat.com> 0.89-1
-- update to 0.89 (fix eu-strip)
-
-* Tue Sep 23 2003 Jakub Jelinek <jakub@redhat.com> 0.86-3
-- update to 0.86 (fix eu-strip on s390x/alpha)
-- libebl is an archive now; remove references to DSO
-
-* Mon Jul 14 2003 Jeff Johnson <jbj@redhat.com> 0.84-3
-- upgrade to 0.84 (readelf/elflint improvements, rawhide bugs fixed).
-
-* Fri Jul 11 2003 Jeff Johnson <jbj@redhat.com> 0.83-3
-- upgrade to 0.83 (fix invalid ELf handle on *.so strip, more).
-
-* Wed Jul 9 2003 Jeff Johnson <jbj@redhat.com> 0.82-3
-- upgrade to 0.82 (strip tests fixed on big-endian).
-
-* Tue Jul 8 2003 Jeff Johnson <jbj@redhat.com> 0.81-3
-- upgrade to 0.81 (strip excludes unused symtable entries, test borked).
-
-* Thu Jun 26 2003 Jeff Johnson <jbj@redhat.com> 0.80-3
-- upgrade to 0.80 (debugedit changes for kernel in progress).
-
-* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
-- rebuilt
-
-* Wed May 21 2003 Jeff Johnson <jbj@redhat.com> 0.79-2
-- upgrade to 0.79 (correct formats for size_t, more of libdw "works").
-
-* Mon May 19 2003 Jeff Johnson <jbj@redhat.com> 0.78-2
-- upgrade to 0.78 (libdwarf bugfix, libdw additions).
-
-* Mon Feb 24 2003 Elliot Lee <sopwith@redhat.com>
-- debuginfo rebuild
-
-* Thu Feb 20 2003 Jeff Johnson <jbj@redhat.com> 0.76-2
-- use the correct way of identifying the section via the sh_info link.
-
-* Sat Feb 15 2003 Jakub Jelinek <jakub@redhat.com> 0.75-2
-- update to 0.75 (eu-strip -g fix)
-
-* Tue Feb 11 2003 Jakub Jelinek <jakub@redhat.com> 0.74-2
-- update to 0.74 (fix for writing with some non-dirty sections)
-
-* Thu Feb 6 2003 Jeff Johnson <jbj@redhat.com> 0.73-3
-- another -0.73 update (with sparc fixes).
-- do "make check" in %%check, not %%install, section.
-
-* Mon Jan 27 2003 Jeff Johnson <jbj@redhat.com> 0.73-2
-- update to 0.73 (with s390 fixes).
-
-* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
-- rebuilt
-
-* Wed Jan 22 2003 Jakub Jelinek <jakub@redhat.com> 0.72-4
-- fix arguments to gelf_getsymshndx and elf_getshstrndx
-- fix other warnings
-- reenable checks on s390x
-
-* Sat Jan 11 2003 Karsten Hopp <karsten@redhat.de> 0.72-3
-- temporarily disable checks on s390x, until someone has
- time to look at it
-
-* Thu Dec 12 2002 Jakub Jelinek <jakub@redhat.com> 0.72-2
-- update to 0.72
-
-* Wed Dec 11 2002 Jakub Jelinek <jakub@redhat.com> 0.71-2
-- update to 0.71
-
-* Wed Dec 11 2002 Jeff Johnson <jbj@redhat.com> 0.69-4
-- update to 0.69.
-- add "make check" and segfault avoidance patch.
-- elfutils-libelf needs to run ldconfig.
-
-* Tue Dec 10 2002 Jeff Johnson <jbj@redhat.com> 0.68-2
-- update to 0.68.
-
-* Fri Dec 6 2002 Jeff Johnson <jbj@redhat.com> 0.67-2
-- update to 0.67.
-
-* Tue Dec 3 2002 Jeff Johnson <jbj@redhat.com> 0.65-2
-- update to 0.65.
-
-* Mon Dec 2 2002 Jeff Johnson <jbj@redhat.com> 0.64-2
-- update to 0.64.
-
-* Sun Dec 1 2002 Ulrich Drepper <drepper@redhat.com> 0.64
-- split packages further into elfutils-libelf
-
-* Sat Nov 30 2002 Jeff Johnson <jbj@redhat.com> 0.63-2
-- update to 0.63.
-
-* Fri Nov 29 2002 Ulrich Drepper <drepper@redhat.com> 0.62
-- Adjust for dropping libtool
-
-* Sun Nov 24 2002 Jeff Johnson <jbj@redhat.com> 0.59-2
-- update to 0.59
-
-* Thu Nov 14 2002 Jeff Johnson <jbj@redhat.com> 0.56-2
-- update to 0.56
-
-* Thu Nov 7 2002 Jeff Johnson <jbj@redhat.com> 0.54-2
-- update to 0.54
-
-* Sun Oct 27 2002 Jeff Johnson <jbj@redhat.com> 0.53-2
-- update to 0.53
-- drop x86_64 hack, ICE fixed in gcc-3.2-11.
-
-* Sat Oct 26 2002 Jeff Johnson <jbj@redhat.com> 0.52-3
-- get beehive to punch a rhpkg generated package.
-
-* Wed Oct 23 2002 Jeff Johnson <jbj@redhat.com> 0.52-2
-- build in 8.0.1.
-- x86_64: avoid gcc-3.2 ICE on x86_64 for now.
-
-* Tue Oct 22 2002 Ulrich Drepper <drepper@redhat.com> 0.52
-- Add libelf-devel to conflicts for elfutils-devel
-
-* Mon Oct 21 2002 Ulrich Drepper <drepper@redhat.com> 0.50
-- Split into runtime and devel package
-
-* Fri Oct 18 2002 Ulrich Drepper <drepper@redhat.com> 0.49
-- integrate into official sources
-
-* Wed Oct 16 2002 Jeff Johnson <jbj@redhat.com> 0.46-1
-- Swaddle.
diff --git a/config/install-sh b/config/install-sh
deleted file mode 100644
index 398a88e1..00000000
--- a/config/install-sh
+++ /dev/null
@@ -1,251 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- :
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=$mkdirprog
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- :
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- :
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- :
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
- '
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- :
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- :
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/config/missing b/config/missing
deleted file mode 100644
index dd583709..00000000
--- a/config/missing
+++ /dev/null
@@ -1,336 +0,0 @@
-#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
-# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-if test $# -eq 0; then
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
-fi
-
-run=:
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
-
-case "$1" in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case "$1" in
-
- -h|--h|--he|--hel|--help)
- echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
-
-Options:
- -h, --help display this help and exit
- -v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
-
-Supported PROGRAM values:
- aclocal touch file \`aclocal.m4'
- autoconf touch file \`configure'
- autoheader touch file \`config.h.in'
- automake touch all \`Makefile.in' files
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
- flex create \`lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create \`lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- tar try tar, gnutar, gtar, then tar without non-portable flags
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
- ;;
-
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing 0.4 - GNU automake"
- ;;
-
- -*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
- ;;
-
- aclocal*)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
- to install the \`Automake' and \`Perl' packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`${configure_ac}'. You might want to install the
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`acconfig.h' or \`${configure_ac}'. You might want
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case "$f" in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
-
- automake*)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
- You might want to install the \`Automake' and \`Perl' packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- autom4te)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
- proper tools for further handling them.
- You can get \`$1Help2man' as part of \`Autoconf' from any GNU
- archive site."
-
- file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
- test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison|yacc)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.y' file. You may need the \`Bison' package
- in order for those modifications to take effect. You can get
- \`Bison' from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if [ $# -ne 1 ]; then
- eval LASTARG="\${$#}"
- case "$LASTARG" in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if [ ! -f y.tab.h ]; then
- echo >y.tab.h
- fi
- if [ ! -f y.tab.c ]; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex|flex)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.l' file. You may need the \`Flex' package
- in order for those modifications to take effect. You can get
- \`Flex' from any GNU archive site."
- rm -f lex.yy.c
- if [ $# -ne 1 ]; then
- eval LASTARG="\${$#}"
- case "$LASTARG" in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if [ ! -f lex.yy.c ]; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a dependency of a manual page. You may need the
- \`Help2man' package in order for those modifications to take
- effect. You can get \`Help2man' from any GNU archive site."
-
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
- if test -z "$file"; then
- file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
- fi
- if [ -f "$file" ]; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit 1
- fi
- ;;
-
- makeinfo)
- if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
- # We have makeinfo, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.texi' or \`.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy \`make' (AIX,
- DU, IRIX). You might want to install the \`Texinfo' package or
- the \`GNU make' package. Grab either from any GNU archive site."
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
- if test -z "$file"; then
- file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
- fi
- touch $file
- ;;
-
- tar)
- shift
- if test -n "$run"; then
- echo 1>&2 "ERROR: \`tar' requires --run"
- exit 1
- fi
-
- # We have already tried tar in the generic part.
- # Look for gnutar/gtar before invocation to avoid ugly error
- # messages.
- if (gnutar --version > /dev/null 2>&1); then
- gnutar ${1+"$@"} && exit 0
- fi
- if (gtar --version > /dev/null 2>&1); then
- gtar ${1+"$@"} && exit 0
- fi
- firstarg="$1"
- if shift; then
- case "$firstarg" in
- *o*)
- firstarg=`echo "$firstarg" | sed s/o//`
- tar "$firstarg" ${1+"$@"} && exit 0
- ;;
- esac
- case "$firstarg" in
- *h*)
- firstarg=`echo "$firstarg" | sed s/h//`
- tar "$firstarg" ${1+"$@"} && exit 0
- ;;
- esac
- fi
-
- echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
- You may want to install GNU tar or Free paxutils, or check the
- command line arguments."
- exit 1
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
- proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequirements for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing \`$1' program."
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/config/mkinstalldirs b/config/mkinstalldirs
deleted file mode 100644
index e1666cfb..00000000
--- a/config/mkinstalldirs
+++ /dev/null
@@ -1,101 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-# $Id: mkinstalldirs,v 1.1 2004/01/18 07:34:34 drepper Exp $
-
-errstatus=0
-dirmode=""
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
-
-# process command line arguments
-while test $# -gt 0 ; do
- case "${1}" in
- -h | --help | --h* ) # -h for help
- echo "${usage}" 1>&2; exit 0 ;;
- -m ) # -m PERM arg
- shift
- test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
- dirmode="${1}"
- shift ;;
- -- ) shift; break ;; # stop option processing
- -* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option
- * ) break ;; # first non-opt arg
- esac
-done
-
-for file
-do
- if test -d "$file"; then
- shift
- else
- break
- fi
-done
-
-case $# in
-0) exit 0 ;;
-esac
-
-case $dirmode in
-'')
- if mkdir -p -- . 2>/dev/null; then
- echo "mkdir -p -- $*"
- exec mkdir -p -- "$@"
- fi ;;
-*)
- if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
- echo "mkdir -m $dirmode -p -- $*"
- exec mkdir -m "$dirmode" -p -- "$@"
- fi ;;
-esac
-
-for file
-do
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
- shift
-
- pathcomp=
- for d
- do
- pathcomp="$pathcomp$d"
- case "$pathcomp" in
- -* ) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp"
-
- mkdir "$pathcomp" || lasterr=$?
-
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- else
- if test ! -z "$dirmode"; then
- echo "chmod $dirmode $pathcomp"
-
- lasterr=""
- chmod "$dirmode" "$pathcomp" || lasterr=$?
-
- if test ! -z "$lasterr"; then
- errstatus=$lasterr
- fi
- fi
- fi
- fi
-
- pathcomp="$pathcomp/"
- done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 3
-# End:
-# mkinstalldirs ends here
diff --git a/configure b/configure
deleted file mode 100755
index b79a271f..00000000
--- a/configure
+++ /dev/null
@@ -1,7272 +0,0 @@
-#! /bin/sh
-# From configure.ac Revision: 1.30 .
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for Red Hat elfutils 0.97.
-#
-# Report bugs to <http://bugzilla.redhat.com/bugzilla/>.
-#
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-#
-# Copyright (C) 1996-2003, 2004 Red Hat, Inc.
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete. It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME='Red Hat elfutils'
-PACKAGE_TARNAME='elfutils'
-PACKAGE_VERSION='0.97'
-PACKAGE_STRING='Red Hat elfutils 0.97'
-PACKAGE_BUGREPORT='http://bugzilla.redhat.com/bugzilla/'
-
-ac_unique_file="libelf/libelf.h"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP MKINSTALLDIRS MSGFMT GMSGFMT XGETTEXT MSGMERGE USE_NLS LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB RANLIB ac_ct_RANLIB YACC LEX LEXLIB LEX_OUTPUT_ROOT LOCALEDIR DATADIRNAME NATIVE_LD_TRUE NATIVE_LD_FALSE base_cpu MUDFLAP_TRUE MUDFLAP_FALSE LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_option in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- eval "enable_$ac_feature=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_$ac_feature='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "with_$ac_package='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package | sed 's/-/_/g'`
- eval "with_$ac_package=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; }
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
- ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
- eval "$ac_envvar='$ac_optarg'"
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$0" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
- { (exit 1); exit 1; }; }
- else
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
- { (exit 1); exit 1; }; }
- fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
- { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
- { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures Red Hat elfutils 0.97 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
- cat <<_ACEOF
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --infodir=DIR info documentation [PREFIX/info]
- --mandir=DIR man documentation [PREFIX/man]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of Red Hat elfutils 0.97:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-tls enable use of thread local storage
- --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors
- --disable-nls do not use Native Language Support
- --disable-largefile omit support for large files
- --disable-generic do not build generic linker
- --enable-mudflap build binaries with mudflap instrumentation
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-gnu-ld assume the C compiler uses GNU ld default=no
- --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib
- --without-libiconv-prefix don't search for libiconv in includedir and libdir
- --with-libintl-prefix=DIR search for libintl in DIR/include and DIR/lib
- --without-libintl-prefix don't search for libintl in includedir and libdir
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
- headers in a nonstandard directory <include dir>
- CPP C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <http://bugzilla.redhat.com/bugzilla/>.
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- ac_popdir=`pwd`
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d $ac_dir || continue
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
- cd $ac_dir
- # Check for guested configure; otherwise get Cygnus style configure.
- if test -f $ac_srcdir/configure.gnu; then
- echo
- $SHELL $ac_srcdir/configure.gnu --help=recursive
- elif test -f $ac_srcdir/configure; then
- echo
- $SHELL $ac_srcdir/configure --help=recursive
- elif test -f $ac_srcdir/configure.ac ||
- test -f $ac_srcdir/configure.in; then
- echo
- $ac_configure --help
- else
- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi
- cd "$ac_popdir"
- done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
- cat <<\_ACEOF
-Red Hat elfutils configure 0.97
-generated by GNU Autoconf 2.59
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-
-Copyright (C) 1996-2003, 2004 Red Hat, Inc.
-_ACEOF
- exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by Red Hat elfutils $as_me 0.97, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
- 2)
- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
- # Get rid of the leading space.
- ac_sep=" "
- ;;
- esac
- done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
- echo
- # The following way of writing the cache mishandles newlines in values,
-{
- (set) 2>&1 |
- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- sed -n \
- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
- ;;
- *)
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-}
- echo
-
- cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
- echo
- sed "/^$/d" confdefs.h | sort
- echo
- fi
- test "$ac_signal" != 0 &&
- echo "$as_me: caught signal $ac_signal"
- echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core &&
- rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
- ' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
- { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . $cache_file;;
- *) . ./$cache_file;;
- esac
- fi
-else
- { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val="\$ac_cv_env_${ac_var}_value"
- eval ac_new_val="\$ac_env_${ac_var}_value"
- case $ac_old_set,$ac_new_set in
- set,)
- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
-echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
-echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_aux_dir=
-for ac_dir in config $srcdir/config; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f $ac_dir/shtool; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in config $srcdir/config" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in config $srcdir/config" >&2;}
- { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
- ac_config_files="$ac_config_files config/Makefile"
-
-
-
-
-
-am__api_version="1.9"
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
- ./ | .// | /cC/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- done
- done
- ;;
-esac
-done
-
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL=$ac_install_sh
- fi
-fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo "$as_me:$LINENO: checking whether build environment is sane" >&5
-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- rm -f conftest.file
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" >&5
-echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
-Check your system clock" >&5
-echo "$as_me: error: newly created file is older than distributed files!
-Check your system clock" >&2;}
- { (exit 1); exit 1; }; }
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-test "$program_prefix" != NONE &&
- program_transform_name="s,^,$program_prefix,;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$,$program_suffix,;$program_transform_name"
-# Double any \ or $. echo might interpret backslashes.
-# By default was `s,x,x', remove it if useless.
-cat <<\_ACEOF >conftest.sed
-s/[\\$]/&&/g;s/;s,x,x,$//
-_ACEOF
-program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-rm conftest.sed
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
-echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
-fi
-
-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- # We used to keeping the `.' as first argument, in order to
- # allow $(mkdir_p) to be used without argument. As in
- # $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined. However this is wrong
- # for two reasons:
- # 1. if the package is installed by a user who cannot write `.'
- # make install will fail,
- # 2. the above comment should most certainly read
- # $(mkdir_p) $(DESTDIR)$(somedir)
- # so it does not work when $(somedir) is undefined and
- # $(DESTDIR) is not.
- # To support the latter case, we have to write
- # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
- # so the `.' trick is pointless.
- mkdir_p='mkdir -p --'
-else
- # On NextStep and OpenStep, the `mkdir' command does not
- # recognize any option. It will interpret all options as
- # directories to create, and then abort because `.' already
- # exists.
- for d in ./-p ./--version;
- do
- test -d $d && rmdir $d
- done
- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
- if test -f "$ac_aux_dir/mkinstalldirs"; then
- mkdir_p='$(mkinstalldirs)'
- else
- mkdir_p='$(install_sh) -d'
- fi
-fi
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_AWK+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AWK="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- echo "$as_me:$LINENO: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$AWK" && break
-done
-
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.make <<\_ACEOF
-all:
- @echo 'ac_maketemp="$(MAKE)"'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftest.make
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- SET_MAKE=
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
- test -f $srcdir/config.status; then
- { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='elfutils'
- VERSION='0.97'
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- STRIP=$ac_ct_STRIP
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility.
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
-
-
-
-
-
-
-
- ac_config_files="$ac_config_files Makefile"
-
- ac_config_headers="$ac_config_headers config.h"
-
-
-case m4 in
- [\\/]* | ?:[\\/]* ) ac_macro_dir=m4 ;;
- *) ac_macro_dir=$srcdir/m4 ;;
-esac
-if test -d "$ac_macro_dir"; then :
-else
- { { echo "$as_me:$LINENO: error: cannot find macro directory \`m4'" >&5
-echo "$as_me: error: cannot find macro directory \`m4'" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
- ac_config_files="$ac_config_files m4/Makefile"
-
-
- ac_config_files="$ac_config_files elfutils.spec:config/elfutils.spec.in"
-
-
-
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
-if test "${ac_cv_build+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
- ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
- { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
- { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
-build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
-if test "${ac_cv_host+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
- ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
-host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-
-# Check whether --enable-tls or --disable-tls was given.
-if test "${enable_tls+set}" = set; then
- enableval="$enable_tls"
- cat >>confdefs.h <<\_ACEOF
-#define USE_TLS 1
-_ACEOF
-
-fi;
-
-
-
-ALL_LINGUAS=
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$ac_ct_CC" && break
-done
-
- CC=$ac_ct_CC
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
- "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
- (eval $ac_link_default) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Find the output, starting from the most likely. This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
- ;;
- conftest.$ac_ext )
- # This is the source file.
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- # FIXME: I believe we export ac_cv_exeext for Libtool,
- # but it would be cool to find out if it's true. Does anybody
- # maintain Libtool? --akim.
- export ac_cv_exeext
- break;;
- * )
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
- fi
- fi
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- export ac_cv_exeext
- break;;
- * ) break;;
- esac
-done
-else
- { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std1 is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std1. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX 10.20 and later -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_stdc=$ac_arg
-break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
- x|xno)
- echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
- *)
- echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
- CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-# Some people use a C++ compiler to compile C. Since we use `exit',
-# in C++ we need to declare it. In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
- choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- for ac_declaration in \
- '' \
- 'extern "C" void std::exit (int) throw (); using std::exit;' \
- 'extern "C" void std::exit (int); using std::exit;' \
- 'extern "C" void exit (int) throw ();' \
- 'extern "C" void exit (int);' \
- 'void exit (int);'
-do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
- echo '#ifdef __cplusplus' >>confdefs.h
- echo $ac_declaration >>confdefs.h
- echo '#endif' >>confdefs.h
-fi
-
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-DEPDIR="${am__leading_dot}deps"
-
- ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo done
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
-echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
- am__include=include
- am__quote=
- _am_result=GNU
-fi
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
- am__include=.include
- am__quote="\""
- _am_result=BSD
- fi
-fi
-
-
-echo "$as_me:$LINENO: result: $_am_result" >&5
-echo "${ECHO_T}$_am_result" >&6
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then
- enableval="$enable_dependency_tracking"
-
-fi;
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
-
-
-if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-fi
-
-
-
-
-depcc="$CC" am_compiler_list=
-
-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- case $depmode in
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- none) break ;;
- esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
- if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
-
-
-if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
-else
- { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
- fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
-
-if test $ac_cv_c_compiler_gnu = yes; then
- echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5
-echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
-if test "${ac_cv_prog_gcc_traditional+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_pattern="Autoconf.*'x'"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <sgtty.h>
-Autoconf TIOCGETP
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "$ac_pattern" >/dev/null 2>&1; then
- ac_cv_prog_gcc_traditional=yes
-else
- ac_cv_prog_gcc_traditional=no
-fi
-rm -f conftest*
-
-
- if test $ac_cv_prog_gcc_traditional = no; then
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <termio.h>
-Autoconf TCGETA
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "$ac_pattern" >/dev/null 2>&1; then
- ac_cv_prog_gcc_traditional=yes
-fi
-rm -f conftest*
-
- fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5
-echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
- if test $ac_cv_prog_gcc_traditional = yes; then
- CC="$CC -traditional"
- fi
-fi
-
-
- MKINSTALLDIRS=
- if test -n "$ac_aux_dir"; then
- MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
- fi
- if test -z "$MKINSTALLDIRS"; then
- MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
- fi
-
-
-
-
-
- # Extract the first word of "msgfmt", so it can be a program name with args.
-set dummy msgfmt; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_MSGFMT+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case "$MSGFMT" in
- /*)
- ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- ac_cv_path_MSGFMT="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
- ;;
-esac
-fi
-MSGFMT="$ac_cv_path_MSGFMT"
-if test "$MSGFMT" != ":"; then
- echo "$as_me:$LINENO: result: $MSGFMT" >&5
-echo "${ECHO_T}$MSGFMT" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- # Extract the first word of "gmsgfmt", so it can be a program name with args.
-set dummy gmsgfmt; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_GMSGFMT+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $GMSGFMT in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
- ;;
-esac
-fi
-GMSGFMT=$ac_cv_path_GMSGFMT
-
-if test -n "$GMSGFMT"; then
- echo "$as_me:$LINENO: result: $GMSGFMT" >&5
-echo "${ECHO_T}$GMSGFMT" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-
- # Extract the first word of "xgettext", so it can be a program name with args.
-set dummy xgettext; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_XGETTEXT+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case "$XGETTEXT" in
- /*)
- ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
- ;;
-esac
-fi
-XGETTEXT="$ac_cv_path_XGETTEXT"
-if test "$XGETTEXT" != ":"; then
- echo "$as_me:$LINENO: result: $XGETTEXT" >&5
-echo "${ECHO_T}$XGETTEXT" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- rm -f messages.po
-
- # Extract the first word of "msgmerge", so it can be a program name with args.
-set dummy msgmerge; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_MSGMERGE+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case "$MSGMERGE" in
- /*)
- ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then
- ac_cv_path_MSGMERGE="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
- ;;
-esac
-fi
-MSGMERGE="$ac_cv_path_MSGMERGE"
-if test "$MSGMERGE" != ":"; then
- echo "$as_me:$LINENO: result: $MSGMERGE" >&5
-echo "${ECHO_T}$MSGMERGE" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-
- if test "$GMSGFMT" != ":"; then
- if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
- (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
- echo "$as_me:$LINENO: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5
-echo "${ECHO_T}found $GMSGFMT program is not GNU msgfmt; ignore it" >&6
- GMSGFMT=":"
- fi
- fi
-
- if test "$XGETTEXT" != ":"; then
- if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
- (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5
-echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6
- XGETTEXT=":"
- fi
- rm -f messages.po
- fi
-
- ac_config_commands="$ac_config_commands default-1"
-
-
-
- if test "X$prefix" = "XNONE"; then
- acl_final_prefix="$ac_default_prefix"
- else
- acl_final_prefix="$prefix"
- fi
- if test "X$exec_prefix" = "XNONE"; then
- acl_final_exec_prefix='${prefix}'
- else
- acl_final_exec_prefix="$exec_prefix"
- fi
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
- prefix="$acl_save_prefix"
-
-
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
- withval="$with_gnu_ld"
- test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi;
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- echo "$as_me:$LINENO: checking for ld used by GCC" >&5
-echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | [A-Za-z]:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
-else
- echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
-fi
-if test "${acl_cv_path_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- acl_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-else
- acl_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$acl_cv_path_LD"
-if test -n "$LD"; then
- echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
- { (exit 1); exit 1; }; }
-echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
-if test "${acl_cv_prog_gnu_ld+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- acl_cv_prog_gnu_ld=yes
-else
- acl_cv_prog_gnu_ld=no
-fi
-fi
-echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6
-with_gnu_ld=$acl_cv_prog_gnu_ld
-
-
-
- echo "$as_me:$LINENO: checking for shared library run path origin" >&5
-echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6
-if test "${acl_cv_rpath+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
- ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
- . ./conftest.sh
- rm -f ./conftest.sh
- acl_cv_rpath=done
-
-fi
-echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5
-echo "${ECHO_T}$acl_cv_rpath" >&6
- wl="$acl_cv_wl"
- libext="$acl_cv_libext"
- shlibext="$acl_cv_shlibext"
- hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
- hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
- hardcode_direct="$acl_cv_hardcode_direct"
- hardcode_minus_L="$acl_cv_hardcode_minus_L"
- sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec"
- sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec"
-
-
-
-
-
-
-
- use_additional=yes
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
-
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
-
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
-
-# Check whether --with-libiconv-prefix or --without-libiconv-prefix was given.
-if test "${with_libiconv_prefix+set}" = set; then
- withval="$with_libiconv_prefix"
-
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
-
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
-
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
- fi
- fi
-
-fi;
- LIBICONV=
- LTLIBICONV=
- INCICONV=
- rpathdirs=
- ltrpathdirs=
- names_already_handled=
- names_next_round='iconv '
- while test -n "$names_next_round"; do
- names_this_round="$names_next_round"
- names_next_round=
- for name in $names_this_round; do
- already_handled=
- for n in $names_already_handled; do
- if test "$n" = "$name"; then
- already_handled=yes
- break
- fi
- done
- if test -z "$already_handled"; then
- names_already_handled="$names_already_handled $name"
- uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
- eval value=\"\$HAVE_LIB$uppername\"
- if test -n "$value"; then
- if test "$value" = yes; then
- eval value=\"\$LIB$uppername\"
- test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
- eval value=\"\$LTLIB$uppername\"
- test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
- else
- :
- fi
- else
- found_dir=
- found_la=
- found_so=
- found_a=
- if test $use_additional = yes; then
- if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
- found_dir="$additional_libdir"
- found_so="$additional_libdir/lib$name.$shlibext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- else
- if test -f "$additional_libdir/lib$name.$libext"; then
- found_dir="$additional_libdir"
- found_a="$additional_libdir/lib$name.$libext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- for x in $LDFLAGS $LTLIBICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- case "$x" in
- -L*)
- dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
- found_dir="$dir"
- found_so="$dir/lib$name.$shlibext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- else
- if test -f "$dir/lib$name.$libext"; then
- found_dir="$dir"
- found_a="$dir/lib$name.$libext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- fi
- fi
- ;;
- esac
- if test "X$found_dir" != "X"; then
- break
- fi
- done
- fi
- if test "X$found_dir" != "X"; then
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
- if test "X$found_so" != "X"; then
- if test "X$found_dir" = "X/usr/lib"; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
- else
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $found_dir"
- fi
- if test "$hardcode_direct" = yes; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
- else
- if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $found_dir"
- fi
- else
- haveit=
- for x in $LDFLAGS $LIBICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
- fi
- if test "$hardcode_minus_L" != no; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
- else
- LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
- fi
- fi
- fi
- fi
- else
- if test "X$found_a" != "X"; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
- else
- LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
- fi
- fi
- additional_includedir=
- case "$found_dir" in
- */lib | */lib/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
- additional_includedir="$basedir/include"
- ;;
- esac
- if test "X$additional_includedir" != "X"; then
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- for x in $CPPFLAGS $INCICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- fi
- if test -n "$found_la"; then
- save_libdir="$libdir"
- case "$found_la" in
- */* | *\\*) . "$found_la" ;;
- *) . "./$found_la" ;;
- esac
- libdir="$save_libdir"
- for dep in $dependency_libs; do
- case "$dep" in
- -L*)
- additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
- if test "X$additional_libdir" != "X/usr/lib"; then
- haveit=
- if test "X$additional_libdir" = "X/usr/local/lib"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- haveit=
- for x in $LDFLAGS $LIBICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
- fi
- fi
- haveit=
- for x in $LDFLAGS $LTLIBICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- ;;
- -l*)
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
- ;;
- *.la)
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
- ;;
- *)
- LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
- ;;
- esac
- done
- fi
- else
- LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
- fi
- fi
- fi
- done
- done
- if test "X$rpathdirs" != "X"; then
- if test -n "$hardcode_libdir_separator"; then
- alldirs=
- for found_dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
- done
- acl_save_libdir="$libdir"
- libdir="$alldirs"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
- else
- for found_dir in $rpathdirs; do
- acl_save_libdir="$libdir"
- libdir="$found_dir"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
- done
- fi
- fi
- if test "X$ltrpathdirs" != "X"; then
- for found_dir in $ltrpathdirs; do
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
- done
- fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- echo "$as_me:$LINENO: checking whether NLS is requested" >&5
-echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6
- # Check whether --enable-nls or --disable-nls was given.
-if test "${enable_nls+set}" = set; then
- enableval="$enable_nls"
- USE_NLS=$enableval
-else
- USE_NLS=yes
-fi;
- echo "$as_me:$LINENO: result: $USE_NLS" >&5
-echo "${ECHO_T}$USE_NLS" >&6
-
-
-
- LIBINTL=
- LTLIBINTL=
- POSUB=
-
- if test "$USE_NLS" = "yes"; then
- gt_use_preinstalled_gnugettext=no
-
-
-
-
-
-
- echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5
-echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6
-if test "${gt_cv_func_gnugettext1_libc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <libintl.h>
-extern int _nl_msg_cat_cntr;
-extern int *_nl_domain_bindings;
-int
-main ()
-{
-bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- gt_cv_func_gnugettext1_libc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-gt_cv_func_gnugettext1_libc=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libc" >&5
-echo "${ECHO_T}$gt_cv_func_gnugettext1_libc" >&6
-
- if test "$gt_cv_func_gnugettext1_libc" != "yes"; then
-
-
-
-
-
- am_save_CPPFLAGS="$CPPFLAGS"
-
- for element in $INCICONV; do
- haveit=
- for x in $CPPFLAGS; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X$element"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
- fi
- done
-
-
- echo "$as_me:$LINENO: checking for iconv" >&5
-echo $ECHO_N "checking for iconv... $ECHO_C" >&6
-if test "${am_cv_func_iconv+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- am_cv_func_iconv="no, consider installing GNU libiconv"
- am_cv_lib_iconv=no
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <iconv.h>
-int
-main ()
-{
-iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- am_cv_func_iconv=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test "$am_cv_func_iconv" != yes; then
- am_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBICONV"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <iconv.h>
-int
-main ()
-{
-iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- am_cv_lib_iconv=yes
- am_cv_func_iconv=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LIBS="$am_save_LIBS"
- fi
-
-fi
-echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5
-echo "${ECHO_T}$am_cv_func_iconv" >&6
- if test "$am_cv_func_iconv" = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ICONV 1
-_ACEOF
-
- fi
- if test "$am_cv_lib_iconv" = yes; then
- echo "$as_me:$LINENO: checking how to link with libiconv" >&5
-echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6
- echo "$as_me:$LINENO: result: $LIBICONV" >&5
-echo "${ECHO_T}$LIBICONV" >&6
- else
- CPPFLAGS="$am_save_CPPFLAGS"
- LIBICONV=
- LTLIBICONV=
- fi
-
-
-
-
-
-
- use_additional=yes
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
-
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
-
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
-
-# Check whether --with-libintl-prefix or --without-libintl-prefix was given.
-if test "${with_libintl_prefix+set}" = set; then
- withval="$with_libintl_prefix"
-
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
-
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
-
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
- fi
- fi
-
-fi;
- LIBINTL=
- LTLIBINTL=
- INCINTL=
- rpathdirs=
- ltrpathdirs=
- names_already_handled=
- names_next_round='intl '
- while test -n "$names_next_round"; do
- names_this_round="$names_next_round"
- names_next_round=
- for name in $names_this_round; do
- already_handled=
- for n in $names_already_handled; do
- if test "$n" = "$name"; then
- already_handled=yes
- break
- fi
- done
- if test -z "$already_handled"; then
- names_already_handled="$names_already_handled $name"
- uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
- eval value=\"\$HAVE_LIB$uppername\"
- if test -n "$value"; then
- if test "$value" = yes; then
- eval value=\"\$LIB$uppername\"
- test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
- eval value=\"\$LTLIB$uppername\"
- test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
- else
- :
- fi
- else
- found_dir=
- found_la=
- found_so=
- found_a=
- if test $use_additional = yes; then
- if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
- found_dir="$additional_libdir"
- found_so="$additional_libdir/lib$name.$shlibext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- else
- if test -f "$additional_libdir/lib$name.$libext"; then
- found_dir="$additional_libdir"
- found_a="$additional_libdir/lib$name.$libext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- for x in $LDFLAGS $LTLIBINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- case "$x" in
- -L*)
- dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
- found_dir="$dir"
- found_so="$dir/lib$name.$shlibext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- else
- if test -f "$dir/lib$name.$libext"; then
- found_dir="$dir"
- found_a="$dir/lib$name.$libext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- fi
- fi
- ;;
- esac
- if test "X$found_dir" != "X"; then
- break
- fi
- done
- fi
- if test "X$found_dir" != "X"; then
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
- if test "X$found_so" != "X"; then
- if test "X$found_dir" = "X/usr/lib"; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
- else
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $found_dir"
- fi
- if test "$hardcode_direct" = yes; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
- else
- if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $found_dir"
- fi
- else
- haveit=
- for x in $LDFLAGS $LIBINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
- fi
- if test "$hardcode_minus_L" != no; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
- else
- LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
- fi
- fi
- fi
- fi
- else
- if test "X$found_a" != "X"; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
- else
- LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
- fi
- fi
- additional_includedir=
- case "$found_dir" in
- */lib | */lib/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
- additional_includedir="$basedir/include"
- ;;
- esac
- if test "X$additional_includedir" != "X"; then
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- for x in $CPPFLAGS $INCINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- fi
- if test -n "$found_la"; then
- save_libdir="$libdir"
- case "$found_la" in
- */* | *\\*) . "$found_la" ;;
- *) . "./$found_la" ;;
- esac
- libdir="$save_libdir"
- for dep in $dependency_libs; do
- case "$dep" in
- -L*)
- additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
- if test "X$additional_libdir" != "X/usr/lib"; then
- haveit=
- if test "X$additional_libdir" = "X/usr/local/lib"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- haveit=
- for x in $LDFLAGS $LIBINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
- fi
- fi
- haveit=
- for x in $LDFLAGS $LTLIBINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- ;;
- -l*)
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
- ;;
- *.la)
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
- ;;
- *)
- LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
- ;;
- esac
- done
- fi
- else
- LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
- fi
- fi
- fi
- done
- done
- if test "X$rpathdirs" != "X"; then
- if test -n "$hardcode_libdir_separator"; then
- alldirs=
- for found_dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
- done
- acl_save_libdir="$libdir"
- libdir="$alldirs"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
- else
- for found_dir in $rpathdirs; do
- acl_save_libdir="$libdir"
- libdir="$found_dir"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
- done
- fi
- fi
- if test "X$ltrpathdirs" != "X"; then
- for found_dir in $ltrpathdirs; do
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
- done
- fi
-
- echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5
-echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6
-if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- gt_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $INCINTL"
- gt_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBINTL"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <libintl.h>
-extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias ();
-int
-main ()
-{
-bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- gt_cv_func_gnugettext1_libintl=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-gt_cv_func_gnugettext1_libintl=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then
- LIBS="$LIBS $LIBICONV"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <libintl.h>
-extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias ();
-int
-main ()
-{
-bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- LIBINTL="$LIBINTL $LIBICONV"
- LTLIBINTL="$LTLIBINTL $LTLIBICONV"
- gt_cv_func_gnugettext1_libintl=yes
-
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- fi
- CPPFLAGS="$gt_save_CPPFLAGS"
- LIBS="$gt_save_LIBS"
-fi
-echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libintl" >&5
-echo "${ECHO_T}$gt_cv_func_gnugettext1_libintl" >&6
- fi
-
- if test "$gt_cv_func_gnugettext1_libc" = "yes" \
- || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \
- && test "$PACKAGE" != gettext; }; then
- gt_use_preinstalled_gnugettext=yes
- else
- LIBINTL=
- LTLIBINTL=
- INCINTL=
- fi
-
-
-
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define ENABLE_NLS 1
-_ACEOF
-
- else
- USE_NLS=no
- fi
- fi
-
- if test "$USE_NLS" = "yes"; then
-
- if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
- echo "$as_me:$LINENO: checking how to link with libintl" >&5
-echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6
- echo "$as_me:$LINENO: result: $LIBINTL" >&5
-echo "${ECHO_T}$LIBINTL" >&6
-
- for element in $INCINTL; do
- haveit=
- for x in $CPPFLAGS; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X$element"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
- fi
- done
-
- fi
-
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GETTEXT 1
-_ACEOF
-
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DCGETTEXT 1
-_ACEOF
-
- fi
-
- POSUB=po
- fi
-
-
-
- INTLLIBS="$LIBINTL"
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- RANLIB=$ac_ct_RANLIB
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-for ac_prog in 'bison -y' byacc
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_YACC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$YACC"; then
- ac_cv_prog_YACC="$YACC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_YACC="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-YACC=$ac_cv_prog_YACC
-if test -n "$YACC"; then
- echo "$as_me:$LINENO: result: $YACC" >&5
-echo "${ECHO_T}$YACC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$YACC" && break
-done
-test -n "$YACC" || YACC="yacc"
-
-for ac_prog in flex lex
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_LEX+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$LEX"; then
- ac_cv_prog_LEX="$LEX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_LEX="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-LEX=$ac_cv_prog_LEX
-if test -n "$LEX"; then
- echo "$as_me:$LINENO: result: $LEX" >&5
-echo "${ECHO_T}$LEX" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$LEX" && break
-done
-test -n "$LEX" || LEX=":"
-
-if test -z "$LEXLIB"
-then
- echo "$as_me:$LINENO: checking for yywrap in -lfl" >&5
-echo $ECHO_N "checking for yywrap in -lfl... $ECHO_C" >&6
-if test "${ac_cv_lib_fl_yywrap+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lfl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char yywrap ();
-int
-main ()
-{
-yywrap ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_fl_yywrap=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_fl_yywrap=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_fl_yywrap" >&5
-echo "${ECHO_T}$ac_cv_lib_fl_yywrap" >&6
-if test $ac_cv_lib_fl_yywrap = yes; then
- LEXLIB="-lfl"
-else
- echo "$as_me:$LINENO: checking for yywrap in -ll" >&5
-echo $ECHO_N "checking for yywrap in -ll... $ECHO_C" >&6
-if test "${ac_cv_lib_l_yywrap+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ll $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char yywrap ();
-int
-main ()
-{
-yywrap ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_l_yywrap=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_l_yywrap=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_l_yywrap" >&5
-echo "${ECHO_T}$ac_cv_lib_l_yywrap" >&6
-if test $ac_cv_lib_l_yywrap = yes; then
- LEXLIB="-ll"
-fi
-
-fi
-
-fi
-
-if test "x$LEX" != "x:"; then
- echo "$as_me:$LINENO: checking lex output file root" >&5
-echo $ECHO_N "checking lex output file root... $ECHO_C" >&6
-if test "${ac_cv_prog_lex_root+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # The minimal lex program is just a single line: %%. But some broken lexes
-# (Solaris, I think it was) want two %% lines, so accommodate them.
-cat >conftest.l <<_ACEOF
-%%
-%%
-_ACEOF
-{ (eval echo "$as_me:$LINENO: \"$LEX conftest.l\"") >&5
- (eval $LEX conftest.l) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-if test -f lex.yy.c; then
- ac_cv_prog_lex_root=lex.yy
-elif test -f lexyy.c; then
- ac_cv_prog_lex_root=lexyy
-else
- { { echo "$as_me:$LINENO: error: cannot find output from $LEX; giving up" >&5
-echo "$as_me: error: cannot find output from $LEX; giving up" >&2;}
- { (exit 1); exit 1; }; }
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_lex_root" >&5
-echo "${ECHO_T}$ac_cv_prog_lex_root" >&6
-rm -f conftest.l
-LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
-
-echo "$as_me:$LINENO: checking whether yytext is a pointer" >&5
-echo $ECHO_N "checking whether yytext is a pointer... $ECHO_C" >&6
-if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # POSIX says lex can declare yytext either as a pointer or an array; the
-# default is implementation-dependent. Figure out which it is, since
-# not all implementations provide the %pointer and %array declarations.
-ac_cv_prog_lex_yytext_pointer=no
-echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
-ac_save_LIBS=$LIBS
-LIBS="$LIBS $LEXLIB"
-cat >conftest.$ac_ext <<_ACEOF
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_lex_yytext_pointer=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_save_LIBS
-rm -f "${LEX_OUTPUT_ROOT}.c"
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_lex_yytext_pointer" >&5
-echo "${ECHO_T}$ac_cv_prog_lex_yytext_pointer" >&6
-if test $ac_cv_prog_lex_yytext_pointer = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define YYTEXT_POINTER 1
-_ACEOF
-
-fi
-
-fi
-if test "$LEX" = :; then
- LEX=${am_missing_run}flex
-fi
-
-echo "$as_me:$LINENO: checking for gcc with C99 support" >&5
-echo $ECHO_N "checking for gcc with C99 support... $ECHO_C" >&6
-if test "${ac_cv_c99+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- old_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -std=gnu99"
-cat >conftest.$ac_ext <<_ACEOF
-int foo (int a) { for (int i = 0; i < a; ++i) if (i % 4) break; int s = a; }
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c99=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_c99=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-CFLAGS="$old_CFLAGS"
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c99" >&5
-echo "${ECHO_T}$ac_cv_c99" >&6
-if test "x$ac_cv_c99" != xyes; then
- { { echo "$as_me:$LINENO: error: gcc with C99 support required" >&5
-echo "$as_me: error: gcc with C99 support required" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-
-LOCALEDIR=$datadir
-
-cat >>confdefs.h <<_ACEOF
-#define LOCALEDIR "$LOCALEDIR"
-_ACEOF
-
-
-
-
-DATADIRNAME=$datadir
-
-
-# Check whether --enable-largefile or --disable-largefile was given.
-if test "${enable_largefile+set}" = set; then
- enableval="$enable_largefile"
-
-fi;
-if test "$enable_largefile" != no; then
-
- echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
-echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
-if test "${ac_cv_sys_largefile_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_sys_largefile_CC=no
- if test "$GCC" != yes; then
- ac_save_CC=$CC
- while :; do
- # IRIX 6.2 and later do not support large files by default,
- # so use the C compiler's -n32 option if that helps.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
- CC="$CC -n32"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_largefile_CC=' -n32'; break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
- break
- done
- CC=$ac_save_CC
- rm -f conftest.$ac_ext
- fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
-echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
- if test "$ac_cv_sys_largefile_CC" != no; then
- CC=$CC$ac_cv_sys_largefile_CC
- fi
-
- echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
-if test "${ac_cv_sys_file_offset_bits+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- while :; do
- ac_cv_sys_file_offset_bits=no
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#define _FILE_OFFSET_BITS 64
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_file_offset_bits=64; break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- break
-done
-fi
-echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
-echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
-if test "$ac_cv_sys_file_offset_bits" != no; then
-
-cat >>confdefs.h <<_ACEOF
-#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
-_ACEOF
-
-fi
-rm -f conftest*
- echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5
-echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
-if test "${ac_cv_sys_large_files+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- while :; do
- ac_cv_sys_large_files=no
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#define _LARGE_FILES 1
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_large_files=1; break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- break
-done
-fi
-echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
-echo "${ECHO_T}$ac_cv_sys_large_files" >&6
-if test "$ac_cv_sys_large_files" != no; then
-
-cat >>confdefs.h <<_ACEOF
-#define _LARGE_FILES $ac_cv_sys_large_files
-_ACEOF
-
-fi
-rm -f conftest*
-fi
-
-
-native_ld=no
-# Check whether --enable-generic or --disable-generic was given.
-if test "${enable_generic+set}" = set; then
- enableval="$enable_generic"
- if test "$enable_generic" = no; then
- case "$host_cpu" in
- i?86)
- cat >>confdefs.h <<\_ACEOF
-#define NATIVE_ELF 32
-_ACEOF
-
- native_ld=yes
- base_cpu=i386
- ;;
- *)
- { { echo "$as_me:$LINENO: error: no machine-specific linker for this configuration available" >&5
-echo "$as_me: error: no machine-specific linker for this configuration available" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-fi
-fi;
-
-
-
-
-if test "$native_ld" = yes; then
- NATIVE_LD_TRUE=
- NATIVE_LD_FALSE='#'
-else
- NATIVE_LD_TRUE='#'
- NATIVE_LD_FALSE=
-fi
-
-if test -z "$base_cpu"; then
- base_cpu=none
-fi
-
-
-
-use_mudflap=no
-# Check whether --enable-mudflap or --disable-mudflap was given.
-if test "${enable_mudflap+set}" = set; then
- enableval="$enable_mudflap"
- if test "x$enable_mudflap" = xyes; then
- # Check whether the compiler support -fmudflap.
- old_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -fmudflap"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- use_mudflap=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-use_mudflap=fail
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS="$old_CFLAGS"
-fi
-fi;
-if test "$use_mudflap" = fail; then
- { { echo "$as_me:$LINENO: error: --enable-mudflap requires a compiler which understands this option
-See \`config.log' for more details." >&5
-echo "$as_me: error: --enable-mudflap requires a compiler which understands this option
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-
-if test "$use_mudflap" = yes; then
- MUDFLAP_TRUE=
- MUDFLAP_FALSE='#'
-else
- MUDFLAP_TRUE='#'
- MUDFLAP_FALSE=
-fi
-
-
-
-
- ac_config_files="$ac_config_files doc/Makefile"
-
-
- ac_config_files="$ac_config_files lib/Makefile"
-
-
- ac_config_files="$ac_config_files libelf/Makefile libelf-po/Makefile.in"
-
-
- ac_config_files="$ac_config_files libebl/Makefile"
-
-
- ac_config_files="$ac_config_files libdw/Makefile"
-
-
- ac_config_files="$ac_config_files libcpu/Makefile"
-
-
- ac_config_files="$ac_config_files libasm/Makefile"
-
-
- ac_config_files="$ac_config_files src/Makefile po/Makefile.in"
-
-
- ac_config_files="$ac_config_files tests/Makefile"
-
-
-
-
-
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
- (set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-} |
- sed '
- t clear
- : clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
- if test -w $cache_file; then
- test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
- cat confcache >$cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ ]*$//;
-}'
-fi
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_i=`echo "$ac_i" |
- sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
- # 2. Add them.
- ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
- ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${NATIVE_LD_TRUE}" && test -z "${NATIVE_LD_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"NATIVE_LD\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"NATIVE_LD\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${MUDFLAP_TRUE}" && test -z "${MUDFLAP_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"MUDFLAP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"MUDFLAP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling. Logging --version etc. is OK.
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by Red Hat elfutils $as_me 0.97, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
- echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
- echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
- echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
- echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-Red Hat elfutils config.status 0.97
-configured by $0, generated by GNU Autoconf 2.59,
- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value. By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=*)
- ac_option=`expr "x$1" : 'x\([^=]*\)='`
- ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- -*)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- *) # This is not an option, so the user has probably given explicit
- # arguments.
- ac_option=$1
- ac_need_defaults=false;;
- esac
-
- case $ac_option in
- # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --vers* | -V )
- echo "$ac_cs_version"; exit 0 ;;
- --he | --h)
- # Conflict between --help and --header
- { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; };;
- --help | --hel | -h )
- echo "$ac_cs_usage"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- CONFIG_FILES="$CONFIG_FILES $ac_optarg"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
- ac_need_defaults=false;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; } ;;
-
- *) ac_config_targets="$ac_config_targets $1" ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
- echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
- exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS section.
-#
-
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-# Capture the value of obsolete $ALL_LINGUAS because we need it to compute
- # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
- # from automake.
- eval 'ALL_LINGUAS''="$ALL_LINGUAS"'
- # Capture the value of LINGUAS because we need it to compute CATALOGS.
- LINGUAS="${LINGUAS-%UNSET%}"
-
-
-_ACEOF
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
- case "$ac_config_target" in
- # Handling of arguments.
- "config/Makefile" ) CONFIG_FILES="$CONFIG_FILES config/Makefile" ;;
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "m4/Makefile" ) CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;;
- "elfutils.spec" ) CONFIG_FILES="$CONFIG_FILES elfutils.spec:config/elfutils.spec.in" ;;
- "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
- "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
- "libelf/Makefile" ) CONFIG_FILES="$CONFIG_FILES libelf/Makefile" ;;
- "libelf-po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES libelf-po/Makefile.in" ;;
- "libebl/Makefile" ) CONFIG_FILES="$CONFIG_FILES libebl/Makefile" ;;
- "libdw/Makefile" ) CONFIG_FILES="$CONFIG_FILES libdw/Makefile" ;;
- "libcpu/Makefile" ) CONFIG_FILES="$CONFIG_FILES libcpu/Makefile" ;;
- "libasm/Makefile" ) CONFIG_FILES="$CONFIG_FILES libasm/Makefile" ;;
- "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
- "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
- "tests/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
- "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
- "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=./confstat$$-$RANDOM
- (umask 077 && mkdir $tmp)
-} ||
-{
- echo "$me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
- # Protect against being on the right side of a sed subst in config.status.
- sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@CYGPATH_W@,$CYGPATH_W,;t t
-s,@PACKAGE@,$PACKAGE,;t t
-s,@VERSION@,$VERSION,;t t
-s,@ACLOCAL@,$ACLOCAL,;t t
-s,@AUTOCONF@,$AUTOCONF,;t t
-s,@AUTOMAKE@,$AUTOMAKE,;t t
-s,@AUTOHEADER@,$AUTOHEADER,;t t
-s,@MAKEINFO@,$MAKEINFO,;t t
-s,@install_sh@,$install_sh,;t t
-s,@STRIP@,$STRIP,;t t
-s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
-s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
-s,@mkdir_p@,$mkdir_p,;t t
-s,@AWK@,$AWK,;t t
-s,@SET_MAKE@,$SET_MAKE,;t t
-s,@am__leading_dot@,$am__leading_dot,;t t
-s,@AMTAR@,$AMTAR,;t t
-s,@am__tar@,$am__tar,;t t
-s,@am__untar@,$am__untar,;t t
-s,@build@,$build,;t t
-s,@build_cpu@,$build_cpu,;t t
-s,@build_vendor@,$build_vendor,;t t
-s,@build_os@,$build_os,;t t
-s,@host@,$host,;t t
-s,@host_cpu@,$host_cpu,;t t
-s,@host_vendor@,$host_vendor,;t t
-s,@host_os@,$host_os,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@DEPDIR@,$DEPDIR,;t t
-s,@am__include@,$am__include,;t t
-s,@am__quote@,$am__quote,;t t
-s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
-s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
-s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
-s,@CCDEPMODE@,$CCDEPMODE,;t t
-s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
-s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
-s,@CPP@,$CPP,;t t
-s,@EGREP@,$EGREP,;t t
-s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t
-s,@MSGFMT@,$MSGFMT,;t t
-s,@GMSGFMT@,$GMSGFMT,;t t
-s,@XGETTEXT@,$XGETTEXT,;t t
-s,@MSGMERGE@,$MSGMERGE,;t t
-s,@USE_NLS@,$USE_NLS,;t t
-s,@LIBICONV@,$LIBICONV,;t t
-s,@LTLIBICONV@,$LTLIBICONV,;t t
-s,@INTLLIBS@,$INTLLIBS,;t t
-s,@LIBINTL@,$LIBINTL,;t t
-s,@LTLIBINTL@,$LTLIBINTL,;t t
-s,@POSUB@,$POSUB,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@YACC@,$YACC,;t t
-s,@LEX@,$LEX,;t t
-s,@LEXLIB@,$LEXLIB,;t t
-s,@LEX_OUTPUT_ROOT@,$LEX_OUTPUT_ROOT,;t t
-s,@LOCALEDIR@,$LOCALEDIR,;t t
-s,@DATADIRNAME@,$DATADIRNAME,;t t
-s,@NATIVE_LD_TRUE@,$NATIVE_LD_TRUE,;t t
-s,@NATIVE_LD_FALSE@,$NATIVE_LD_FALSE,;t t
-s,@base_cpu@,$base_cpu,;t t
-s,@MUDFLAP_TRUE@,$MUDFLAP_TRUE,;t t
-s,@MUDFLAP_FALSE@,$MUDFLAP_FALSE,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
- cat >>$CONFIG_STATUS <<\_ACEOF
- # Split the substitutions into bite-sized pieces for seds with
- # small command number limits, like on Digital OSF/1 and HP-UX.
- ac_max_sed_lines=48
- ac_sed_frag=1 # Number of current file.
- ac_beg=1 # First line for current file.
- ac_end=$ac_max_sed_lines # Line after last line for current file.
- ac_more_lines=:
- ac_sed_cmds=
- while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- else
- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- fi
- if test ! -s $tmp/subs.frag; then
- ac_more_lines=false
- else
- # The purpose of the label and of the branching condition is to
- # speed up the sed processing (if there are no `@' at all, there
- # is no need to browse any of the substitutions).
- # These are the two extra sed commands mentioned above.
- (echo ':t
- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
- fi
- ac_sed_frag=`expr $ac_sed_frag + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_lines`
- fi
- done
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
- fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
- esac
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- configure_input=
- else
- configure_input="$ac_file. "
- fi
- configure_input=$configure_input"Generated from `echo $ac_file_in |
- sed 's,.*/,,'` by configure."
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
-
- if test x"$ac_file" != x-; then
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
- sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
- if test x"$ac_file" != x-; then
- mv $tmp/out $ac_file
- else
- cat $tmp/out
- rm -f $tmp/out
- fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_HEADER section.
-#
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='[ ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='$,\1#\2define\3'
-ac_uC=' '
-ac_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- # Do quote $f, to prevent DOS paths from being IFS'd.
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
- # Remove the trailing spaces.
- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
-
-_ACEOF
-
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h. The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status. Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\_ACEOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
-t end
-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-_ACEOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless. Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\_ACEOF
-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-_ACEOF
-
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo ' :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
-do
- # Write a limited-size here document to $tmp/defines.sed.
- echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
- # Speed up: don't consider the non `#define' lines.
- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
- # Work around the forget-to-reset-the-flag bug.
- echo 't clr' >>$CONFIG_STATUS
- echo ': clr' >>$CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
- echo 'CEOF
- sed -f $tmp/defines.sed $tmp/in >$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
- rm -f conftest.defines
- mv conftest.tail conftest.defines
-done
-rm -f conftest.defines
-echo ' fi # grep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
-
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
-do
- # Write a limited-size here document to $tmp/undefs.sed.
- echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
- # Speed up: don't consider the non `#undef'
- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
- # Work around the forget-to-reset-the-flag bug.
- echo 't clr' >>$CONFIG_STATUS
- echo ': clr' >>$CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
- echo 'CEOF
- sed -f $tmp/undefs.sed $tmp/in >$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
- rm -f conftest.undefs
- mv conftest.tail conftest.undefs
-done
-rm -f conftest.undefs
-
-cat >>$CONFIG_STATUS <<\_ACEOF
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- echo "/* Generated by configure. */" >$tmp/config.h
- else
- echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
- fi
- cat $tmp/in >>$tmp/config.h
- rm -f $tmp/in
- if test x"$ac_file" != x-; then
- if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
- { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
- else
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- rm -f $ac_file
- mv $tmp/config.h $ac_file
- fi
- else
- cat $tmp/config.h
- rm -f $tmp/config.h
- fi
-# Compute $ac_file's index in $config_headers.
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $ac_file | $ac_file:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
-$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X$ac_file : 'X\(//\)[^/]' \| \
- X$ac_file : 'X\(//\)$' \| \
- X$ac_file : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X$ac_file |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`/stamp-h$_am_stamp_count
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
- ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
- ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_dest" : 'X\(//\)[^/]' \| \
- X"$ac_dest" : 'X\(//\)$' \| \
- X"$ac_dest" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
- case $ac_dest in
- depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # So let's grep whole file.
- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
- dirpart=`(dirname "$mf") 2>/dev/null ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`(dirname "$file") 2>/dev/null ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p $dirpart/$fdir
- else
- as_dir=$dirpart/$fdir
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
-echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
- { (exit 1); exit 1; }; }; }
-
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
-done
- ;;
- default-1 )
- for ac_file in $CONFIG_FILES; do
- # Support "outfile[:infile[:infile...]]"
- case "$ac_file" in
- *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- esac
- # PO directories have a Makefile.in generated from Makefile.in.in.
- case "$ac_file" in */Makefile.in)
- # Adjust a relative srcdir.
- ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
- ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
- ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
- # In autoconf-2.13 it is called $ac_given_srcdir.
- # In autoconf-2.50 it is called $srcdir.
- test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
- case "$ac_given_srcdir" in
- .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
- /*) top_srcdir="$ac_given_srcdir" ;;
- *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
- if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
- rm -f "$ac_dir/POTFILES"
- test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
- cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
- # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
- # on $ac_dir but don't depend on user-specified configuration
- # parameters.
- if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
- # The LINGUAS file contains the set of available languages.
- if test -n "$ALL_LINGUAS"; then
- test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
- fi
- ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
- # Hide the ALL_LINGUAS assigment from automake.
- eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
- fi
- case "$ac_given_srcdir" in
- .) srcdirpre= ;;
- *) srcdirpre='$(srcdir)/' ;;
- esac
- POFILES=
- GMOFILES=
- UPDATEPOFILES=
- DUMMYPOFILES=
- for lang in $ALL_LINGUAS; do
- POFILES="$POFILES $srcdirpre$lang.po"
- GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
- UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
- DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
- done
- # CATALOGS depends on both $ac_dir and the user's LINGUAS
- # environment variable.
- INST_LINGUAS=
- if test -n "$ALL_LINGUAS"; then
- for presentlang in $ALL_LINGUAS; do
- useit=no
- if test "%UNSET%" != "$LINGUAS"; then
- desiredlanguages="$LINGUAS"
- else
- desiredlanguages="$ALL_LINGUAS"
- fi
- for desiredlang in $desiredlanguages; do
- # Use the presentlang catalog if desiredlang is
- # a. equal to presentlang, or
- # b. a variant of presentlang (because in this case,
- # presentlang can be used as a fallback for messages
- # which are not translated in the desiredlang catalog).
- case "$desiredlang" in
- "$presentlang"*) useit=yes;;
- esac
- done
- if test $useit = yes; then
- INST_LINGUAS="$INST_LINGUAS $presentlang"
- fi
- done
- fi
- CATALOGS=
- if test -n "$INST_LINGUAS"; then
- for lang in $INST_LINGUAS; do
- CATALOGS="$CATALOGS $lang.gmo"
- done
- fi
- test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
- sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
- for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
- if test -f "$f"; then
- case "$f" in
- *.orig | *.bak | *~) ;;
- *) cat "$f" >> "$ac_dir/Makefile" ;;
- esac
- fi
- done
- fi
- ;;
- esac
- done ;;
- esac
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || { (exit 1); exit 1; }
-fi
-
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index e153737f..00000000
--- a/configure.ac
+++ /dev/null
@@ -1,253 +0,0 @@
-dnl Process this file with autoconf to produce a configure script. -*-m4-*-
-dnl Configure input file for elfutils.
-dnl
-dnl Copyright (C) 1996-2002, 2003, 2004 Red Hat, Inc.
-dnl
-dnl This program is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation, version 2.
-dnl
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-dnl GNU General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, write to the Free Software Foundation,
-dnl Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-dnl
-AC_INIT([Red Hat elfutils],[0.97],[http://bugzilla.redhat.com/bugzilla/],
- [elfutils])
-
-AC_CONFIG_AUX_DIR([config])
-AC_CONFIG_FILES([config/Makefile])
-
-AC_COPYRIGHT([Copyright (C) 1996-2003, 2004 Red Hat, Inc.])
-AC_REVISION($Revision: 1.30 $)
-AC_PREREQ(2.59) dnl Minimum Autoconf version required.
-
-AM_INIT_AUTOMAKE([gnits 1.7 dist-bzip2])
-
-AC_CONFIG_SRCDIR([libelf/libelf.h])
-AC_CONFIG_FILES([Makefile])
-AC_CONFIG_HEADERS([config.h])
-
-AC_CONFIG_MACRO_DIR([m4])
-AC_CONFIG_FILES([m4/Makefile])
-
-dnl The RPM spec file. We substitute a few values in the file.
-AC_CONFIG_FILES([elfutils.spec:config/elfutils.spec.in])
-
-
-AC_CANONICAL_HOST
-
-AC_ARG_ENABLE([tls],
-AS_HELP_STRING([--enable-tls], [enable use of thread local storage]),
-AC_DEFINE(USE_TLS))
-AH_TEMPLATE([USE_TLS], [Defined if thread local storage should be used.])
-
-dnl Add all the languages for which translations are available.
-ALL_LINGUAS=
-
-AC_PROG_CC
-AC_PROG_CPP
-AC_PROG_GCC_TRADITIONAL
-AM_GNU_GETTEXT([external])
-AC_PROG_RANLIB
-AC_PROG_YACC
-AM_PROG_LEX
-
-AC_CACHE_CHECK([for gcc with C99 support], ac_cv_c99, [dnl
-old_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -std=gnu99"
-AC_COMPILE_IFELSE([dnl
-int foo (int a) { for (int i = 0; i < a; ++i) if (i % 4) break; int s = a; }],
- ac_cv_c99=yes, ac_cv_c99=no)
-CFLAGS="$old_CFLAGS"])
-AS_IF([test "x$ac_cv_c99" != xyes],
- AC_MSG_ERROR([gcc with C99 support required]))
-
-LOCALEDIR=$datadir
-AC_SUBST(LOCALEDIR)
-AC_DEFINE_UNQUOTED(LOCALEDIR, "$LOCALEDIR")
-AH_TEMPLATE([LOCALEDIR], [Directory to place translation files in.])
-
-DATADIRNAME=$datadir
-AC_SUBST(DATADIRNAME)
-
-dnl This test must come as early as possible after the compiler configuration
-dnl tests, because the choice of the file model can (in principle) affect
-dnl whether functions and headers are available, whether they work, etc.
-AC_SYS_LARGEFILE
-
-dnl Enable the linker to be build as a native-only linker. By default it
-dnl can handle all architectures but this comes at a cost. A native
-dnl will be slightly faster, small, and has fewer dependencies.
-native_ld=no
-AC_ARG_ENABLE([generic],
-AS_HELP_STRING([--disable-generic], [do not build generic linker]), [dnl
-if test "$enable_generic" = no; then
- case "$host_cpu" in
- i?86)
- AC_DEFINE(NATIVE_ELF, 32)
- native_ld=yes
- base_cpu=i386
- ;;
- *)
- AC_MSG_ERROR([no machine-specific linker for this configuration available])
- ;;
- esac
-fi])
-AH_TEMPLATE([NATIVE_ELF],
-[Define to 32 or 64 if a specific implementation is wanted.])
-AM_CONDITIONAL(NATIVE_LD, test "$native_ld" = yes)
-dnl The automake generated Makefile cannot deal with macros in the name
-dnl of files if at any time there is no such file, even if the filename
-dnl would not be used.
-AS_IF([test -z "$base_cpu"], [base_cpu=none])
-AC_SUBST(base_cpu)
-
-dnl Enable debugging via mudflap. This option will cause most libraries
-dnl to be built as archives which are statically linked into the applications.
-dnl All code, as far as possible, is compiled instrumented to catch all
-dnl the bugs valgrind is able to catch.
-use_mudflap=no
-AC_ARG_ENABLE([mudflap],
-AS_HELP_STRING([--enable-mudflap],
-[build binaries with mudflap instrumentation]), [dnl
-if test "x$enable_mudflap" = xyes; then
- # Check whether the compiler support -fmudflap.
- old_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -fmudflap"
- AC_TRY_COMPILE([], [], use_mudflap=yes, use_mudflap=fail)
- CFLAGS="$old_CFLAGS"
-fi])
-if test "$use_mudflap" = fail; then
- AC_MSG_FAILURE([--enable-mudflap requires a compiler which understands this option])
-fi
-AM_CONDITIONAL(MUDFLAP, test "$use_mudflap" = yes)
-
-
-dnl The directories with content.
-
-dnl Documentation.
-AC_CONFIG_FILES([doc/Makefile])
-
-dnl Support library.
-AC_CONFIG_FILES([lib/Makefile])
-
-dnl ELF library.
-AC_CONFIG_FILES([libelf/Makefile libelf-po/Makefile.in])
-
-dnl Higher-level ELF support library.
-AC_CONFIG_FILES([libebl/Makefile])
-
-dnl DWARF library.
-AC_CONFIG_FILES([libdw/Makefile])
-
-dnl CPU handling library.
-AC_CONFIG_FILES([libcpu/Makefile])
-
-dnl Assembler library.
-AC_CONFIG_FILES([libasm/Makefile])
-
-dnl Tools.
-AC_CONFIG_FILES([src/Makefile po/Makefile.in])
-
-dnl Test suite.
-AC_CONFIG_FILES([tests/Makefile])
-
-
-dnl Test of the config.h file. We hide all kinds of configuration magic
-dnl in there.
-AH_BOTTOM([
-/* Eventually we will allow multi-threaded applications to use the
- libraries. Therefore we will add the necessary locking although
- the macros used expand to nothing for now. */
-#define lock_lock(lock) ((void) (lock))
-#define rwlock_define(class,name) class int name
-#define rwlock_init(lock) ((void) (lock))
-#define rwlock_fini(lock) ((void) (lock))
-#define rwlock_rdlock(lock) ((void) (lock))
-#define rwlock_wrlock(lock) ((void) (lock))
-#define rwlock_unlock(lock) ((void) (lock))
-#define tls_key_t void *
-#define key_create(keyp, freefct) (1)
-#define getspecific(key) key
-#define setspecific(key,val) key = val
-#define once_define(class,name) class int name
-#define once_execute(name,fct) \
- do { \
- if (name == 0) \
- fct (); \
- name = 1; \
- } while (0)
-
-/* gettext helper macro. */
-#define N_(Str) Str
-
-/* Compiler-specific definitions. */
-#define strong_alias(name, aliasname) \
- extern __typeof (name) aliasname __attribute__ ((alias (#name)));
-
-#ifdef __i386__
-# define internal_function_def __attribute__ ((regparm (3), stdcall))
-#else
-# define internal_function_def /* nothing */
-#endif
-
-# define internal_function \
- internal_function_def __attribute__ ((visibility ("internal")))
-# define internal_strong_alias(name, aliasname) \
- extern __typeof (name) aliasname __attribute__ ((alias (#name), visibility ("internal"))) internal_function_def;
-
-#define attribute_hidden \
- __attribute__ ((visibility ("hidden")))
-
-/* Define ALLOW_UNALIGNED if the architecture allows operations on
- unaligned memory locations. */
-#if defined __i386__ || defined __alpha__ || defined __x86_64__ || defined __ia64__
-# define ALLOW_UNALIGNED 1
-#else
-# define ALLOW_UNALIGNED 0
-#endif
-
-#define unlikely(expr) __builtin_expect (expr, 0)
-#define likely(expr) __builtin_expect (expr, 1)
-
-#define obstack_calloc(ob, size) \
- ({ size_t _s = (size); memset (obstack_alloc (ob, _s), '\0', _s); })
-#define obstack_strdup(ob, str) \
- ({ const char *_s = (str); obstack_copy0 (ob, _s, strlen (_s)); })
-#define obstack_strndup(ob, str, n) \
- ({ const char *_s = (str); obstack_copy0 (ob, _s, strnlen (_s, n)); })
-
-#if __STDC_VERSION__ >= 199901L
-# define flexarr_size /* empty */
-#else
-# define flexarr_size 0
-#endif
-
-/* Calling conventions. */
-#ifdef __i386__
-# define CALLING_CONVENTION regparm (3), stdcall
-# define AND_CALLING_CONVENTION , regparm (3), stdcall
-#else
-# define CALLING_CONVENTION
-# define AND_CALLING_CONVENTION
-#endif
-
-/* Avoid PLT entries. */
-#ifdef PIC
-# define INTUSE(name) _INTUSE(name)
-# define _INTUSE(name) __##name##_internal
-# define INTDEF(name) _INTDEF(name)
-# define _INTDEF(name) \
- extern __typeof__ (name) __##name##_internal __attribute__ ((alias (#name)));
-#else
-# define INTUSE(name) name
-# define INTDEF(name) /* empty */
-#endif
-])
-
-AC_OUTPUT
diff --git a/doc/ChangeLog b/doc/ChangeLog
deleted file mode 100644
index c46ffcb6..00000000
--- a/doc/ChangeLog
+++ /dev/null
@@ -1,3 +0,0 @@
-2003-08-11 Ulrich Drepper <drepper@redhat.com>
-
- * Moved to CVS archive.
diff --git a/doc/Makefile b/doc/Makefile
deleted file mode 100644
index acdf1111..00000000
--- a/doc/Makefile
+++ /dev/null
@@ -1,319 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# doc/Makefile. Generated from Makefile.in by configure.
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-srcdir = .
-top_srcdir = ..
-
-pkgdatadir = $(datadir)/elfutils
-pkglibdir = $(libdir)/elfutils
-pkgincludedir = $(includedir)/elfutils
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = /usr/bin/install -c
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = i686-pc-linux-gnu
-host_triplet = i686-pc-linux-gnu
-subdir = doc
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-SOURCES =
-DIST_SOURCES =
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run aclocal-1.9
-AMDEP_FALSE = #
-AMDEP_TRUE =
-AMTAR = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run tar
-AUTOCONF = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoconf
-AUTOHEADER = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoheader
-AUTOMAKE = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run automake-1.9
-AWK = gawk
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CFLAGS = -g -O2
-CPP = gcc -E
-CPPFLAGS =
-CYGPATH_W = echo
-DATADIRNAME = ${prefix}/share
-DEFS = -DHAVE_CONFIG_H
-DEPDIR = .deps
-ECHO_C =
-ECHO_N = -n
-ECHO_T =
-EGREP = grep -E
-EXEEXT =
-GMSGFMT = /usr/bin/msgfmt
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
-INTLLIBS =
-LDFLAGS =
-LEX = flex
-LEXLIB = -lfl
-LEX_OUTPUT_ROOT = lex.yy
-LIBICONV = -liconv
-LIBINTL =
-LIBOBJS =
-LIBS =
-LOCALEDIR = ${prefix}/share
-LTLIBICONV = -liconv
-LTLIBINTL =
-LTLIBOBJS =
-MAKEINFO = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run makeinfo
-MKINSTALLDIRS = config/mkinstalldirs
-MSGFMT = /usr/bin/msgfmt
-MSGMERGE = /usr/bin/msgmerge
-MUDFLAP_FALSE =
-MUDFLAP_TRUE = #
-NATIVE_LD_FALSE =
-NATIVE_LD_TRUE = #
-OBJEXT = o
-PACKAGE = elfutils
-PACKAGE_BUGREPORT = http://bugzilla.redhat.com/bugzilla/
-PACKAGE_NAME = Red Hat elfutils
-PACKAGE_STRING = Red Hat elfutils 0.97
-PACKAGE_TARNAME = elfutils
-PACKAGE_VERSION = 0.97
-PATH_SEPARATOR = :
-POSUB = po
-RANLIB = ranlib
-SET_MAKE =
-SHELL = /bin/sh
-STRIP =
-USE_NLS = yes
-VERSION = 0.97
-XGETTEXT = /usr/bin/xgettext
-YACC = bison -y
-ac_ct_CC = gcc
-ac_ct_RANLIB = ranlib
-ac_ct_STRIP =
-am__fastdepCC_FALSE = #
-am__fastdepCC_TRUE =
-am__include = include
-am__leading_dot = .
-am__quote =
-am__tar = ${AMTAR} chof - "$$tardir"
-am__untar = ${AMTAR} xf -
-base_cpu = none
-bindir = ${exec_prefix}/bin
-build = i686-pc-linux-gnu
-build_alias =
-build_cpu = i686
-build_os = linux-gnu
-build_vendor = pc
-datadir = ${prefix}/share
-exec_prefix = ${prefix}
-host = i686-pc-linux-gnu
-host_alias =
-host_cpu = i686
-host_os = linux-gnu
-host_vendor = pc
-includedir = ${prefix}/include
-infodir = ${prefix}/info
-install_sh = /work/elfutils/stock/elfutils-0.97/config/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-localstatedir = ${prefix}/var
-mandir = ${prefix}/man
-mkdir_p = mkdir -p --
-oldincludedir = /usr/include
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-program_transform_name = s,x,x,
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-sysconfdir = ${prefix}/etc
-target_alias =
-EXTRA_DIST = elfutils.sgml
-CLEANFILES = elfutils.dvi
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits doc/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits doc/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-uninstall-info-am:
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-exec \
- install-exec-am install-info install-info-am install-man \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
- uninstall-info-am
-
-
-# We need only a few special rules to generate the various output formats
-# from the SGML sources.
-.PHONY: dvi pdf html
-dvi: $(srcdir)elfutils.dvi
-pdf: $(srcdir)elfutils.pdf
-
-$(srcdir)%.dvi: %.sgml
- db2dvi $^
-$(srcdir)%.pdf: %.sgml
- db2pdf $^
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/doc/Makefile.am b/doc/Makefile.am
deleted file mode 100644
index b9f0e15f..00000000
--- a/doc/Makefile.am
+++ /dev/null
@@ -1,29 +0,0 @@
-## Process this file with automake to create Makefile.in
-## Configure input file for elfutils.
-##
-## Copyright (C) 1996-2001, 2002 Red Hat, Inc.
-##
-## This program is Open Source software; you can redistribute it and/or
-## modify it under the terms of the Open Software License version 1.0 as
-## published by the Open Source Initiative.
-##
-## You should have received a copy of the Open Software License along
-## with this program; if not, you may obtain a copy of the Open Software
-## License version 1.0 from http://www.opensource.org/licenses/osl.php or
-## by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-## 3001 King Ranch Road, Ukiah, CA 95482. */
-##
-EXTRA_DIST = elfutils.sgml
-
-CLEANFILES = elfutils.dvi
-
-# We need only a few special rules to generate the various output formats
-# from the SGML sources.
-.PHONY: dvi pdf html
-dvi: $(srcdir)elfutils.dvi
-pdf: $(srcdir)elfutils.pdf
-
-$(srcdir)%.dvi: %.sgml
- db2dvi $^
-$(srcdir)%.pdf: %.sgml
- db2pdf $^
diff --git a/doc/Makefile.in b/doc/Makefile.in
deleted file mode 100644
index cefcf9fd..00000000
--- a/doc/Makefile.in
+++ /dev/null
@@ -1,319 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = doc
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-SOURCES =
-DIST_SOURCES =
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GMSGFMT = @GMSGFMT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
-MUDFLAP_FALSE = @MUDFLAP_FALSE@
-MUDFLAP_TRUE = @MUDFLAP_TRUE@
-NATIVE_LD_FALSE = @NATIVE_LD_FALSE@
-NATIVE_LD_TRUE = @NATIVE_LD_TRUE@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-XGETTEXT = @XGETTEXT@
-YACC = @YACC@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-base_cpu = @base_cpu@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-EXTRA_DIST = elfutils.sgml
-CLEANFILES = elfutils.dvi
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits doc/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits doc/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-uninstall-info-am:
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-exec \
- install-exec-am install-info install-info-am install-man \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
- uninstall-info-am
-
-
-# We need only a few special rules to generate the various output formats
-# from the SGML sources.
-.PHONY: dvi pdf html
-dvi: $(srcdir)elfutils.dvi
-pdf: $(srcdir)elfutils.pdf
-
-$(srcdir)%.dvi: %.sgml
- db2dvi $^
-$(srcdir)%.pdf: %.sgml
- db2pdf $^
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/doc/elfutils.sgml b/doc/elfutils.sgml
deleted file mode 100644
index 7ef84a8d..00000000
--- a/doc/elfutils.sgml
+++ /dev/null
@@ -1,412 +0,0 @@
-<!doctype book PUBLIC "-//OASIS//DTD DocBook V4.1//EN"[
-<!ENTITY package "<filename>new-bu</filename>">
-]>
-
-<book>
- <title>New Binutils User's and Reference Manual</title>
-
- <chapter>
- <title><filename>libelf</filename> <acronym>ABI</acronym></title>
-
- <simpara>The <acronym>ABI</acronym> of the
- <filename>libelf</filename> implemented in the &package; package
- is following that of Sun's implementation which in turn in derived
- from the original SysVr4 implementation. There are some
- extensions over Sun's versions, though, which makes it impossible
- to replace this implementation with Sun's.</simpara>
-
- <beginpage>
-
- <refentry xreflabel="Elf_Data" id="ElfUData">
- <refnamediv>
- <refname>Elf_Data</refname>
- <refpurpose>Descriptor for Data Buffer</refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <synopsis>
-#include &lt;libelf.h&gt;
-</synopsis>
- </refsynopsisdiv>
-
- <refsect1>
- <title>Description</title>
-
- <simpara>The <structname>Elf_Data</structname> structure is as
- a descriptor for a data buffer associated with a section.
- Every data buffer is associated with a specific section (see
- <!-- xref --><structname>Elf_Scn</structname>).</simpara>
-
- <simpara>A data buffer is created when reading a file. In
- this case only a single buffer is present in the section. The
- user can add as many sections as wanted to a section and they
- can be retrieved using the <function>elf_getdata</function>
- and <function>elf_rawdata</function> functions.<!-- xref
- --></simpara>
-
- <simpara>The <structname>Elf_Data</structname> structure
- contains the following members:</simpara>
-
- <programlisting>
- void *d_buf
- Elf_Type d_type
- size_t d_size
- off_t d_off
- size_t d_align
- unsigned int d_version
-</programlisting>
-
- <simpara>All these members can be modified directly by the
- user. They can be used to resize a section, to change its
- content or type, and many things more. This is also true for
- the data read from a file. The meaning of the members is as
- follows:</simpara>
-
- <variablelist>
- <varlistentry>
- <term><structfield>d_buf</structfield></term>
- <listitem>
- <simpara>The <structfield>d_buf</structfield> member is
- the pointer to the buffer with the actual data. When
- the ELF file was read from a file the first and only
- data buffer of a section is allocated by the
- <filename>libelf</filename> library. The user should
- not try to resize or free this buffer. When the user
- adds a new data buffer to a section the associated
- memory block is normally allocated by the user. It is
- important that the buffer must have a lifetime at least
- until the ELF file is closed entirely (important when
- the buffer is allocated on the stack). If the buffer is
- not allocated on the stack it is the user's
- responsibility to free the buffer after it is not used
- anymore. The <structfield>d_buf</structfield> member
- can contain a null pointer if the data buffer is
- empty.</simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><structfield>d_type</structfield></term>
- <listitem>
- <simpara>The <structfield>d_type</structfield>
- determines how the data of the buffer is interpreted.
- This type is determined from the section type and must
- be the same for all data buffers for a section. See
- <!-- xref --><type>Elf_Type</type> for more information.
- The <function><link linkend="elfUgetdata"
- endterm="elfUgetdata.refname"></link></function>
- function uses this information to convert the data of
- the buffer between the external form and the form
- represented to the user and back if necessary.</simpara>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
- </refentry>
-
- <beginpage>
-
- <refentry id="elfUgetdata">
- <refnamediv>
- <refname id="elfUgetdata.refname">elf_getdata</refname>
- <refpurpose>Get washed data of section</refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <funcsynopsis>
- <funcsynopsisinfo>
-#include &lt;libelf.h&gt;
-</funcsynopsisinfo>
- <funcprototype>
- <funcdef>Elf_Data *<function>elf_getdata</function></funcdef>
- <paramdef>Elf_Scn *<parameter>scn</parameter></paramdef>
- <paramdef>Elf_Data *<parameter>data</parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- </refsynopsisdiv>
-
- <refsect1>
- <title>Description</title>
-
- <simpara>The <function>elf_getdata</function> function allows
- to retriece the data buffers of the section
- <parameter>scn</parameter>. There can be more than one buffer
- if the user explicitly added them. When a file is read the
- <filename>libelf</filename> library creates exactly one data
- buffer.</simpara>
-
- <simpara>The first buffer in the list can be obtained by
- passing a null pointer in the parameter
- <parameter>data</parameter>. To get the next data buffer the
- previously returned value must be passed in the
- <parameter>data</parameter> parameter. If there is no more
- buffer left in the list a null pointer is returned.</simpara>
-
- <simpara>If the <parameter>data</parameter> parameter is not a
- null pointer it must be a descriptor with for a buffer
- associated with the section <parameter>scn</parameter>. If
- this is not the case a null pointer is returned. To
- facilitate error handling <function>elf_getdata</function>
- also returns a null pointer if the <parameter>scn</parameter>
- parameter is a null pointer.</simpara>
- </refsect1>
- </refentry>
-
- <refentry>
- <refnamediv>
- <refname id="elfUupdate.refname">elf_update</refname>
- <refpurpose>update an ELF descriptor</refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <funcsynopsis>
- <funcsynopsisinfo>
-#include &lt;libelf.h&gt;
-</funcsynopsisinfo>
- <funcprototype>
- <funcdef>off_t <function>elf_update</function></funcdef>
- <paramdef>Elf *<parameter>elf</parameter></paramdef>
- <paramdef>Elf_Cmd <parameter>cmd</parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- </refsynopsisdiv>
-
- <refsect1>
- <title>Description</title>
-
- <simpara>The user is responsible for filling in the following
- fields in the named data structures:</simpara>
-
- <table>
- <title>Fields not set by <function>elf_update</function></title>
- <tgroup cols="3">
- <colspec colwidth="90pt">
- <colspec colwidth="110pt">
- <thead>
- <row>
- <entry>Data Structure</entry>
- <entry>Member</entry>
- <entry>Exception</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry morerows="8"><type>Elfxx_Ehdr</type></entry>
- <entry>e_ident[EI_DATA]</entry>
- <entry>see below</entry>
- </row>
- <row>
- <entry></entry>
- <entry>e_type</entry>
- <!-- <entry morerows="1"></entry> -->
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>e_machine</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>e_version</entry>
- <entry>see below</entry>
- </row>
- <row>
- <entry></entry>
- <entry>e_entry</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>e_phoff</entry>
- <entry>if <symbol>ELF_F_LAYOUT</symbol> is used</entry>
- </row>
- <row>
- <entry></entry>
- <entry>e_shoff</entry>
- <entry>if <symbol>ELF_F_LAYOUT</symbol> is used</entry>
- </row>
- <row>
- <entry></entry>
- <entry>e_flags</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>e_shstrndx</entry>
- <entry></entry>
- </row>
- <row>
- <entry morerows="7">Elfxx_Phdr</entry>
- <entry>p_type</entry>
- <entry morerows="7"></entry>
- </row>
- <row>
- <entry></entry>
- <entry>p_offset</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>p_vaddr</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>p_paddr</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>p_filesz</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>p_memsz</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>p_flags</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>p_align</entry>
- <entry></entry>
- </row>
-
- <row>
- <entry morerows="9">Elfxx_Shdr</entry>
- <entry>sh_name</entry>
- <entry morerows="3"></entry>
- </row>
- <row>
- <entry></entry>
- <entry>sh_type</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>sh_flags</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>sh_addr</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>sh_offset</entry>
- <entry>if <symbol>ELF_F_LAYOUT</symbol> is used</entry>
- </row>
- <row>
- <entry></entry>
- <entry>sh_size</entry>
- <entry>if <symbol>ELF_F_LAYOUT</symbol> is used</entry>
- </row>
- <row>
- <entry></entry>
- <entry>sh_link</entry>
- <!-- <entry morerows="1"></entry> -->
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>sh_info</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>sh_addralign</entry>
- <entry>if <symbol>ELF_F_LAYOUT</symbol> is used</entry>
- </row>
- <row>
- <entry></entry>
- <entry>sh_entsize</entry>
- <entry></entry>
- </row>
-
- <row>
- <entry morerows="5">Elf_Data</entry>
- <entry>d_buf</entry>
- <entry morerows="2"></entry>
- </row>
- <row>
- <entry></entry>
- <entry>d_type</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>d_size</entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>d_off</entry>
- <entry>if <symbol>ELF_F_LAYOUT</symbol> is used</entry>
- </row>
- <row>
- <entry></entry>
- <entry>d_align</entry>
- <!-- <entry morerows="1"></entry> -->
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry>d_version</entry>
- <entry></entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <simpara>Two fields of the ELF header are handled in a special
- way:</simpara>
-
- <variablelist>
- <varlistentry>
- <term>e_version</term>
- <listitem>
- <simpara>The user can set this field to the vvalue for
- the version to be used. It is an error if the library
- cannot handle this version. If the field contains the
- value <symbol>EV_NONE</symbol> the library will fill in
- its own internal version.</simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>e_ident[EI_DATA]</term>
- <listitem>
- <simpara>The user should fill in the byte ordering for
- the file. If the value of the field is
- <symbol>ELFDATANONE</symbol> the library replaces it
- with the native byte ordering for the machine.</simpara>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
- </refentry>
- </chapter>
-
- <chapter>
- <title><filename>libelf</filename> Internals</title>
-
- <simpara>Since the binary format handling tools need constant
- attention since there are always new machines and varients
- therefore coming out it is important to have the implementation
- weel documented. Only this way extensions can be made in the
- right places and the mistakes of the past avoided.</simpara>
- </chapter>
-</book>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omitag:nil
-sgml-shorttag:t
-End:
--->
diff --git a/elfutils.spec b/elfutils.spec
deleted file mode 100644
index 5db4242e..00000000
--- a/elfutils.spec
+++ /dev/null
@@ -1,331 +0,0 @@
-%define gpl 0
-Summary: A collection of utilities and DSOs to handle compiled objects.
-Name: elfutils
-Version: 0.97
-Release: 1
-Copyright: OSL
-Group: Development/Tools
-#URL: file://home/devel/drepper/
-Source: elfutils-%{version}.tar.gz
-Obsoletes: libelf libelf-devel
-Requires: elfutils-libelf = %{version}-%{release}
-%if %{gpl}
-Requires: binutils >= 2.14.90.0.4-26.2
-%endif
-
-# ExcludeArch: xxx
-
-BuildRoot: %{_tmppath}/%{name}-root
-BuildRequires: gcc >= 3.2
-BuildRequires: bison >= 1.875
-BuildRequires: flex >= 2.5.4a
-
-%define _gnu %{nil}
-%define _programprefix eu-
-
-%description
-Elfutils is a collection of utilities, including ld (a linker),
-nm (for listing symbols from object files), size (for listing the
-section sizes of an object or archive file), strip (for discarding
-symbols), readelf (to see the raw ELF file structures), and elflint
-(to check for well-formed ELF files). Also included are numerous
-helper libraries which implement DWARF, ELF, and machine-specific ELF
-handling.
-
-%package devel
-Summary: Development libraries to handle compiled objects.
-Group: Development/Tools
-Copyright: OSL
-Requires: elfutils = %{version}-%{release}
-Requires: elfutils-libelf-devel = %{version}-%{release}
-
-%description devel
-The elfutils-devel package contains the libraries to create
-applications for handling compiled objects. libebl provides some
-higher-level ELF access functionality. libdw provides access to
-the DWARF debugging information. libasm provides a programmable
-assembler interface.
-
-%package libelf
-Summary: Library to read and write ELF files.
-Group: Development/Tools
-%if %{gpl}
-Copyright: GPL
-%endif
-
-%description libelf
-The elfutils-libelf package provides a DSO which allows reading and
-writing ELF files on a high level. Third party programs depend on
-this package to read internals of ELF files. The programs of the
-elfutils package use it also to generate new ELF files.
-
-%package libelf-devel
-Summary: Development support for libelf
-Group: Development/Tools
-Requires: elfutils-libelf = %{version}-%{release}
-Conflicts: libelf-devel
-%if %{gpl}
-Copyright: GPL
-%endif
-
-%description libelf-devel
-The elfutils-libelf-devel package contains the libraries to create
-applications for handling compiled objects. libelf allows you to
-access the internals of the ELF object file format, so you can see the
-different sections of an ELF file.
-
-%prep
-%setup -q
-
-%build
-mkdir build-%{_target_platform}
-cd build-%{_target_platform}
-../configure \
- --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} \
- --bindir=%{_bindir} --sbindir=%{_sbindir} --sysconfdir=%{_sysconfdir} \
- --datadir=%{_datadir} --includedir=%{_includedir} --libdir=%{_libdir} \
- --libexecdir=%{_libexecdir} --localstatedir=%{_localstatedir} \
- --sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
- --infodir=%{_infodir} --program-prefix=%{_programprefix} --enable-shared
-cd ..
-
-%install
-rm -rf ${RPM_BUILD_ROOT}
-mkdir -p ${RPM_BUILD_ROOT}%{_prefix}
-
-cd build-%{_target_platform}
-#make check
-%makeinstall
-
-chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib*.so*
-%if !%{gpl}
-chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/elfutils/lib*.so*
-%endif
-
-cd ..
-
-%if !%{gpl}
-# XXX Nuke unpackaged files
-{ cd ${RPM_BUILD_ROOT}
- rm -f .%{_bindir}/eu-ld
- rm -f .%{_includedir}/elfutils/libasm.h
- rm -f .%{_includedir}/elfutils/libdw.h
- rm -f .%{_libdir}/libasm-%{version}.so
- rm -f .%{_libdir}/libasm.a
- rm -f .%{_libdir}/libdw.so
- rm -f .%{_libdir}/libdw.a
-}
-%endif
-
-%check
-cd build-%{_target_platform}
-make check
-
-%clean
-rm -rf ${RPM_BUILD_ROOT}
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-%post libelf -p /sbin/ldconfig
-
-%postun libelf -p /sbin/ldconfig
-
-%files
-%defattr(-,root,root)
-%doc README TODO
-%if %{gpl}
-%doc fake-src/FULL
-%endif
-%{_bindir}/eu-elflint
-%{_bindir}/eu-nm
-%{_bindir}/eu-readelf
-%{_bindir}/eu-size
-%{_bindir}/eu-strip
-%if !%{gpl}
-#%{_bindir}/eu-ld
-#%{_libdir}/libasm-%{version}.so
-%{_libdir}/libdw-%{version}.so
-#%{_libdir}/libasm*.so.*
-%{_libdir}/libdw*.so.*
-%dir %{_libdir}/elfutils
-%{_libdir}/elfutils/lib*.so
-%endif
-
-%files devel
-%defattr(-,root,root)
-%{_includedir}/dwarf.h
-%dir %{_includedir}/elfutils
-%{_includedir}/elfutils/elf-knowledge.h
-%if !%{gpl}
-%{_includedir}/elfutils/libebl.h
-#%{_libdir}/libasm.a
-%{_libdir}/libebl.a
-#%{_libdir}/libdw.a
-#%{_libdir}/libasm.so
-#%{_libdir}/libdw.so
-%endif
-
-%files libelf
-%defattr(-,root,root)
-%{_libdir}/libelf-%{version}.so
-%{_libdir}/libelf*.so.*
-
-%files libelf-devel
-%defattr(-,root,root)
-%{_includedir}/libelf.h
-%{_includedir}/gelf.h
-%{_includedir}/nlist.h
-%{_libdir}/libelf.a
-%{_libdir}/libelf.so
-
-%changelog
-* Fri Jan 16 2004 Jakub Jelinek <jakub@redhat.com> 0.94-1
-- upgrade to 0.94
-
-* Fri Jan 16 2004 Jakub Jelinek <jakub@redhat.com> 0.93-1
-- upgrade to 0.93
-
-* Thu Jan 8 2004 Jakub Jelinek <jakub@redhat.com> 0.92-1
-- full version
-- macroized spec file for GPL or OSL builds
-- include only libelf under GPL plus wrapper scripts
-
-* Wed Jan 7 2004 Jakub Jelinek <jakub@redhat.com> 0.91-2
-- macroized spec file for GPL or OSL builds
-
-* Wed Jan 7 2004 Ulrich Drepper <drepper@redhat.com>
-- split elfutils-devel into two packages.
-
-* Wed Jan 7 2004 Jakub Jelinek <jakub@redhat.com> 0.91-1
-- include only libelf under GPL plus wrapper scripts
-
-* Tue Dec 23 2003 Jeff Johnson <jbj@redhat.com> 0.89-3
-- readelf, not readline, in %%description (#111214).
-
-* Fri Sep 26 2003 Bill Nottingham <notting@redhat.com> 0.89-1
-- update to 0.89 (fix eu-strip)
-
-* Tue Sep 23 2003 Jakub Jelinek <jakub@redhat.com> 0.86-3
-- update to 0.86 (fix eu-strip on s390x/alpha)
-- libebl is an archive now; remove references to DSO
-
-* Mon Jul 14 2003 Jeff Johnson <jbj@redhat.com> 0.84-3
-- upgrade to 0.84 (readelf/elflint improvements, rawhide bugs fixed).
-
-* Fri Jul 11 2003 Jeff Johnson <jbj@redhat.com> 0.83-3
-- upgrade to 0.83 (fix invalid ELf handle on *.so strip, more).
-
-* Wed Jul 9 2003 Jeff Johnson <jbj@redhat.com> 0.82-3
-- upgrade to 0.82 (strip tests fixed on big-endian).
-
-* Tue Jul 8 2003 Jeff Johnson <jbj@redhat.com> 0.81-3
-- upgrade to 0.81 (strip excludes unused symtable entries, test borked).
-
-* Thu Jun 26 2003 Jeff Johnson <jbj@redhat.com> 0.80-3
-- upgrade to 0.80 (debugedit changes for kernel in progress).
-
-* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
-- rebuilt
-
-* Wed May 21 2003 Jeff Johnson <jbj@redhat.com> 0.79-2
-- upgrade to 0.79 (correct formats for size_t, more of libdw "works").
-
-* Mon May 19 2003 Jeff Johnson <jbj@redhat.com> 0.78-2
-- upgrade to 0.78 (libdwarf bugfix, libdw additions).
-
-* Mon Feb 24 2003 Elliot Lee <sopwith@redhat.com>
-- debuginfo rebuild
-
-* Thu Feb 20 2003 Jeff Johnson <jbj@redhat.com> 0.76-2
-- use the correct way of identifying the section via the sh_info link.
-
-* Sat Feb 15 2003 Jakub Jelinek <jakub@redhat.com> 0.75-2
-- update to 0.75 (eu-strip -g fix)
-
-* Tue Feb 11 2003 Jakub Jelinek <jakub@redhat.com> 0.74-2
-- update to 0.74 (fix for writing with some non-dirty sections)
-
-* Thu Feb 6 2003 Jeff Johnson <jbj@redhat.com> 0.73-3
-- another -0.73 update (with sparc fixes).
-- do "make check" in %%check, not %%install, section.
-
-* Mon Jan 27 2003 Jeff Johnson <jbj@redhat.com> 0.73-2
-- update to 0.73 (with s390 fixes).
-
-* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
-- rebuilt
-
-* Wed Jan 22 2003 Jakub Jelinek <jakub@redhat.com> 0.72-4
-- fix arguments to gelf_getsymshndx and elf_getshstrndx
-- fix other warnings
-- reenable checks on s390x
-
-* Sat Jan 11 2003 Karsten Hopp <karsten@redhat.de> 0.72-3
-- temporarily disable checks on s390x, until someone has
- time to look at it
-
-* Thu Dec 12 2002 Jakub Jelinek <jakub@redhat.com> 0.72-2
-- update to 0.72
-
-* Wed Dec 11 2002 Jakub Jelinek <jakub@redhat.com> 0.71-2
-- update to 0.71
-
-* Wed Dec 11 2002 Jeff Johnson <jbj@redhat.com> 0.69-4
-- update to 0.69.
-- add "make check" and segfault avoidance patch.
-- elfutils-libelf needs to run ldconfig.
-
-* Tue Dec 10 2002 Jeff Johnson <jbj@redhat.com> 0.68-2
-- update to 0.68.
-
-* Fri Dec 6 2002 Jeff Johnson <jbj@redhat.com> 0.67-2
-- update to 0.67.
-
-* Tue Dec 3 2002 Jeff Johnson <jbj@redhat.com> 0.65-2
-- update to 0.65.
-
-* Mon Dec 2 2002 Jeff Johnson <jbj@redhat.com> 0.64-2
-- update to 0.64.
-
-* Sun Dec 1 2002 Ulrich Drepper <drepper@redhat.com> 0.64
-- split packages further into elfutils-libelf
-
-* Sat Nov 30 2002 Jeff Johnson <jbj@redhat.com> 0.63-2
-- update to 0.63.
-
-* Fri Nov 29 2002 Ulrich Drepper <drepper@redhat.com> 0.62
-- Adjust for dropping libtool
-
-* Sun Nov 24 2002 Jeff Johnson <jbj@redhat.com> 0.59-2
-- update to 0.59
-
-* Thu Nov 14 2002 Jeff Johnson <jbj@redhat.com> 0.56-2
-- update to 0.56
-
-* Thu Nov 7 2002 Jeff Johnson <jbj@redhat.com> 0.54-2
-- update to 0.54
-
-* Sun Oct 27 2002 Jeff Johnson <jbj@redhat.com> 0.53-2
-- update to 0.53
-- drop x86_64 hack, ICE fixed in gcc-3.2-11.
-
-* Sat Oct 26 2002 Jeff Johnson <jbj@redhat.com> 0.52-3
-- get beehive to punch a rhpkg generated package.
-
-* Wed Oct 23 2002 Jeff Johnson <jbj@redhat.com> 0.52-2
-- build in 8.0.1.
-- x86_64: avoid gcc-3.2 ICE on x86_64 for now.
-
-* Tue Oct 22 2002 Ulrich Drepper <drepper@redhat.com> 0.52
-- Add libelf-devel to conflicts for elfutils-devel
-
-* Mon Oct 21 2002 Ulrich Drepper <drepper@redhat.com> 0.50
-- Split into runtime and devel package
-
-* Fri Oct 18 2002 Ulrich Drepper <drepper@redhat.com> 0.49
-- integrate into official sources
-
-* Wed Oct 16 2002 Jeff Johnson <jbj@redhat.com> 0.46-1
-- Swaddle.
diff --git a/lib/ChangeLog b/lib/ChangeLog
deleted file mode 100644
index 4da33b09..00000000
--- a/lib/ChangeLog
+++ /dev/null
@@ -1,14 +0,0 @@
-2004-01-17 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am: Support building with mudflap.
-
-2003-09-22 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am (AM_CFLAGS): Add -fpic.
-
- * Makefile.am (noinst_HEADERS): Add list.h.
- * list.h: New file.
-
-2003-08-11 Ulrich Drepper <drepper@redhat.com>
-
- * Moved to CVS archive.
diff --git a/lib/Makefile b/lib/Makefile
deleted file mode 100644
index b87ff4eb..00000000
--- a/lib/Makefile
+++ /dev/null
@@ -1,424 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# lib/Makefile. Generated from Makefile.in by configure.
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-
-SOURCES = $(libeu_a_SOURCES)
-
-srcdir = .
-top_srcdir = ..
-
-pkgdatadir = $(datadir)/elfutils
-pkglibdir = $(libdir)/elfutils
-pkgincludedir = $(includedir)/elfutils
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = /usr/bin/install -c
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = i686-pc-linux-gnu
-host_triplet = i686-pc-linux-gnu
-subdir = lib
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libeu_a_AR = $(AR) $(ARFLAGS)
-libeu_a_LIBADD =
-am_libeu_a_OBJECTS = xstrdup.$(OBJEXT) xstrndup.$(OBJEXT) \
- xmalloc.$(OBJEXT) next_prime.$(OBJEXT) crc32.$(OBJEXT)
-libeu_a_OBJECTS = $(am_libeu_a_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libeu_a_SOURCES)
-DIST_SOURCES = $(libeu_a_SOURCES)
-HEADERS = $(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run aclocal-1.9
-AMDEP_FALSE = #
-AMDEP_TRUE =
-AMTAR = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run tar
-AUTOCONF = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoconf
-AUTOHEADER = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoheader
-AUTOMAKE = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run automake-1.9
-AWK = gawk
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CFLAGS = -g -O2
-CPP = gcc -E
-CPPFLAGS =
-CYGPATH_W = echo
-DATADIRNAME = ${prefix}/share
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H
-DEPDIR = .deps
-ECHO_C =
-ECHO_N = -n
-ECHO_T =
-EGREP = grep -E
-EXEEXT =
-GMSGFMT = /usr/bin/msgfmt
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
-INTLLIBS =
-LDFLAGS =
-LEX = flex
-LEXLIB = -lfl
-LEX_OUTPUT_ROOT = lex.yy
-LIBICONV = -liconv
-LIBINTL =
-LIBOBJS =
-LIBS =
-LOCALEDIR = ${prefix}/share
-LTLIBICONV = -liconv
-LTLIBINTL =
-LTLIBOBJS =
-MAKEINFO = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run makeinfo
-MKINSTALLDIRS = config/mkinstalldirs
-MSGFMT = /usr/bin/msgfmt
-MSGMERGE = /usr/bin/msgmerge
-MUDFLAP_FALSE =
-MUDFLAP_TRUE = #
-NATIVE_LD_FALSE =
-NATIVE_LD_TRUE = #
-OBJEXT = o
-PACKAGE = elfutils
-PACKAGE_BUGREPORT = http://bugzilla.redhat.com/bugzilla/
-PACKAGE_NAME = Red Hat elfutils
-PACKAGE_STRING = Red Hat elfutils 0.97
-PACKAGE_TARNAME = elfutils
-PACKAGE_VERSION = 0.97
-PATH_SEPARATOR = :
-POSUB = po
-RANLIB = ranlib
-SET_MAKE =
-SHELL = /bin/sh
-STRIP =
-USE_NLS = yes
-VERSION = 0.97
-XGETTEXT = /usr/bin/xgettext
-YACC = bison -y
-ac_ct_CC = gcc
-ac_ct_RANLIB = ranlib
-ac_ct_STRIP =
-am__fastdepCC_FALSE = #
-am__fastdepCC_TRUE =
-am__include = include
-am__leading_dot = .
-am__quote =
-am__tar = ${AMTAR} chof - "$$tardir"
-am__untar = ${AMTAR} xf -
-base_cpu = none
-bindir = ${exec_prefix}/bin
-build = i686-pc-linux-gnu
-build_alias =
-build_cpu = i686
-build_os = linux-gnu
-build_vendor = pc
-datadir = ${prefix}/share
-exec_prefix = ${prefix}
-host = i686-pc-linux-gnu
-host_alias =
-host_cpu = i686
-host_os = linux-gnu
-host_vendor = pc
-includedir = ${prefix}/include
-infodir = ${prefix}/info
-install_sh = /work/elfutils/stock/elfutils-0.97/config/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-localstatedir = ${prefix}/var
-mandir = ${prefix}/man
-mkdir_p = mkdir -p --
-oldincludedir = /usr/include
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-program_transform_name = s,x,x,
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-sysconfdir = ${prefix}/etc
-target_alias =
-AM_CFLAGS = -Wall $(if $($(*F)_no_Werror),,-Werror) $(picflag)
-picflag = -fpic
-INCLUDES = -I$(srcdir)/../libelf -I..
-noinst_LIBRARIES = libeu.a
-libeu_a_SOURCES = xstrdup.c xstrndup.c xmalloc.c next_prime.c crc32.c
-noinst_HEADERS = fixedsizehash.h system.h dynamicsizehash.h list.h
-EXTRA_DIST = dynamicsizehash.c
-
-# XXX gcc has a bug in that it generates warnings for internal symbols.
-#xmalloc_no_Werror = yes
-#crc32_no_Werror = yes
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits lib/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libeu.a: $(libeu_a_OBJECTS) $(libeu_a_DEPENDENCIES)
- -rm -f libeu.a
- $(libeu_a_AR) libeu.a $(libeu_a_OBJECTS) $(libeu_a_LIBADD)
- $(RANLIB) libeu.a
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-include ./$(DEPDIR)/crc32.Po
-include ./$(DEPDIR)/next_prime.Po
-include ./$(DEPDIR)/xmalloc.Po
-include ./$(DEPDIR)/xstrdup.Po
-include ./$(DEPDIR)/xstrndup.Po
-
-.c.o:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c $<
-
-.c.obj:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(HEADERS)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-noinstLIBRARIES ctags distclean distclean-compile \
- distclean-generic distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-exec install-exec-am install-info \
- install-info-am install-man install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-info-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/lib/Makefile.am b/lib/Makefile.am
deleted file mode 100644
index 43a13582..00000000
--- a/lib/Makefile.am
+++ /dev/null
@@ -1,37 +0,0 @@
-## Process this file with automake to create Makefile.in
-## Configure input file for elfutils.
-##
-## Copyright (C) 1996-2001, 2002, 2004 Red Hat, Inc.
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation, version 2.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software Foundation,
-## Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-##
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H
-AM_CFLAGS = -Wall $(if $($(*F)_no_Werror),,-Werror) $(picflag)
-if !MUDFLAP
-picflag = -fpic
-endif
-INCLUDES = -I$(srcdir)/../libelf -I..
-
-noinst_LIBRARIES = libeu.a
-
-libeu_a_SOURCES = xstrdup.c xstrndup.c xmalloc.c next_prime.c crc32.c
-
-noinst_HEADERS = fixedsizehash.h system.h dynamicsizehash.h list.h
-EXTRA_DIST = dynamicsizehash.c
-
-# XXX gcc has a bug in that it generates warnings for internal symbols.
-if MUDFLAP
-xmalloc_no_Werror = yes
-crc32_no_Werror = yes
-endif
diff --git a/lib/Makefile.in b/lib/Makefile.in
deleted file mode 100644
index 8014230f..00000000
--- a/lib/Makefile.in
+++ /dev/null
@@ -1,424 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-SOURCES = $(libeu_a_SOURCES)
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = lib
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libeu_a_AR = $(AR) $(ARFLAGS)
-libeu_a_LIBADD =
-am_libeu_a_OBJECTS = xstrdup.$(OBJEXT) xstrndup.$(OBJEXT) \
- xmalloc.$(OBJEXT) next_prime.$(OBJEXT) crc32.$(OBJEXT)
-libeu_a_OBJECTS = $(am_libeu_a_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libeu_a_SOURCES)
-DIST_SOURCES = $(libeu_a_SOURCES)
-HEADERS = $(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GMSGFMT = @GMSGFMT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
-MUDFLAP_FALSE = @MUDFLAP_FALSE@
-MUDFLAP_TRUE = @MUDFLAP_TRUE@
-NATIVE_LD_FALSE = @NATIVE_LD_FALSE@
-NATIVE_LD_TRUE = @NATIVE_LD_TRUE@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-XGETTEXT = @XGETTEXT@
-YACC = @YACC@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-base_cpu = @base_cpu@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-AM_CFLAGS = -Wall $(if $($(*F)_no_Werror),,-Werror) $(picflag)
-@MUDFLAP_FALSE@picflag = -fpic
-INCLUDES = -I$(srcdir)/../libelf -I..
-noinst_LIBRARIES = libeu.a
-libeu_a_SOURCES = xstrdup.c xstrndup.c xmalloc.c next_prime.c crc32.c
-noinst_HEADERS = fixedsizehash.h system.h dynamicsizehash.h list.h
-EXTRA_DIST = dynamicsizehash.c
-
-# XXX gcc has a bug in that it generates warnings for internal symbols.
-@MUDFLAP_TRUE@xmalloc_no_Werror = yes
-@MUDFLAP_TRUE@crc32_no_Werror = yes
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits lib/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libeu.a: $(libeu_a_OBJECTS) $(libeu_a_DEPENDENCIES)
- -rm -f libeu.a
- $(libeu_a_AR) libeu.a $(libeu_a_OBJECTS) $(libeu_a_LIBADD)
- $(RANLIB) libeu.a
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crc32.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/next_prime.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrdup.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrndup.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(HEADERS)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-noinstLIBRARIES ctags distclean distclean-compile \
- distclean-generic distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-exec install-exec-am install-info \
- install-info-am install-man install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-info-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/lib/crc32.c b/lib/crc32.c
deleted file mode 100644
index a198e8e4..00000000
--- a/lib/crc32.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (C) 2002 Red Hat, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#include <stdint.h>
-#include "system.h"
-
-
-/* Table computed with Mark Adler's makecrc.c utility. */
-static const uint32_t crc32_table[256] =
-{
- 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419,
- 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4,
- 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07,
- 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
- 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856,
- 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
- 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4,
- 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
- 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3,
- 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a,
- 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599,
- 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
- 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190,
- 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f,
- 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e,
- 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
- 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed,
- 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
- 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3,
- 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
- 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a,
- 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5,
- 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010,
- 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
- 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17,
- 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6,
- 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615,
- 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
- 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344,
- 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
- 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a,
- 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
- 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1,
- 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c,
- 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef,
- 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
- 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe,
- 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31,
- 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c,
- 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
- 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b,
- 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
- 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1,
- 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
- 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278,
- 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7,
- 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66,
- 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
- 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605,
- 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8,
- 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b,
- 0x2d02ef8d
-};
-
-uint32_t
-crc32 (uint32_t crc, unsigned char *buf, size_t len)
-{
- unsigned char *end;
-
- crc = ~crc;
- for (end = buf + len; buf < end; ++buf)
- crc = crc32_table[(crc ^ *buf) & 0xff] ^ (crc >> 8);
- return ~crc;
-}
diff --git a/lib/dynamicsizehash.c b/lib/dynamicsizehash.c
deleted file mode 100644
index 16575f50..00000000
--- a/lib/dynamicsizehash.c
+++ /dev/null
@@ -1,316 +0,0 @@
-/* Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <assert.h>
-#include <stdlib.h>
-#include <system.h>
-
-/* Before including this file the following macros must be defined:
-
- NAME name of the hash table structure.
- TYPE data type of the hash table entries
- COMPARE comparison function taking two pointers to TYPE objects
-
- The following macros if present select features:
-
- ITERATE iterating over the table entries is possible
- REVERSE iterate in reverse order of insert
- */
-
-
-static size_t
-lookup (htab, hval, val)
- NAME *htab;
- unsigned long int hval;
- TYPE val;
-{
- /* First hash function: simply take the modul but prevent zero. */
- size_t idx = 1 + hval % htab->size;
-
- if (htab->table[idx].hashval != 0)
- {
- unsigned long int hash;
-
- if (htab->table[idx].hashval == hval
- && COMPARE (htab->table[idx].data, val) == 0)
- return idx;
-
- /* Second hash function as suggested in [Knuth]. */
- hash = 1 + hval % (htab->size - 2);
-
- do
- {
- if (idx <= hash)
- idx = htab->size + idx - hash;
- else
- idx -= hash;
-
- /* If entry is found use it. */
- if (htab->table[idx].hashval == hval
- && COMPARE (htab->table[idx].data, val) == 0)
- return idx;
- }
- while (htab->table[idx].hashval);
- }
- return idx;
-}
-
-
-static void
-insert_entry_2 (NAME *htab, unsigned long int hval, size_t idx, TYPE data)
-{
-#ifdef ITERATE
- if (htab->table[idx].hashval == 0)
- {
-# ifdef REVERSE
- htab->table[idx].next = htab->first;
- htab->first = &htab->table[idx];
-# else
- /* Add the new value to the list. */
- if (htab->first == NULL)
- htab->first = htab->table[idx].next = &htab->table[idx];
- else
- {
- htab->table[idx].next = htab->first->next;
- htab->first = htab->first->next = &htab->table[idx];
- }
-# endif
- }
-#endif
-
- htab->table[idx].hashval = hval;
- htab->table[idx].data = data;
-
- ++htab->filled;
- if (100 * htab->filled > 90 * htab->size)
- {
- /* Table is filled more than 90%. Resize the table. */
-#ifdef ITERATE
- __typeof__ (htab->first) first;
-# ifndef REVERSE
- __typeof__ (htab->first) runp;
-# endif
-#else
- unsigned long int old_size = htab->size;
-#endif
-#define _TABLE(name) \
- name##_ent *table = htab->table
-#define TABLE(name) _TABLE (name)
- TABLE(NAME);
-
- htab->size = next_prime (htab->size * 2);
- htab->filled = 0;
-#ifdef ITERATE
- first = htab->first;
- htab->first = NULL;
-#endif
- htab->table = calloc ((1 + htab->size), sizeof (htab->table[0]));
- if (htab->table == NULL)
- {
- /* We cannot enlarge the table. Live with what we got. This
- might lead to an infinite loop at some point, though. */
- htab->table = table;
- return;
- }
-
- /* Add the old entries to the new table. When iteration is
- supported we maintain the order. */
-#ifdef ITERATE
-# ifdef REVERSE
- while (first != NULL)
- {
- insert_entry_2 (htab, first->hashval,
- lookup (htab, first->hashval, first->data),
- first->data);
-
- first = first->next;
- }
-# else
- assert (first != NULL);
- runp = first = first->next;
- do
- insert_entry_2 (htab, runp->hashval,
- lookup (htab, runp->hashval, runp->data), runp->data);
- while ((runp = runp->next) != first);
-# endif
-#else
- for (idx = 1; idx <= old_size; ++idx)
- if (table[idx].hashval != 0)
- insert_entry_2 (htab, table[idx].hashval,
- lookup (htab, table[idx].hashval, table[idx].data),
- table[idx].data);
-#endif
-
- free (table);
- }
-}
-
-
-int
-#define INIT(name) _INIT (name)
-#define _INIT(name) \
- name##_init
-INIT(NAME) (htab, init_size)
- NAME *htab;
- unsigned long int init_size;
-{
- /* We need the size to be a prime. */
- init_size = next_prime (init_size);
-
- /* Initialize the data structure. */
- htab->size = init_size;
- htab->filled = 0;
-#ifdef ITERATE
- htab->first = NULL;
-#endif
- htab->table = (void *) calloc ((init_size + 1), sizeof (htab->table[0]));
- if (htab->table == NULL)
- return -1;
-
- return 0;
-}
-
-
-int
-#define FREE(name) _FREE (name)
-#define _FREE(name) \
- name##_free
-FREE(NAME) (htab)
- NAME *htab;
-{
- free (htab->table);
- return 0;
-}
-
-
-int
-#define INSERT(name) _INSERT (name)
-#define _INSERT(name) \
- name##_insert
-INSERT(NAME) (htab, hval, data)
- NAME *htab;
- unsigned long int hval;
- TYPE data;
-{
- size_t idx;
-
- /* Make the hash value nonzero. */
- hval = hval ?: 1;
-
- idx = lookup (htab, hval, data);
-
- if (htab->table[idx].hashval != 0)
- /* We don't want to overwrite the old value. */
- return -1;
-
- /* An empty bucket has been found. */
- insert_entry_2 (htab, hval, idx, data);
- return 0;
-}
-
-
-#ifdef OVERWRITE
-int
-#define INSERT(name) _INSERT (name)
-#define _INSERT(name) \
- name##_overwrite
-INSERT(NAME) (htab, hval, data)
- NAME *htab;
- unsigned long int hval;
- TYPE data;
-{
- size_t idx;
-
- /* Make the hash value nonzero. */
- hval = hval ?: 1;
-
- idx = lookup (htab, hval, data);
-
- /* The correct bucket has been found. */
- insert_entry_2 (htab, hval, idx, data);
- return 0;
-}
-#endif
-
-
-TYPE
-#define FIND(name) _FIND (name)
-#define _FIND(name) \
- name##_find
-FIND(NAME) (htab, hval, val)
- NAME *htab;
- unsigned long int hval;
- TYPE val;
-{
- size_t idx;
-
- /* Make the hash value nonzero. */
- hval = hval ?: 1;
-
- idx = lookup (htab, hval, val);
-
- if (htab->table[idx].hashval == 0)
- return NULL;
-
- return htab->table[idx].data;
-}
-
-
-#ifdef ITERATE
-# define ITERATEFCT(name) _ITERATEFCT (name)
-# define _ITERATEFCT(name) \
- name##_iterate
-TYPE
-ITERATEFCT(NAME) (htab, ptr)
- NAME *htab;
- void **ptr;
-{
- void *p = *ptr;
-
-# define TYPENAME(name) _TYPENAME (name)
-# define _TYPENAME(name) name##_ent
-
-# ifdef REVERSE
- if (p == NULL)
- p = htab->first;
- else
- p = ((TYPENAME(NAME) *) p)->next;
-
- if (p == NULL)
- {
- *ptr = NULL;
- return NULL;
- }
-# else
- if (p == NULL)
- {
- if (htab->first == NULL)
- return NULL;
- p = htab->first->next;
- }
- else
- {
- if (p == htab->first)
- return NULL;
-
- p = ((TYPENAME(NAME) *) p)->next;
- }
-# endif
-
- /* Prepare the next element. If possible this will pull the data
- into the cache, for reading. */
- __builtin_prefetch (((TYPENAME(NAME) *) p)->next, 0, 2);
-
- return ((TYPENAME(NAME) *) (*ptr = p))->data;
-}
-#endif
diff --git a/lib/dynamicsizehash.h b/lib/dynamicsizehash.h
deleted file mode 100644
index 39a706fd..00000000
--- a/lib/dynamicsizehash.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <stddef.h>
-
-/* Before including this file the following macros must be defined:
-
- NAME name of the hash table structure.
- TYPE data type of the hash table entries
-
- The following macros if present select features:
-
- ITERATE iterating over the table entries is possible
- */
-
-
-/* Optionally include an entry pointing to the first used entry. */
-#ifdef ITERATE
-# define FIRST(name) name##_ent *first;
-# define NEXT(name) struct name##_ent *next;
-#else
-# define FIRST(name)
-# define NEXT(name)
-#endif
-
-
-/* Defined separately. */
-extern size_t next_prime (size_t seed);
-
-
-/* Table entry type. */
-#define _DYNHASHENTTYPE(name) \
- typedef struct name##_ent \
- { \
- unsigned long int hashval; \
- TYPE data; \
- NEXT (name) \
- } name##_ent
-#define DYNHASHENTTYPE(name) _DYNHASHENTTYPE (name)
-DYNHASHENTTYPE (NAME);
-
-
-/* Type of the dynamic hash table data structure. */
-#define _DYNHASHTYPE(name) \
-typedef struct \
-{ \
- unsigned long int size; \
- unsigned long int filled; \
- name##_ent *table; \
- FIRST (name) \
-} name
-#define DYNHASHTYPE(name) _DYNHASHTYPE (name)
-DYNHASHTYPE (NAME);
-
-
-
-#define _FUNCTIONS(name) \
-/* Initialize the hash table. */ \
-extern int name##_init (name *htab, unsigned long int init_size); \
- \
-/* Free resources allocated for hash table. */ \
-extern int name##_free (name *htab); \
- \
-/* Insert new entry. */ \
-extern int name##_insert (name *htab, unsigned long int hval, TYPE data); \
- \
-/* Insert new entry, possibly overwrite old entry. */ \
-extern int name##_overwrite (name *htab, unsigned long int hval, TYPE data); \
- \
-/* Find entry in hash table. */ \
-extern TYPE name##_find (name *htab, unsigned long int hval, TYPE val);
-#define FUNCTIONS(name) _FUNCTIONS (name)
-FUNCTIONS (NAME)
-
-
-#ifdef ITERATE
-# define _XFUNCTIONS(name) \
-/* Get next element in table. */ \
-extern TYPE name##_iterate (name *htab, void **ptr);
-# define XFUNCTIONS(name) _XFUNCTIONS (name)
-XFUNCTIONS (NAME)
-#endif
-
-#ifndef NO_UNDEF
-# undef DYNHASHENTTYPE
-# undef DYNHASHTYPE
-# undef FUNCTIONS
-# undef _FUNCTIONS
-# undef XFUNCTIONS
-# undef _XFUNCTIONS
-# undef NAME
-# undef TYPE
-# undef ITERATE
-# undef COMPARE
-# undef FIRST
-# undef NEXT
-#endif
diff --git a/lib/error.h b/lib/error.h
deleted file mode 100644
index bbc15f99..00000000
--- a/lib/error.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#ifndef ERROR_H
-#define ERROR_H
-#endif/* ERROR_H */
diff --git a/lib/fixedsizehash.h b/lib/fixedsizehash.h
deleted file mode 100644
index c5a852c5..00000000
--- a/lib/fixedsizehash.h
+++ /dev/null
@@ -1,251 +0,0 @@
-/* Fixed size hash table with internal linking.
- Copyright (C) 2000, 2001, 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/cdefs.h>
-#include <sys/param.h>
-
-#include <system.h>
-
-#define CONCAT(t1,t2) __CONCAT (t1,t2)
-
-/* Before including this file the following macros must be defined:
-
- TYPE data type of the hash table entries
- HASHFCT name of the hashing function to use
- HASHTYPE type used for the hashing value
- COMPARE comparison function taking two pointers to TYPE objects
- CLASS can be defined to `static' to avoid exporting the functions
- PREFIX prefix to be used for function and data type names
- STORE_POINTER if defined the table stores a pointer and not an element
- of type TYPE
- INSERT_HASH if defined alternate insert function which takes a hash
- value is defined
- NO_FINI_FCT if defined the fini function is not defined
-*/
-
-
-/* Defined separately. */
-extern size_t next_prime (size_t seed);
-
-
-/* Set default values. */
-#ifndef HASHTYPE
-# define HASHTYPE size_t
-#endif
-
-#ifndef CLASS
-# define CLASS
-#endif
-
-#ifndef PREFIX
-# define PREFIX
-#endif
-
-
-/* The data structure. */
-struct CONCAT(PREFIX,fshash)
-{
- size_t nslots;
- struct CONCAT(PREFIX,fshashent)
- {
- HASHTYPE hval;
-#ifdef STORE_POINTER
-# define ENTRYP(el) (el).entry
- TYPE *entry;
-#else
-# define ENTRYP(el) &(el).entry
- TYPE entry;
-#endif
- } table[0];
-};
-
-
-/* Constructor for the hashing table. */
-CLASS struct CONCAT(PREFIX,fshash) *
-CONCAT(PREFIX,fshash_init) (size_t nelems)
-{
- struct CONCAT(PREFIX,fshash) *result;
- /* We choose a size for the hashing table 150% over the number of
- entries. This will guarantee short medium search lengths. */
- const size_t max_size_t = ~((size_t) 0);
-
- if (nelems >= (max_size_t / 3) * 2)
- {
- errno = EINVAL;
- return NULL;
- }
-
- /* Adjust the size to be used for the hashing table. */
- nelems = next_prime (MAX ((nelems * 3) / 2, 10));
-
- /* Allocate the data structure for the result. */
- result = (struct CONCAT(PREFIX,fshash) *)
- xcalloc (sizeof (struct CONCAT(PREFIX,fshash))
- + (nelems + 1) * sizeof (struct CONCAT(PREFIX,fshashent)), 1);
- if (result == NULL)
- return NULL;
-
- result->nslots = nelems;
-
- return result;
-}
-
-
-#ifndef NO_FINI_FCT
-CLASS void
-CONCAT(PREFIX,fshash_fini) (struct CONCAT(PREFIX,fshash) *htab)
-{
- free (htab);
-}
-#endif
-
-
-static struct CONCAT(PREFIX,fshashent) *
-CONCAT(PREFIX,fshash_lookup) (struct CONCAT(PREFIX,fshash) *htab,
- HASHTYPE hval, TYPE *data)
-{
- size_t idx = 1 + hval % htab->nslots;
-
- if (htab->table[idx].hval != 0)
- {
- HASHTYPE hash;
-
- /* See whether this is the same entry. */
- if (htab->table[idx].hval == hval
- && COMPARE (data, ENTRYP (htab->table[idx])) == 0)
- return &htab->table[idx];
-
- /* Second hash function as suggested in [Knuth]. */
- hash = 1 + hval % (htab->nslots - 2);
-
- do
- {
- if (idx <= hash)
- idx = htab->nslots + idx - hash;
- else
- idx -= hash;
-
- if (htab->table[idx].hval == hval
- && COMPARE (data, ENTRYP(htab->table[idx])) == 0)
- return &htab->table[idx];
- }
- while (htab->table[idx].hval != 0);
- }
-
- return &htab->table[idx];
-}
-
-
-CLASS int
-__attribute__ ((unused))
-CONCAT(PREFIX,fshash_insert) (struct CONCAT(PREFIX,fshash) *htab,
- const char *str, size_t len, TYPE *data)
-{
- HASHTYPE hval = HASHFCT (str, len ?: strlen (str));
- struct CONCAT(PREFIX,fshashent) *slot;
-
- slot = CONCAT(PREFIX,fshash_lookup) (htab, hval, data);
- if (slot->hval != 0)
- /* We don't want to overwrite the old value. */
- return -1;
-
- slot->hval = hval;
-#ifdef STORE_POINTER
- slot->entry = data;
-#else
- slot->entry = *data;
-#endif
-
- return 0;
-}
-
-
-#ifdef INSERT_HASH
-CLASS int
-__attribute__ ((unused))
-CONCAT(PREFIX,fshash_insert_hash) (struct CONCAT(PREFIX,fshash) *htab,
- HASHTYPE hval, TYPE *data)
-{
- struct CONCAT(PREFIX,fshashent) *slot;
-
- slot = CONCAT(PREFIX,fshash_lookup) (htab, hval, data);
- if (slot->hval != 0)
- /* We don't want to overwrite the old value. */
- return -1;
-
- slot->hval = hval;
-#ifdef STORE_POINTER
- slot->entry = data;
-#else
- slot->entry = *data;
-#endif
-
- return 0;
-}
-#endif
-
-
-CLASS int
-__attribute__ ((unused))
-CONCAT(PREFIX,fshash_overwrite) (struct CONCAT(PREFIX,fshash) *htab,
- const char *str, size_t len, TYPE *data)
-{
- HASHTYPE hval = HASHFCT (str, len ?: strlen (str));
- struct CONCAT(PREFIX,fshashent) *slot;
-
- slot = CONCAT(PREFIX,fshash_lookup) (htab, hval, data);
- slot->hval = hval;
-#ifdef STORE_POINTER
- slot->entry = data;
-#else
- slot->entry = *data;
-#endif
-
- return 0;
-}
-
-
-const CLASS TYPE *
-CONCAT(PREFIX,fshash_find) (const struct CONCAT(PREFIX,fshash) *htab,
- const char *str, size_t len, TYPE *data)
-{
- HASHTYPE hval = HASHFCT (str, len ?: strlen (str));
- struct CONCAT(PREFIX,fshashent) *slot;
-
- slot = CONCAT(PREFIX,fshash_lookup) ((struct CONCAT(PREFIX,fshash) *) htab,
- hval, data);
- if (slot->hval == 0)
- /* Not found. */
- return NULL;
-
- return ENTRYP(*slot);
-}
-
-
-/* Unset the macros we expect. */
-#undef TYPE
-#undef HASHFCT
-#undef HASHTYPE
-#undef COMPARE
-#undef CLASS
-#undef PREFIX
-#undef INSERT_HASH
-#undef STORE_POINTER
-#undef NO_FINI_FCT
diff --git a/lib/libeu.a b/lib/libeu.a
deleted file mode 100644
index 321b74dc..00000000
--- a/lib/libeu.a
+++ /dev/null
Binary files differ
diff --git a/lib/list.h b/lib/list.h
deleted file mode 100644
index c039a0ba..00000000
--- a/lib/list.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (C) 2001, 2002, 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef LIST_H
-#define LIST_H 1
-
-/* Add element to the end of a circular, double-linked list. */
-#define CDBL_LIST_ADD_REAR(first, newp) \
- do { \
- __typeof (newp) _newp = (newp); \
- assert (_newp->next == NULL); \
- assert (_newp->previous == NULL); \
- if (unlikely ((first) == NULL)) \
- (first) = _newp->next = _newp->previous = _newp; \
- else \
- { \
- _newp->next = (first); \
- _newp->previous = (first)->previous; \
- _newp->previous->next = _newp->next->previous = _newp; \
- } \
- } while (0)
-
-/* Remove element from circular, double-linked list. */
-#define CDBL_LIST_DEL(first, elem) \
- do { \
- __typeof (elem) _elem = (elem); \
- /* Check whether the element is indeed on the list. */ \
- assert (first != NULL && _elem != NULL \
- && (first != elem \
- || ({ __typeof (elem) _runp = first->next; \
- while (_runp != first) \
- if (_runp == _elem) \
- break; \
- else \
- _runp = _runp->next; \
- _runp == _elem; }))); \
- if (unlikely (_elem->next == _elem)) \
- first = NULL; \
- else \
- { \
- _elem->next->previous = _elem->previous; \
- _elem->previous->next = _elem->next; \
- if (unlikely (first == _elem)) \
- first = _elem->next; \
- } \
- assert ((_elem->next = _elem->previous = NULL, 1)); \
- } while (0)
-
-
-/* Add element to the front of a single-linked list. */
-#define SNGL_LIST_PUSH(first, newp) \
- do { \
- __typeof (newp) _newp = (newp); \
- assert (_newp->next == NULL); \
- _newp->next = first; \
- first = _newp; \
- } while (0)
-
-
-/* Add element to the rear of a circular single-linked list. */
-#define CSNGL_LIST_ADD_REAR(first, newp) \
- do { \
- __typeof (newp) _newp = (newp); \
- assert (_newp->next == NULL); \
- if (unlikely ((first) == NULL)) \
- (first) = _newp->next = _newp; \
- else \
- { \
- _newp->next = (first)->next; \
- (first) = (first)->next = _newp; \
- } \
- } while (0)
-
-
-#endif /* list.h */
diff --git a/lib/next_prime.c b/lib/next_prime.c
deleted file mode 100644
index 5d608046..00000000
--- a/lib/next_prime.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Determine prime number.
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#include <stddef.h>
-
-
-/* Test whether CANDIDATE is a prime. */
-static int
-is_prime (size_t candidate)
-{
- /* No even number and none less than 10 will be passed here. */
- size_t divn = 3;
- size_t sq = divn * divn;
-
- while (sq < candidate && candidate % divn != 0)
- {
- size_t old_sq = sq;
- ++divn;
- sq += 4 * divn;
- if (sq < old_sq)
- return 1;
- ++divn;
- }
-
- return candidate % divn != 0;
-}
-
-
-/* We need primes for the table size. */
-size_t
-next_prime (size_t seed)
-{
- /* Make it definitely odd. */
- seed |= 1;
-
- while (!is_prime (seed))
- seed += 2;
-
- return seed;
-}
diff --git a/lib/system.h b/lib/system.h
deleted file mode 100644
index 8e46feac..00000000
--- a/lib/system.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef LIB_SYSTEM_H
-#define LIB_SYSTEM_H 1
-
-#include <stddef.h>
-#include <stdint.h>
-
-extern void *xmalloc (size_t) __attribute__ ((__malloc__));
-extern void *xcalloc (size_t, size_t) __attribute__ ((__malloc__));
-extern void *xrealloc (void *, size_t) __attribute__ ((__malloc__));
-
-extern char *xstrdup (const char *) __attribute__ ((__malloc__));
-extern char *xstrndup (const char *, size_t) __attribute__ ((__malloc__));
-
-
-extern uint32_t crc32 (uint32_t crc, unsigned char *buf, size_t len);
-
-
-/* A special gettext function we use if the strings are too short. */
-#define sgettext(Str) \
- ({ const char *__res = strrchr (gettext (Str), '|'); \
- __res ? __res + 1 : Str; })
-
-#define gettext_noop(Str) Str
-
-#endif /* system.h */
diff --git a/lib/xmalloc.c b/lib/xmalloc.c
deleted file mode 100644
index 5d077d03..00000000
--- a/lib/xmalloc.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright (C) 2000, 2002 Free Software Foundation, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <error.h>
-//#include <libintl.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include "system.h"
-
-#ifndef _
-# define _(str) gettext (str)
-#endif
-
-
-/* Allocate N bytes of memory dynamically, with error checking. */
-void *
-xmalloc (n)
- size_t n;
-{
- void *p;
-
- p = malloc (n);
- if (p == NULL)
- error (EXIT_FAILURE, 0, _("memory exhausted"));
- return p;
-}
-
-
-/* Allocate memory for N elements of S bytes, with error checking. */
-void *
-xcalloc (n, s)
- size_t n, s;
-{
- void *p;
-
- p = calloc (n, s);
- if (p == NULL)
- error (EXIT_FAILURE, 0, _("memory exhausted"));
- return p;
-}
-
-
-/* Change the size of an allocated block of memory P to N bytes,
- with error checking. */
-void *
-xrealloc (p, n)
- void *p;
- size_t n;
-{
- p = realloc (p, n);
- if (p == NULL)
- error (EXIT_FAILURE, 0, _("memory exhausted"));
- return p;
-}
diff --git a/lib/xstrdup.c b/lib/xstrdup.c
deleted file mode 100644
index ad70a630..00000000
--- a/lib/xstrdup.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2000, 2002 Free Software Foundation, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <string.h>
-#include "system.h"
-
-
-/* Return a newly allocated copy of STRING. */
-char *
-xstrdup (string)
- const char *string;
-{
- return strcpy (xmalloc (strlen (string) + 1), string);
-}
diff --git a/lib/xstrndup.c b/lib/xstrndup.c
deleted file mode 100644
index 946f3616..00000000
--- a/lib/xstrndup.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2000, 2002 Free Software Foundation, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <string.h>
-#include "system.h"
-
-
-/* Return a newly allocated copy of STRING. */
-char *
-xstrndup (string, n)
- const char *string;
- size_t n;
-{
- char *res;
- size_t len = strnlen (string, n);
- *((char *) mempcpy ((res = xmalloc (len + 1)), string, len)) = '\0';
- return res;
-}
diff --git a/libasm/ChangeLog b/libasm/ChangeLog
deleted file mode 100644
index 630696d7..00000000
--- a/libasm/ChangeLog
+++ /dev/null
@@ -1,23 +0,0 @@
-2004-09-25 Ulrich Drepper <drepper@redhat.com>
-
- * asm_error.c: Make compile with gcc 4.0.
-
-2004-01-20 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am: Support building with mudflap.
-
-2004-01-18 Ulrich Drepper <drepper@redhat.com>
-
- * libasmP.h (_): Use elfutils domain.
-
-2004-01-17 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am: Support building with mudflap.
-
-2003-08-13 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.in: Depend on libebl.a, not libebl.so.
-
-2003-08-11 Ulrich Drepper <drepper@redhat.com>
-
- * Moved to CVS archive.
diff --git a/libasm/Makefile b/libasm/Makefile
deleted file mode 100644
index cf50cdbe..00000000
--- a/libasm/Makefile
+++ /dev/null
@@ -1,593 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# libasm/Makefile. Generated from Makefile.in by configure.
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-
-
-SOURCES = $(libasm_a_SOURCES) $(libasm_pic_a_SOURCES) $(libasm_so_SOURCES)
-
-srcdir = .
-top_srcdir = ..
-
-pkgdatadir = $(datadir)/elfutils
-pkglibdir = $(libdir)/elfutils
-pkgincludedir = $(includedir)/elfutils
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = /usr/bin/install -c
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = i686-pc-linux-gnu
-host_triplet = i686-pc-linux-gnu
-noinst_PROGRAMS = $(am__EXEEXT_1)
-#am_libasm_pic_a_OBJECTS =
-subdir = libasm
-DIST_COMMON = $(euinclude_HEADERS) $(noinst_HEADERS) \
- $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)"
-libLIBRARIES_INSTALL = $(INSTALL_DATA)
-LIBRARIES = $(lib_LIBRARIES) $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libasm_a_AR = $(AR) $(ARFLAGS)
-libasm_a_LIBADD =
-am_libasm_a_OBJECTS = asm_begin.$(OBJEXT) asm_abort.$(OBJEXT) \
- asm_end.$(OBJEXT) asm_error.$(OBJEXT) asm_getelf.$(OBJEXT) \
- asm_newscn.$(OBJEXT) asm_newscn_ingrp.$(OBJEXT) \
- asm_newsubscn.$(OBJEXT) asm_newsym.$(OBJEXT) \
- asm_newcomsym.$(OBJEXT) asm_newabssym.$(OBJEXT) \
- asm_newscngrp.$(OBJEXT) asm_scngrp_newsignature.$(OBJEXT) \
- asm_fill.$(OBJEXT) asm_align.$(OBJEXT) asm_addstrz.$(OBJEXT) \
- asm_addint8.$(OBJEXT) asm_adduint8.$(OBJEXT) \
- asm_addint16.$(OBJEXT) asm_adduint16.$(OBJEXT) \
- asm_addint32.$(OBJEXT) asm_adduint32.$(OBJEXT) \
- asm_addint64.$(OBJEXT) asm_adduint64.$(OBJEXT) \
- asm_adduleb128.$(OBJEXT) asm_addsleb128.$(OBJEXT) \
- symbolhash.$(OBJEXT)
-libasm_a_OBJECTS = $(am_libasm_a_OBJECTS)
-libasm_pic_a_AR = $(AR) $(ARFLAGS)
-libasm_pic_a_LIBADD =
-libasm_pic_a_OBJECTS = $(am_libasm_pic_a_OBJECTS)
-am__EXEEXT_1 = libasm.so$(EXEEXT)
-PROGRAMS = $(noinst_PROGRAMS)
-am_libasm_so_OBJECTS =
-libasm_so_OBJECTS = $(am_libasm_so_OBJECTS)
-libasm_so_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libasm_a_SOURCES) $(libasm_pic_a_SOURCES) \
- $(libasm_so_SOURCES)
-DIST_SOURCES = $(libasm_a_SOURCES) $(libasm_pic_a_SOURCES) \
- $(libasm_so_SOURCES)
-euincludeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(euinclude_HEADERS) $(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run aclocal-1.9
-AMDEP_FALSE = #
-AMDEP_TRUE =
-AMTAR = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run tar
-AUTOCONF = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoconf
-AUTOHEADER = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoheader
-AUTOMAKE = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run automake-1.9
-AWK = gawk
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CFLAGS = -g -O2
-CPP = gcc -E
-CPPFLAGS =
-CYGPATH_W = echo
-DATADIRNAME = ${prefix}/share
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H
-DEPDIR = .deps
-ECHO_C =
-ECHO_N = -n
-ECHO_T =
-EGREP = grep -E
-EXEEXT =
-GMSGFMT = /usr/bin/msgfmt
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
-INTLLIBS =
-LDFLAGS =
-LEX = flex
-LEXLIB = -lfl
-LEX_OUTPUT_ROOT = lex.yy
-LIBICONV = -liconv
-LIBINTL =
-LIBOBJS =
-LIBS =
-LOCALEDIR = ${prefix}/share
-LTLIBICONV = -liconv
-LTLIBINTL =
-LTLIBOBJS =
-MAKEINFO = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run makeinfo
-MKINSTALLDIRS = config/mkinstalldirs
-MSGFMT = /usr/bin/msgfmt
-MSGMERGE = /usr/bin/msgmerge
-MUDFLAP_FALSE =
-MUDFLAP_TRUE = #
-NATIVE_LD_FALSE =
-NATIVE_LD_TRUE = #
-OBJEXT = o
-PACKAGE = elfutils
-PACKAGE_BUGREPORT = http://bugzilla.redhat.com/bugzilla/
-PACKAGE_NAME = Red Hat elfutils
-PACKAGE_STRING = Red Hat elfutils 0.97
-PACKAGE_TARNAME = elfutils
-PACKAGE_VERSION = 0.97
-PATH_SEPARATOR = :
-POSUB = po
-RANLIB = ranlib
-SET_MAKE =
-SHELL = /bin/sh
-STRIP =
-USE_NLS = yes
-VERSION = 1
-XGETTEXT = /usr/bin/xgettext
-YACC = bison -y
-ac_ct_CC = gcc
-ac_ct_RANLIB = ranlib
-ac_ct_STRIP =
-am__fastdepCC_FALSE = #
-am__fastdepCC_TRUE =
-am__include = include
-am__leading_dot = .
-am__quote =
-am__tar = ${AMTAR} chof - "$$tardir"
-am__untar = ${AMTAR} xf -
-base_cpu = none
-bindir = ${exec_prefix}/bin
-build = i686-pc-linux-gnu
-build_alias =
-build_cpu = i686
-build_os = linux-gnu
-build_vendor = pc
-datadir = ${prefix}/share
-exec_prefix = ${prefix}
-host = i686-pc-linux-gnu
-host_alias =
-host_cpu = i686
-host_os = linux-gnu
-host_vendor = pc
-includedir = ${prefix}/include
-infodir = ${prefix}/info
-install_sh = /work/elfutils/stock/elfutils-0.97/config/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-localstatedir = ${prefix}/var
-mandir = ${prefix}/man
-mkdir_p = mkdir -p --
-oldincludedir = /usr/include
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-program_transform_name = s,x,x,
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-sysconfdir = ${prefix}/etc
-target_alias =
-AM_CFLAGS = -Wall -Werror
-#AM_CFLAGS = -Wall
-INCLUDES = -I. -I$(srcdir) -I.. -I$(top_srcdir)/libelf -I$(top_srcdir)/libebl \
- -I$(top_srcdir)/lib
-
-GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include)
-LINT = splint
-lib_LIBRARIES = libasm.a
-noinst_LIBRARIES = libasm_pic.a
-euincludedir = ${includedir}/elfutils
-euinclude_HEADERS = libasm.h
-libasm_a_SOURCES = asm_begin.c asm_abort.c asm_end.c asm_error.c \
- asm_getelf.c asm_newscn.c asm_newscn_ingrp.c \
- asm_newsubscn.c asm_newsym.c asm_newcomsym.c \
- asm_newabssym.c \
- asm_newscngrp.c asm_scngrp_newsignature.c \
- asm_fill.c asm_align.c asm_addstrz.c \
- asm_addint8.c asm_adduint8.c \
- asm_addint16.c asm_adduint16.c \
- asm_addint32.c asm_adduint32.c \
- asm_addint64.c asm_adduint64.c \
- asm_adduleb128.c asm_addsleb128.c \
- symbolhash.c
-
-libasm_pic_a_SOURCES =
-am_libasm_pic_a_OBJECTS = $(libasm_a_SOURCES:.c=.os)
-libasm_so_SOURCES =
-noinst_HEADERS = libasmP.h symbolhash.h
-EXTRA_DIST = libasm.map
-CLEANFILES = $(am_libasm_pic_a_OBJECTS)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits libasm/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits libasm/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-libLIBRARIES: $(lib_LIBRARIES)
- @$(NORMAL_INSTALL)
- test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- f=$(am__strip_dir) \
- echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
- $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
- else :; fi; \
- done
- @$(POST_INSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- p=$(am__strip_dir) \
- echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \
- $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \
- else :; fi; \
- done
-
-uninstall-libLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- p=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \
- rm -f "$(DESTDIR)$(libdir)/$$p"; \
- done
-
-clean-libLIBRARIES:
- -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libasm.a: $(libasm_a_OBJECTS) $(libasm_a_DEPENDENCIES)
- -rm -f libasm.a
- $(libasm_a_AR) libasm.a $(libasm_a_OBJECTS) $(libasm_a_LIBADD)
- $(RANLIB) libasm.a
-libasm_pic.a: $(libasm_pic_a_OBJECTS) $(libasm_pic_a_DEPENDENCIES)
- -rm -f libasm_pic.a
- $(libasm_pic_a_AR) libasm_pic.a $(libasm_pic_a_OBJECTS) $(libasm_pic_a_LIBADD)
- $(RANLIB) libasm_pic.a
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-#libasm.so$(EXEEXT): $(libasm_so_OBJECTS) $(libasm_so_DEPENDENCIES)
-# @rm -f libasm.so$(EXEEXT)
-# $(LINK) $(libasm_so_LDFLAGS) $(libasm_so_OBJECTS) $(libasm_so_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-include ./$(DEPDIR)/asm_abort.Po
-include ./$(DEPDIR)/asm_addint16.Po
-include ./$(DEPDIR)/asm_addint32.Po
-include ./$(DEPDIR)/asm_addint64.Po
-include ./$(DEPDIR)/asm_addint8.Po
-include ./$(DEPDIR)/asm_addsleb128.Po
-include ./$(DEPDIR)/asm_addstrz.Po
-include ./$(DEPDIR)/asm_adduint16.Po
-include ./$(DEPDIR)/asm_adduint32.Po
-include ./$(DEPDIR)/asm_adduint64.Po
-include ./$(DEPDIR)/asm_adduint8.Po
-include ./$(DEPDIR)/asm_adduleb128.Po
-include ./$(DEPDIR)/asm_align.Po
-include ./$(DEPDIR)/asm_begin.Po
-include ./$(DEPDIR)/asm_end.Po
-include ./$(DEPDIR)/asm_error.Po
-include ./$(DEPDIR)/asm_fill.Po
-include ./$(DEPDIR)/asm_getelf.Po
-include ./$(DEPDIR)/asm_newabssym.Po
-include ./$(DEPDIR)/asm_newcomsym.Po
-include ./$(DEPDIR)/asm_newscn.Po
-include ./$(DEPDIR)/asm_newscn_ingrp.Po
-include ./$(DEPDIR)/asm_newscngrp.Po
-include ./$(DEPDIR)/asm_newsubscn.Po
-include ./$(DEPDIR)/asm_newsym.Po
-include ./$(DEPDIR)/asm_scngrp_newsignature.Po
-include ./$(DEPDIR)/symbolhash.Po
-
-.c.o:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c $<
-
-.c.obj:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-euincludeHEADERS: $(euinclude_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(euincludedir)" || $(mkdir_p) "$(DESTDIR)$(euincludedir)"
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(euincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(euincludedir)/$$f'"; \
- $(euincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-
-uninstall-euincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(euincludedir)/$$f'"; \
- rm -f "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-#install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-#uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLIBRARIES clean-noinstLIBRARIES \
- clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-euincludeHEADERS
-
-install-exec-am: install-libLIBRARIES
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-euincludeHEADERS uninstall-info-am \
- uninstall-libLIBRARIES
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLIBRARIES clean-noinstLIBRARIES clean-noinstPROGRAMS \
- ctags distclean distclean-compile distclean-generic \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
- install-euincludeHEADERS install-exec install-exec-am \
- install-info install-info-am install-libLIBRARIES install-man \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-euincludeHEADERS \
- uninstall-info-am uninstall-libLIBRARIES
-
-libasm.so: libasm_pic.a libasm.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libasm.map,--no-undefined \
- -Wl,--soname,$@.$(VERSION) \
- ../libebl/libebl.a ../libelf/libelf.so
- ln -fs $@ $@.$(VERSION)
-
-%.os: %.c %.o
- if $(COMPILE) -c -o $@ -fpic -DPIC -DSHARED -MT $@ -MD -MP \
- -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \
- then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
- rm -f "$(DEPDIR)/$*.Tpo"; \
- else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
- fi
-
-install: install-am libasm.so
- $(mkinstalldirs) $(DESTDIR)$(libdir)
- $(INSTALL_PROGRAM) libasm.so $(DESTDIR)$(libdir)/libasm-$(PACKAGE_VERSION).so
- ln -fs libasm-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libasm.so.$(VERSION)
- ln -fs libasm.so.$(VERSION) $(DESTDIR)$(libdir)/libasm.so
-
-uninstall: uninstall-am
- rm -f $(DESTDIR)$(libdir)/libasm-$(PACKAGE_VERSION).so
- rm -f $(DESTDIR)$(libdir)/libasm.so.$(VERSION)
- rm -f $(DESTDIR)$(libdir)/libasm.so
- rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/elfutils
-
-.PSEUDO: lint
-lint:
- $(LINT) $(DEFS) $(INCLUDES) $(GCC_INCLUDE) -f $(top_srcdir)/splint.rc \
- $(addprefix $(srcdir)/,$(libelf_la_SOURCES))
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libasm/Makefile.am b/libasm/Makefile.am
deleted file mode 100644
index 9ba304d1..00000000
--- a/libasm/Makefile.am
+++ /dev/null
@@ -1,92 +0,0 @@
-## Process this file with automake to create Makefile.in
-## Configure input file for elfutils.
-##
-## Copyright (C) 2002, 2004 Red Hat, Inc.
-##
-## This program is Open Source software; you can redistribute it and/or
-## modify it under the terms of the Open Software License version 1.0 as
-## published by the Open Source Initiative.
-##
-## You should have received a copy of the Open Software License along
-## with this program; if not, you may obtain a copy of the Open Software
-## License version 1.0 from http://www.opensource.org/licenses/osl.php or
-## by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-## 3001 King Ranch Road, Ukiah, CA 95482.
-##
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H
-if MUDFLAP
-AM_CFLAGS = -Wall
-else
-AM_CFLAGS = -Wall -Werror
-endif
-INCLUDES = -I. -I$(srcdir) -I.. -I$(top_srcdir)/libelf -I$(top_srcdir)/libebl \
- -I$(top_srcdir)/lib
-GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include)
-VERSION = 1
-
-LINT = splint
-
-lib_LIBRARIES = libasm.a
-if !MUDFLAP
-noinst_LIBRARIES = libasm_pic.a
-noinst_PROGRAMS = $(noinst_LIBRARIES:_pic.a=.so)
-endif
-euincludedir = ${includedir}/elfutils
-euinclude_HEADERS = libasm.h
-
-libasm_a_SOURCES = asm_begin.c asm_abort.c asm_end.c asm_error.c \
- asm_getelf.c asm_newscn.c asm_newscn_ingrp.c \
- asm_newsubscn.c asm_newsym.c asm_newcomsym.c \
- asm_newabssym.c \
- asm_newscngrp.c asm_scngrp_newsignature.c \
- asm_fill.c asm_align.c asm_addstrz.c \
- asm_addint8.c asm_adduint8.c \
- asm_addint16.c asm_adduint16.c \
- asm_addint32.c asm_adduint32.c \
- asm_addint64.c asm_adduint64.c \
- asm_adduleb128.c asm_addsleb128.c \
- symbolhash.c
-
-if !MUDFLAP
-libasm_pic_a_SOURCES =
-am_libasm_pic_a_OBJECTS = $(libasm_a_SOURCES:.c=.os)
-
-libasm_so_SOURCES =
-libasm.so: libasm_pic.a libasm.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libasm.map,--no-undefined \
- -Wl,--soname,$@.$(VERSION) \
- ../libebl/libebl.a ../libelf/libelf.so
- ln -fs $@ $@.$(VERSION)
-
-
-%.os: %.c %.o
- if $(COMPILE) -c -o $@ -fpic -DPIC -DSHARED -MT $@ -MD -MP \
- -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \
- then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
- rm -f "$(DEPDIR)/$*.Tpo"; \
- else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
- fi
-
-install: install-am libasm.so
- $(mkinstalldirs) $(DESTDIR)$(libdir)
- $(INSTALL_PROGRAM) libasm.so $(DESTDIR)$(libdir)/libasm-$(PACKAGE_VERSION).so
- ln -fs libasm-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libasm.so.$(VERSION)
- ln -fs libasm.so.$(VERSION) $(DESTDIR)$(libdir)/libasm.so
-
-uninstall: uninstall-am
- rm -f $(DESTDIR)$(libdir)/libasm-$(PACKAGE_VERSION).so
- rm -f $(DESTDIR)$(libdir)/libasm.so.$(VERSION)
- rm -f $(DESTDIR)$(libdir)/libasm.so
- rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/elfutils
-endif
-
-.PSEUDO: lint
-lint:
- $(LINT) $(DEFS) $(INCLUDES) $(GCC_INCLUDE) -f $(top_srcdir)/splint.rc \
- $(addprefix $(srcdir)/,$(libelf_la_SOURCES))
-
-noinst_HEADERS = libasmP.h symbolhash.h
-EXTRA_DIST = libasm.map
-
-CLEANFILES = $(am_libasm_pic_a_OBJECTS)
diff --git a/libasm/Makefile.in b/libasm/Makefile.in
deleted file mode 100644
index 9683d4d2..00000000
--- a/libasm/Makefile.in
+++ /dev/null
@@ -1,593 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-
-SOURCES = $(libasm_a_SOURCES) $(libasm_pic_a_SOURCES) $(libasm_so_SOURCES)
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-@MUDFLAP_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1)
-@MUDFLAP_TRUE@am_libasm_pic_a_OBJECTS =
-subdir = libasm
-DIST_COMMON = $(euinclude_HEADERS) $(noinst_HEADERS) \
- $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)"
-libLIBRARIES_INSTALL = $(INSTALL_DATA)
-LIBRARIES = $(lib_LIBRARIES) $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libasm_a_AR = $(AR) $(ARFLAGS)
-libasm_a_LIBADD =
-am_libasm_a_OBJECTS = asm_begin.$(OBJEXT) asm_abort.$(OBJEXT) \
- asm_end.$(OBJEXT) asm_error.$(OBJEXT) asm_getelf.$(OBJEXT) \
- asm_newscn.$(OBJEXT) asm_newscn_ingrp.$(OBJEXT) \
- asm_newsubscn.$(OBJEXT) asm_newsym.$(OBJEXT) \
- asm_newcomsym.$(OBJEXT) asm_newabssym.$(OBJEXT) \
- asm_newscngrp.$(OBJEXT) asm_scngrp_newsignature.$(OBJEXT) \
- asm_fill.$(OBJEXT) asm_align.$(OBJEXT) asm_addstrz.$(OBJEXT) \
- asm_addint8.$(OBJEXT) asm_adduint8.$(OBJEXT) \
- asm_addint16.$(OBJEXT) asm_adduint16.$(OBJEXT) \
- asm_addint32.$(OBJEXT) asm_adduint32.$(OBJEXT) \
- asm_addint64.$(OBJEXT) asm_adduint64.$(OBJEXT) \
- asm_adduleb128.$(OBJEXT) asm_addsleb128.$(OBJEXT) \
- symbolhash.$(OBJEXT)
-libasm_a_OBJECTS = $(am_libasm_a_OBJECTS)
-libasm_pic_a_AR = $(AR) $(ARFLAGS)
-libasm_pic_a_LIBADD =
-libasm_pic_a_OBJECTS = $(am_libasm_pic_a_OBJECTS)
-@MUDFLAP_FALSE@am__EXEEXT_1 = libasm.so$(EXEEXT)
-PROGRAMS = $(noinst_PROGRAMS)
-am_libasm_so_OBJECTS =
-libasm_so_OBJECTS = $(am_libasm_so_OBJECTS)
-libasm_so_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libasm_a_SOURCES) $(libasm_pic_a_SOURCES) \
- $(libasm_so_SOURCES)
-DIST_SOURCES = $(libasm_a_SOURCES) $(libasm_pic_a_SOURCES) \
- $(libasm_so_SOURCES)
-euincludeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(euinclude_HEADERS) $(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GMSGFMT = @GMSGFMT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
-MUDFLAP_FALSE = @MUDFLAP_FALSE@
-MUDFLAP_TRUE = @MUDFLAP_TRUE@
-NATIVE_LD_FALSE = @NATIVE_LD_FALSE@
-NATIVE_LD_TRUE = @NATIVE_LD_TRUE@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VERSION = 1
-XGETTEXT = @XGETTEXT@
-YACC = @YACC@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-base_cpu = @base_cpu@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-@MUDFLAP_FALSE@AM_CFLAGS = -Wall -Werror
-@MUDFLAP_TRUE@AM_CFLAGS = -Wall
-INCLUDES = -I. -I$(srcdir) -I.. -I$(top_srcdir)/libelf -I$(top_srcdir)/libebl \
- -I$(top_srcdir)/lib
-
-GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include)
-LINT = splint
-lib_LIBRARIES = libasm.a
-@MUDFLAP_FALSE@noinst_LIBRARIES = libasm_pic.a
-euincludedir = ${includedir}/elfutils
-euinclude_HEADERS = libasm.h
-libasm_a_SOURCES = asm_begin.c asm_abort.c asm_end.c asm_error.c \
- asm_getelf.c asm_newscn.c asm_newscn_ingrp.c \
- asm_newsubscn.c asm_newsym.c asm_newcomsym.c \
- asm_newabssym.c \
- asm_newscngrp.c asm_scngrp_newsignature.c \
- asm_fill.c asm_align.c asm_addstrz.c \
- asm_addint8.c asm_adduint8.c \
- asm_addint16.c asm_adduint16.c \
- asm_addint32.c asm_adduint32.c \
- asm_addint64.c asm_adduint64.c \
- asm_adduleb128.c asm_addsleb128.c \
- symbolhash.c
-
-@MUDFLAP_FALSE@libasm_pic_a_SOURCES =
-@MUDFLAP_FALSE@am_libasm_pic_a_OBJECTS = $(libasm_a_SOURCES:.c=.os)
-@MUDFLAP_FALSE@libasm_so_SOURCES =
-noinst_HEADERS = libasmP.h symbolhash.h
-EXTRA_DIST = libasm.map
-CLEANFILES = $(am_libasm_pic_a_OBJECTS)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits libasm/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits libasm/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-libLIBRARIES: $(lib_LIBRARIES)
- @$(NORMAL_INSTALL)
- test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- f=$(am__strip_dir) \
- echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
- $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
- else :; fi; \
- done
- @$(POST_INSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- p=$(am__strip_dir) \
- echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \
- $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \
- else :; fi; \
- done
-
-uninstall-libLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- p=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \
- rm -f "$(DESTDIR)$(libdir)/$$p"; \
- done
-
-clean-libLIBRARIES:
- -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libasm.a: $(libasm_a_OBJECTS) $(libasm_a_DEPENDENCIES)
- -rm -f libasm.a
- $(libasm_a_AR) libasm.a $(libasm_a_OBJECTS) $(libasm_a_LIBADD)
- $(RANLIB) libasm.a
-libasm_pic.a: $(libasm_pic_a_OBJECTS) $(libasm_pic_a_DEPENDENCIES)
- -rm -f libasm_pic.a
- $(libasm_pic_a_AR) libasm_pic.a $(libasm_pic_a_OBJECTS) $(libasm_pic_a_LIBADD)
- $(RANLIB) libasm_pic.a
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-@MUDFLAP_TRUE@libasm.so$(EXEEXT): $(libasm_so_OBJECTS) $(libasm_so_DEPENDENCIES)
-@MUDFLAP_TRUE@ @rm -f libasm.so$(EXEEXT)
-@MUDFLAP_TRUE@ $(LINK) $(libasm_so_LDFLAGS) $(libasm_so_OBJECTS) $(libasm_so_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_abort.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_addint16.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_addint32.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_addint64.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_addint8.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_addsleb128.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_addstrz.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_adduint16.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_adduint32.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_adduint64.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_adduint8.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_adduleb128.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_align.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_begin.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_end.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_error.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_fill.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_getelf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_newabssym.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_newcomsym.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_newscn.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_newscn_ingrp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_newscngrp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_newsubscn.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_newsym.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm_scngrp_newsignature.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symbolhash.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-euincludeHEADERS: $(euinclude_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(euincludedir)" || $(mkdir_p) "$(DESTDIR)$(euincludedir)"
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(euincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(euincludedir)/$$f'"; \
- $(euincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-
-uninstall-euincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(euincludedir)/$$f'"; \
- rm -f "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-@MUDFLAP_TRUE@install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-@MUDFLAP_TRUE@uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLIBRARIES clean-noinstLIBRARIES \
- clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-euincludeHEADERS
-
-install-exec-am: install-libLIBRARIES
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-euincludeHEADERS uninstall-info-am \
- uninstall-libLIBRARIES
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLIBRARIES clean-noinstLIBRARIES clean-noinstPROGRAMS \
- ctags distclean distclean-compile distclean-generic \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
- install-euincludeHEADERS install-exec install-exec-am \
- install-info install-info-am install-libLIBRARIES install-man \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-euincludeHEADERS \
- uninstall-info-am uninstall-libLIBRARIES
-
-@MUDFLAP_FALSE@libasm.so: libasm_pic.a libasm.map
-@MUDFLAP_FALSE@ $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
-@MUDFLAP_FALSE@ -Wl,--version-script,$(srcdir)/libasm.map,--no-undefined \
-@MUDFLAP_FALSE@ -Wl,--soname,$@.$(VERSION) \
-@MUDFLAP_FALSE@ ../libebl/libebl.a ../libelf/libelf.so
-@MUDFLAP_FALSE@ ln -fs $@ $@.$(VERSION)
-
-@MUDFLAP_FALSE@%.os: %.c %.o
-@MUDFLAP_FALSE@ if $(COMPILE) -c -o $@ -fpic -DPIC -DSHARED -MT $@ -MD -MP \
-@MUDFLAP_FALSE@ -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \
-@MUDFLAP_FALSE@ then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
-@MUDFLAP_FALSE@ rm -f "$(DEPDIR)/$*.Tpo"; \
-@MUDFLAP_FALSE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
-@MUDFLAP_FALSE@ fi
-
-@MUDFLAP_FALSE@install: install-am libasm.so
-@MUDFLAP_FALSE@ $(mkinstalldirs) $(DESTDIR)$(libdir)
-@MUDFLAP_FALSE@ $(INSTALL_PROGRAM) libasm.so $(DESTDIR)$(libdir)/libasm-$(PACKAGE_VERSION).so
-@MUDFLAP_FALSE@ ln -fs libasm-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libasm.so.$(VERSION)
-@MUDFLAP_FALSE@ ln -fs libasm.so.$(VERSION) $(DESTDIR)$(libdir)/libasm.so
-
-@MUDFLAP_FALSE@uninstall: uninstall-am
-@MUDFLAP_FALSE@ rm -f $(DESTDIR)$(libdir)/libasm-$(PACKAGE_VERSION).so
-@MUDFLAP_FALSE@ rm -f $(DESTDIR)$(libdir)/libasm.so.$(VERSION)
-@MUDFLAP_FALSE@ rm -f $(DESTDIR)$(libdir)/libasm.so
-@MUDFLAP_FALSE@ rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/elfutils
-
-.PSEUDO: lint
-lint:
- $(LINT) $(DEFS) $(INCLUDES) $(GCC_INCLUDE) -f $(top_srcdir)/splint.rc \
- $(addprefix $(srcdir)/,$(libelf_la_SOURCES))
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libasm/asm_abort.c b/libasm/asm_abort.c
deleted file mode 100644
index f35757ca..00000000
--- a/libasm/asm_abort.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Abort operations on the assembler context, free all resources.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <libasmP.h>
-#include <libelf.h>
-
-
-int
-asm_abort (ctx)
- AsmCtx_t *ctx;
-{
- if (ctx == NULL)
- /* Something went wrong earlier. */
- return -1;
-
- if (likely (! ctx->textp))
- /* First free the ELF file. We don't care about the result. */
- (void) elf_end (ctx->out.elf);
-
- /* Now close the temporary file and remove it. */
- (void) unlink (ctx->tmp_fname);
-
- /* Free the resources. */
- __libasm_finictx (ctx);
-
- return 0;
-}
diff --git a/libasm/asm_addint16.c b/libasm/asm_addint16.c
deleted file mode 100644
index 98125171..00000000
--- a/libasm/asm_addint16.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Add integer to a section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#define SIZE 16
-
-#include "asm_addint8.c"
diff --git a/libasm/asm_addint32.c b/libasm/asm_addint32.c
deleted file mode 100644
index 05ac3d25..00000000
--- a/libasm/asm_addint32.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Add integer to a section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#define SIZE 32
-
-#include "asm_addint8.c"
diff --git a/libasm/asm_addint64.c b/libasm/asm_addint64.c
deleted file mode 100644
index f9d93f80..00000000
--- a/libasm/asm_addint64.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Add integer to a section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#define SIZE 64
-
-#include "asm_addint8.c"
diff --git a/libasm/asm_addint8.c b/libasm/asm_addint8.c
deleted file mode 100644
index 35d9bf57..00000000
--- a/libasm/asm_addint8.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Add integer to a section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <byteswap.h>
-#include <endian.h>
-#include <inttypes.h>
-#include <string.h>
-
-#include <libasmP.h>
-
-#ifndef SIZE
-# define SIZE 8
-#endif
-
-#define FCT(size) _FCT(size)
-#define _FCT(size) asm_addint##size
-#define TYPE(size) _TYPE(size)
-#define _TYPE(size) int##size##_t
-#define BSWAP(size) _BSWAP(size)
-#define _BSWAP(size) bswap_##size
-
-
-int
-FCT(SIZE) (asmscn, num)
- AsmScn_t *asmscn;
- TYPE(SIZE) num;
-{
- if (asmscn == NULL)
- return -1;
-
- if (asmscn->type == SHT_NOBITS && unlikely (num != 0))
- {
- __libasm_seterrno (ASM_E_TYPE);
- return -1;
- }
-
- if (unlikely (asmscn->ctx->textp))
- {
- // XXX Needs to use backend specified pseudo-ops
- if (SIZE == 8)
- printf ("\t.byte\t%" PRId8 "\n", (int8_t) num);
- else if (SIZE == 16)
- printf ("\t.value\t%" PRId16 "\n", (int16_t) num);
- else if (SIZE == 32)
- printf ("\t.long\t%" PRId32 "\n", (int32_t) num);
- else
- {
- // XXX This is not necessary for 64-bit machines
- bool is_leb = (elf_getident (asmscn->ctx->out.elf, NULL)[EI_DATA]
- == ELFDATA2LSB);
-
- printf ("\t.long\t%" PRId32 "\n\t.long\t%" PRId32 "\n",
- (int32_t) (is_leb
- ? num % 0x100000000ll : num / 0x100000000ll),
- (int32_t) (is_leb
- ? num / 0x100000000ll : num % 0x100000000ll));
- }
- }
- else
- {
-#if SIZE > 8
- bool is_leb = (elf_getident (asmscn->ctx->out.elf, NULL)[EI_DATA]
- == ELFDATA2LSB);
-#endif
- TYPE(SIZE) var = num;
-
- /* Make sure we have enough room. */
- if (__libasm_ensure_section_space (asmscn, SIZE / 8) != 0)
- return -1;
-
-#if SIZE > 8
- if ((BYTE_ORDER == LITTLE_ENDIAN && !is_leb)
- || (BYTE_ORDER == BIG_ENDIAN && is_leb))
- var = BSWAP(SIZE) (var);
-#endif
-
- /* Copy the variable value. */
- if (likely (asmscn->type == SHT_NOBITS))
- memcpy (&asmscn->content->data[asmscn->content->len], &var, SIZE / 8);
-
- /* Adjust the pointer in the data buffer. */
- asmscn->content->len += SIZE / 8;
-
- /* Increment the offset in the (sub)section. */
- asmscn->offset += SIZE / 8;
- }
-
- return 0;
-}
-INTDEF(FCT(SIZE))
diff --git a/libasm/asm_addsleb128.c b/libasm/asm_addsleb128.c
deleted file mode 100644
index 0661b36e..00000000
--- a/libasm/asm_addsleb128.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Add signed little endian base 128 integer to a section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <inttypes.h>
-#include <string.h>
-
-#include <libasmP.h>
-
-
-int
-asm_addsleb128 (asmscn, num)
- AsmScn_t *asmscn;
- int32_t num;
-{
- if (asmscn == NULL)
- return -1;
-
- if (asmscn->type == SHT_NOBITS && unlikely (num != 0))
- {
- __libasm_seterrno (ASM_E_TYPE);
- return -1;
- }
-
- if (unlikely (asmscn->ctx->textp))
- printf ("\t.sleb128\t%" PRId32 "\n", num);
- else
- {
- char tmpbuf[(sizeof (num) * 8 + 6) / 7];
- char *dest = tmpbuf;
- uint32_t byte;
- int32_t endval = num >> 31;
-
- if (num == 0)
- byte = 0;
- else
- while (1)
- {
- byte = num & 0x7f;
-
- num >>= 7;
- if (num == endval)
- /* This is the last byte. */
- break;
-
- *dest++ = byte | 0x80;
- }
-
- *dest++ = byte;
-
- /* Number of bytes produced. */
- size_t nbytes = dest - tmpbuf;
-
- /* Make sure we have enough room. */
- if (__libasm_ensure_section_space (asmscn, nbytes) != 0)
- return -1;
-
- /* Copy the bytes. */
- if (likely (asmscn->type != SHT_NOBITS))
- memcpy (&asmscn->content->data[asmscn->content->len], tmpbuf, nbytes);
-
- /* Adjust the pointer in the data buffer. */
- asmscn->content->len += nbytes;
-
- /* Increment the offset in the (sub)section. */
- asmscn->offset += nbytes;
- }
-
- return 0;
-}
diff --git a/libasm/asm_addstrz.c b/libasm/asm_addstrz.c
deleted file mode 100644
index e183b0b5..00000000
--- a/libasm/asm_addstrz.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Add string to a section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <ctype.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <libasmP.h>
-
-
-/* Add zero terminated string STR of size LEN to (sub)section ASMSCN. */
-int
-asm_addstrz (asmscn, str, len)
- AsmScn_t *asmscn;
- const char *str;
- size_t len;
-{
- if (asmscn == NULL)
- return -1;
-
- if (unlikely (asmscn->type == SHT_NOBITS))
- {
- if (len == 0)
- {
- if (str[0] != '\0')
- {
- __libasm_seterrno (ASM_E_TYPE);
- return -1;
- }
- }
- else
- {
- size_t cnt;
-
- for (cnt = 0; cnt < len; ++cnt)
- if (str[cnt] != '\0')
- {
- __libasm_seterrno (ASM_E_TYPE);
- return -1;
- }
- }
- }
-
- if (len == 0)
- len = strlen (str) + 1;
-
- if (unlikely (asmscn->ctx->textp))
- {
- bool nextline = true;
-
- do
- {
- if (nextline)
- {
- fputs ("\t.string\t\"", asmscn->ctx->out.file);
- nextline = false;
- }
-
- if (*str == '\0')
- fputs ("\\000", asmscn->ctx->out.file);
- else if (! isascii (*str))
- fprintf (asmscn->ctx->out.file, "\\%03o",
- (unsigned int) *((unsigned char *)str));
- else if (*str == '\\')
- fputs ("\\\\", asmscn->ctx->out.file);
- else if (*str == '\n')
- {
- fputs ("\\n\"", asmscn->ctx->out.file);
- nextline = true;
- }
- else
- fputc (*str, asmscn->ctx->out.file);
-
- ++str;
- }
- while (--len > 0 && (len > 1 || *str != '\0'));
-
- if (! nextline)
- fputs ("\"\n", asmscn->ctx->out.file);
- }
- else
- {
- /* Make sure there is enough room. */
- if (__libasm_ensure_section_space (asmscn, len) != 0)
- return -1;
-
- /* Copy the string. */
- memcpy (&asmscn->content->data[asmscn->content->len], str, len);
-
- /* Adjust the pointer in the data buffer. */
- asmscn->content->len += len;
-
- /* Increment the offset in the (sub)section. */
- asmscn->offset += len;
- }
-
- return 0;
-}
diff --git a/libasm/asm_adduint16.c b/libasm/asm_adduint16.c
deleted file mode 100644
index 8c1e698f..00000000
--- a/libasm/asm_adduint16.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Add unsigned integer to a section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#define SIZE 16
-
-#include "asm_adduint8.c"
diff --git a/libasm/asm_adduint32.c b/libasm/asm_adduint32.c
deleted file mode 100644
index a2257954..00000000
--- a/libasm/asm_adduint32.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Add unsigned integer to a section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#define SIZE 32
-
-#include "asm_adduint8.c"
diff --git a/libasm/asm_adduint64.c b/libasm/asm_adduint64.c
deleted file mode 100644
index edda4d38..00000000
--- a/libasm/asm_adduint64.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Add unsigned integer to a section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#define SIZE 64
-
-#include "asm_adduint8.c"
diff --git a/libasm/asm_adduint8.c b/libasm/asm_adduint8.c
deleted file mode 100644
index 7bfb3414..00000000
--- a/libasm/asm_adduint8.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Add unsigned integer to a section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libasmP.h>
-
-#ifndef SIZE
-# define SIZE 8
-#endif
-
-#define UFCT(size) _UFCT(size)
-#define _UFCT(size) asm_adduint##size
-#define FCT(size) _FCT(size)
-#define _FCT(size) asm_addint##size
-#define UTYPE(size) _UTYPE(size)
-#define _UTYPE(size) uint##size##_t
-#define TYPE(size) _TYPE(size)
-#define _TYPE(size) int##size##_t
-
-
-int
-UFCT(SIZE) (asmscn, num)
- AsmScn_t *asmscn;
- UTYPE(SIZE) num;
-{
- return INTUSE(FCT(SIZE)) (asmscn, (TYPE(SIZE)) num);
-}
diff --git a/libasm/asm_adduleb128.c b/libasm/asm_adduleb128.c
deleted file mode 100644
index 521d265a..00000000
--- a/libasm/asm_adduleb128.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Add integer to a section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <inttypes.h>
-#include <string.h>
-
-#include "libasmP.h"
-
-
-int
-asm_adduleb128 (asmscn, num)
- AsmScn_t *asmscn;
- uint32_t num;
-{
- if (asmscn == NULL)
- return -1;
-
- if (asmscn->type == SHT_NOBITS && unlikely (num != 0))
- {
- __libasm_seterrno (ASM_E_TYPE);
- return -1;
- }
-
- if (unlikely (asmscn->ctx->textp))
- printf ("\t.uleb128\t%" PRIu32 "\n", num);
- else
- {
- char tmpbuf[(sizeof (num) * 8 + 6) / 7];
- char *dest = tmpbuf;
- uint32_t byte;
-
- while (1)
- {
- byte = num & 0x7f;
-
- num >>= 7;
- if (num == 0)
- /* This is the last byte. */
- break;
-
- *dest++ = byte | 0x80;
- }
-
- *dest++ = byte;
-
- /* Number of bytes produced. */
- size_t nbytes = dest - tmpbuf;
-
- /* Make sure we have enough room. */
- if (__libasm_ensure_section_space (asmscn, nbytes) != 0)
- return -1;
-
- /* Copy the bytes. */
- if (likely (asmscn->type != SHT_NOBITS))
- memcpy (&asmscn->content->data[asmscn->content->len], tmpbuf, nbytes);
-
- /* Adjust the pointer in the data buffer. */
- asmscn->content->len += nbytes;
-
- /* Increment the offset in the (sub)section. */
- asmscn->offset += nbytes;
- }
-
- return 0;
-}
diff --git a/libasm/asm_align.c b/libasm/asm_align.c
deleted file mode 100644
index e7350924..00000000
--- a/libasm/asm_align.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/* Align section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <sys/param.h>
-
-#include <libasmP.h>
-#include <system.h>
-
-
-int
-asm_align (asmscn, value)
- AsmScn_t *asmscn;
- GElf_Word value;
-{
- if (asmscn == NULL)
- /* An earlier error. */
- return -1;
-
- /* The alignment value must be a power of two. */
- if (unlikely (! powerof2 (value)))
- {
- __libasm_seterrno (ASM_E_INVALID);
- return -1;
- }
-
- rwlock_wrlock (asmscn->ctx->lock);
-
- int result = 0;
-
- /* Fillbytes necessary? */
- if ((asmscn->offset & (value - 1)) != 0)
- {
- /* Add fillbytes. */
- size_t cnt;
- size_t byteptr;
-
- cnt = value - (asmscn->offset & (value - 1));
-
- /* Ensure there is enough room to add the fill bytes. */
- result = __libasm_ensure_section_space (asmscn, cnt);
- if (result != 0)
- goto out;
-
- /* Fill in the bytes. We align the pattern according to the
- current offset. */
- byteptr = asmscn->offset % asmscn->pattern->len;
-
- /* Update the total size. */
- asmscn->offset += cnt;
-
- do
- {
- asmscn->content->data[asmscn->content->len++]
- = asmscn->pattern->bytes[byteptr++];
-
- if (byteptr == asmscn->pattern->len)
- byteptr = 0;
- }
- while (--cnt > 0);
- }
-
- /* Remember the maximum alignment for this subsection. */
- if (asmscn->max_align < value)
- {
- asmscn->max_align = value;
-
- /* Update the parent as well (if it exists). */
- if (asmscn->subsection_id != 0)
- {
- rwlock_wrlock (asmscn->data.up->ctx->lock);
-
- if (asmscn->data.up->max_align < value)
- asmscn->data.up->max_align = value;
-
- rwlock_unlock (asmscn->data.up->ctx->lock);
- }
- }
-
- out:
- rwlock_unlock (asmscn->ctx->lock);
-
- return result;
-}
-
-
-/* Ensure there are at least LEN bytes available in the output buffer
- for ASMSCN. */
-int
-__libasm_ensure_section_space (asmscn, len)
- AsmScn_t *asmscn;
- size_t len;
-{
- /* The blocks with the section content are kept in a circular
- single-linked list. */
- size_t size;
-
- if (asmscn->content == NULL)
- {
- /* This is the first block. */
- size = MAX (2 * len, 960);
-
- asmscn->content = (struct AsmData *) malloc (sizeof (struct AsmData)
- + size);
- if (asmscn->content == NULL)
- return -1;
-
- asmscn->content->next = asmscn->content;
- }
- else
- {
- struct AsmData *newp;
-
- if (asmscn->content->maxlen - asmscn->content->len >= len)
- /* Nothing to do, there is enough space. */
- return 0;
-
- size = MAX (2 *len, MIN (32768, 2 * asmscn->offset));
-
- newp = (struct AsmData *) malloc (sizeof (struct AsmData) + size);
- if (newp == NULL)
- return -1;
-
- newp->next = asmscn->content->next;
- asmscn->content = asmscn->content->next = newp;
- }
-
- asmscn->content->len = 0;
- asmscn->content->maxlen = size;
-
- return 0;
-}
diff --git a/libasm/asm_begin.c b/libasm/asm_begin.c
deleted file mode 100644
index 3896f78f..00000000
--- a/libasm/asm_begin.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Create descriptor for assembling.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <gelf.h>
-#include "libasmP.h"
-#include <system.h>
-
-
-static AsmCtx_t *
-prepare_text_output (AsmCtx_t *result)
-{
- return result;
-}
-
-
-static AsmCtx_t *
-prepare_binary_output (AsmCtx_t *result, int machine, int klass, int data)
-{
- GElf_Ehdr *ehdr;
- GElf_Ehdr ehdr_mem;
-
- /* Create the ELF descriptor for the file. */
- result->out.elf = elf_begin (result->fd, ELF_C_WRITE_MMAP, NULL);
- if (result->out.elf == NULL)
- {
- err_libelf:
- unlink (result->tmp_fname);
- close (result->fd);
- free (result);
- __libasm_seterrno (ASM_E_LIBELF);
- return NULL;
- }
-
- /* Create the ELF header for the output file. */
- if (gelf_newehdr (result->out.elf, klass) == 0)
- goto err_libelf;
-
- ehdr = gelf_getehdr (result->out.elf, &ehdr_mem);
- /* If this failed we are in trouble. */
- assert (ehdr != NULL);
-
- /* We create an object file. */
- ehdr->e_type = ET_REL;
- /* Set the ELF version. */
- ehdr->e_version = EV_CURRENT;
-
- /* Use the machine value the user provided. */
- ehdr->e_machine = machine;
- /* Same for the class and endianness. */
- ehdr->e_ident[EI_CLASS] = klass;
- ehdr->e_ident[EI_DATA] = data;
-
- memcpy (&ehdr->e_ident[EI_MAG0], ELFMAG, SELFMAG);
-
- /* Write the ELF header information back. */
- (void) gelf_update_ehdr (result->out.elf, ehdr);
-
- /* No section so far. */
- result->section_list = NULL;
-
- /* Initialize the hash table. */
- asm_symbol_tab_init (&result->symbol_tab, 67);
- result->nsymbol_tab = 0;
- /* And the string tables. */
- result->section_strtab = ebl_strtabinit (true);
- result->symbol_strtab = ebl_strtabinit (true);
-
- /* We have no section groups so far. */
- result->groups = NULL;
- result->ngroups = 0;
-
- return result;
-}
-
-
-AsmCtx_t *
-asm_begin (fname, textp, machine, klass, data)
- const char *fname;
- bool textp;
- int machine;
- int klass;
- int data;
-{
- size_t fname_len = strlen (fname);
- AsmCtx_t *result;
-
-
- /* First order of business: find the appropriate backend. If it
- does not exist we don't have to look further. */
- // XXX
-
- /* Create the file descriptor. We do not generate the output file
- right away. Instead we create a temporary file in the same
- directory which, if everything goes alright, will replace a
- possibly existing file with the given name. */
- result = (AsmCtx_t *) malloc (sizeof (AsmCtx_t) + 2 * fname_len + 9);
- if (result == NULL)
- return NULL;
-
- /* Initialize the lock. */
- rwlock_init (result->lock);
-
- /* Create the name of the temporary file. */
- result->fname = stpcpy (mempcpy (result->tmp_fname, fname, fname_len),
- ".XXXXXX") + 1;
- memcpy (result->fname, fname, fname_len + 1);
-
- /* Create the temporary file. */
- result->fd = mkstemp (result->tmp_fname);
- if (result->fd == -1)
- {
- int save_errno = errno;
- free (result);
- __libasm_seterrno (ASM_E_CANNOT_CREATE);
- errno = save_errno;
- return NULL;
- }
-
- /* Initialize the counter for temporary symbols. */
- result->tempsym_count = 0;
-
- /* Now we differentiate between textual and binary output. */
- result->textp = textp;
- if (textp)
- result = prepare_text_output (result);
- else
- result = prepare_binary_output (result, machine, klass, data);
-
- return result;
-}
diff --git a/libasm/asm_end.c b/libasm/asm_end.c
deleted file mode 100644
index 01326a11..00000000
--- a/libasm/asm_end.c
+++ /dev/null
@@ -1,597 +0,0 @@
-/* Finalize operations on the assembler context, free all resources.
- Copyright (C) 2002, 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <error.h>
-#include <libintl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/stat.h>
-
-#include <libasmP.h>
-#include <libelf.h>
-#include <system.h>
-
-
-static int
-text_end (AsmCtx_t *ctx)
-{
- // XXX Does anything have to be done?
- return 0;
-}
-
-
-static int
-binary_end (AsmCtx_t *ctx)
-{
- void *symtab = NULL;
- struct Ebl_Strent *symscn_strent = NULL;
- struct Ebl_Strent *strscn_strent = NULL;
- struct Ebl_Strent *xndxscn_strent = NULL;
- Elf_Scn *shstrscn;
- struct Ebl_Strent *shstrscn_strent;
- size_t shstrscnndx;
- size_t symscnndx = 0;
- size_t strscnndx = 0;
- size_t xndxscnndx = 0;
- Elf_Data *data;
- Elf_Data *shstrtabdata;
- Elf_Data *strtabdata = NULL;
- Elf_Data *xndxdata = NULL;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
- GElf_Ehdr ehdr_mem;
- GElf_Ehdr *ehdr;
- AsmScn_t *asmscn;
- int result = 0;
-
- /* Iterate over the created sections and compute the offsets of the
- various subsections and fill in the content. */
- for (asmscn = ctx->section_list; asmscn != NULL; asmscn = asmscn->allnext)
- {
-#if 0
- Elf_Scn *scn = elf_getscn (ctx->out.elf, asmscn->data.main.scnndx);
-#else
- Elf_Scn *scn = asmscn->data.main.scn;
-#endif
- off_t offset = 0;
- AsmScn_t *asmsubscn = asmscn;
-
- do
- {
- struct AsmData *content = asmsubscn->content;
- bool first = true;
-
- offset = ((offset + asmsubscn->max_align - 1)
- & ~(asmsubscn->max_align - 1));
-
- /* Update the offset for this subsection. This field now
- stores the offset of the first by in this subsection. */
- asmsubscn->offset = offset;
-
- /* Note that the content list is circular. */
- if (content != NULL)
- do
- {
- Elf_Data *newdata = elf_newdata (scn);
-
- if (newdata == NULL)
- error (EXIT_FAILURE, 0,
- _("cannot create section for output file: %s"),
- elf_errmsg (-1));
-
- newdata->d_buf = content->data;
- newdata->d_type = ELF_T_BYTE;
- newdata->d_size = content->len;
- newdata->d_off = offset;
- newdata->d_align = first ? asmsubscn->max_align : 1;
-
- offset += content->len;
- }
- while ((content = content->next) != asmsubscn->content);
- }
- while ((asmsubscn = asmsubscn->subnext) != NULL);
- }
-
-
- /* Create the symbol table if necessary. */
- if (ctx->nsymbol_tab > 0)
- {
- Elf_Scn *symscn;
- Elf_Scn *strscn;
- AsmSym_t *sym;
- int ptr_local;
- int ptr_nonlocal;
- GElf_Sym syment;
- uint32_t *xshndx = NULL;
- void *runp;
-
- /* Create the symbol table and string table section names. */
- symscn_strent = ebl_strtabadd (ctx->section_strtab, ".symtab", 8);
- strscn_strent = ebl_strtabadd (ctx->section_strtab, ".strtab", 8);
-
- /* Create the symbol string table section. */
- strscn = elf_newscn (ctx->out.elf);
- strtabdata = elf_newdata (strscn);
- shdr = gelf_getshdr (strscn, &shdr_mem);
- if (strtabdata == NULL || shdr == NULL)
- error (EXIT_FAILURE, 0, _("cannot create section for output file: %s"),
- elf_errmsg (-1));
- strscnndx = elf_ndxscn (strscn);
-
- ebl_strtabfinalize (ctx->symbol_strtab, strtabdata);
-
- shdr->sh_type = SHT_STRTAB;
- assert (shdr->sh_entsize == 0);
-
- (void) gelf_update_shdr (strscn, shdr);
-
- /* Create the symbol table section. */
- symscn = elf_newscn (ctx->out.elf);
- data = elf_newdata (symscn);
- shdr = gelf_getshdr (symscn, &shdr_mem);
- if (data == NULL || shdr == NULL)
- error (EXIT_FAILURE, 0, _("cannot create section for output file: %s"),
- elf_errmsg (-1));
- symscnndx = elf_ndxscn (symscn);
-
- /* We know how many symbols there will be in the symbol table. */
- data->d_size = gelf_fsize (ctx->out.elf, ELF_T_SYM,
- ctx->nsymbol_tab + 1, EV_CURRENT);
- symtab = malloc (data->d_size);
- if (symtab == NULL)
- return -1;
- data->d_buf = symtab;
- data->d_type = ELF_T_SYM;
- data->d_off = 0;
-
- /* Clear the first entry. */
- memset (&syment, '\0', sizeof (syment));
- (void) gelf_update_sym (data, 0, &syment);
-
- /* Iterate over the symbol table. */
- runp = NULL;
- ptr_local = 1; /* Start with index 1; zero remains unused. */
- ptr_nonlocal = ctx->nsymbol_tab;
- while ((sym = asm_symbol_tab_iterate (&ctx->symbol_tab, &runp)) != NULL)
- if (asm_emit_symbol_p (ebl_string (sym->strent)))
- {
- int ptr;
- Elf32_Word ndx;
- Elf_Scn *scn;
-
- assert (ptr_local <= ptr_nonlocal);
-
- syment.st_name = ebl_strtaboffset (sym->strent);
- syment.st_info = GELF_ST_INFO (sym->binding, sym->type);
- syment.st_other = 0;
- syment.st_value = sym->scn->offset + sym->offset;
- syment.st_size = sym->size;
-
- /* Add local symbols at the beginning, the other from
- the end. */
- ptr = sym->binding == STB_LOCAL ? ptr_local++ : ptr_nonlocal--;
-
- /* Determine the section index. We have to handle the
- overflow correctly. */
- scn = (sym->scn->subsection_id == 0
- ? sym->scn->data.main.scn
- : sym->scn->data.up->data.main.scn);
-
- if (unlikely (scn == ASM_ABS_SCN))
- ndx = SHN_ABS;
- else if (unlikely (scn == ASM_COM_SCN))
- ndx = SHN_COMMON;
- else if (unlikely ((ndx = elf_ndxscn (scn)) >= SHN_LORESERVE))
- {
- if (unlikely (xshndx == NULL))
- {
- /* The extended section index section does not yet
- exist. */
- Elf_Scn *xndxscn;
- size_t symscnndx = elf_ndxscn (symscn);
-
- xndxscn = elf_newscn (ctx->out.elf);
- xndxdata = elf_newdata (xndxscn);
- shdr = gelf_getshdr (xndxscn, &shdr_mem);
- if (xndxdata == NULL || shdr == NULL)
- error (EXIT_FAILURE, 0, _("\
-cannot create extended section index table: %s"),
- elf_errmsg (-1));
- xndxscnndx = elf_ndxscn (xndxscn);
-
- shdr->sh_type = SHT_SYMTAB_SHNDX;
- shdr->sh_entsize = sizeof (Elf32_Word);
- shdr->sh_addralign = sizeof (Elf32_Word);
- shdr->sh_link = symscnndx;
-
- (void) gelf_update_shdr (xndxscn, shdr);
-
- xndxscn_strent = ebl_strtabadd (ctx->section_strtab,
- ".symtab_shndx", 14);
-
- /* Note that using 'elf32_fsize' instead of
- 'gelf_fsize' here is correct. */
- xndxdata->d_size = elf32_fsize (ELF_T_WORD,
- ctx->nsymbol_tab + 1,
- EV_CURRENT);
- xshndx = xndxdata->d_buf = calloc (1, xndxdata->d_size);
- if (xshndx == NULL)
- return -1;
- /* Using ELF_T_WORD here relies on the fact that the
- 32- and 64-bit types are the same size. */
- xndxdata->d_type = ELF_T_WORD;
- xndxdata->d_off = 0;
- }
-
- /* Store the real section index in the extended setion
- index table. */
- assert ((size_t) ptr < ctx->nsymbol_tab + 1);
- xshndx[ptr] = ndx;
-
- /* And signal that this happened. */
- ndx = SHN_XINDEX;
- }
- syment.st_shndx = ndx;
-
- /* Remember where we put the symbol. */
- sym->symidx = ptr;
-
- (void) gelf_update_sym (data, ptr, &syment);
- }
-
- assert (ptr_local == ptr_nonlocal + 1);
-
- shdr->sh_type = SHT_SYMTAB;
- shdr->sh_link = strscnndx;
- shdr->sh_info = ptr_local;
- shdr->sh_entsize = gelf_fsize (ctx->out.elf, ELF_T_SYM, 1, EV_CURRENT);
- shdr->sh_addralign = gelf_fsize (ctx->out.elf, ELF_T_ADDR, 1,
- EV_CURRENT);
-
- (void) gelf_update_shdr (symscn, shdr);
- }
-
-
- /* Create the section header string table section and fill in the
- references in the section headers. */
- shstrscn = elf_newscn (ctx->out.elf);
- shstrtabdata = elf_newdata (shstrscn);
- shdr = gelf_getshdr (shstrscn, &shdr_mem);
- if (shstrscn == NULL || shstrtabdata == NULL || shdr == NULL)
- error (EXIT_FAILURE, 0, _("cannot create section for output file: %s"),
- elf_errmsg (-1));
-
-
- /* Add the name of the section header string table. */
- shstrscn_strent = ebl_strtabadd (ctx->section_strtab, ".shstrtab", 10);
-
- ebl_strtabfinalize (ctx->section_strtab, shstrtabdata);
-
- shdr->sh_type = SHT_STRTAB;
- assert (shdr->sh_entsize == 0);
- shdr->sh_name = ebl_strtaboffset (shstrscn_strent);
-
- (void) gelf_update_shdr (shstrscn, shdr);
-
-
- /* Create the section groups. */
- if (ctx->groups != NULL)
- {
- AsmScnGrp_t *runp = ctx->groups->next;
-
- do
- {
- Elf_Scn *scn;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
- Elf_Data *data;
- Elf32_Word *grpdata;
-
- scn = runp->scn;
- assert (scn != NULL);
- shdr = gelf_getshdr (scn, &shdr_mem);
- assert (shdr != NULL);
-
- data = elf_newdata (scn);
- if (data == NULL)
- error (EXIT_FAILURE, 0,
- _("cannot create section group for output file: %s"),
- elf_errmsg (-1));
-
- /* It is correct to use 'elf32_fsize' instead of 'gelf_fsize'
- here. */
- data->d_size = elf32_fsize (ELF_T_WORD, runp->nmembers + 1,
- EV_CURRENT);
- grpdata = data->d_buf = malloc (data->d_size);
- if (grpdata == NULL)
- return -1;
- data->d_type = ELF_T_WORD;
- data->d_off = 0;
- data->d_align = elf32_fsize (ELF_T_WORD, 1, EV_CURRENT);
-
- /* The first word of the section is filled with the flag word. */
- *grpdata++ = runp->flags;
-
- if (runp->members != NULL)
- {
- AsmScn_t *member = runp->members->data.main.next_in_group;
-
- do
- {
- /* Only sections, not subsections, can be registered
- as member of a group. The subsections get
- automatically included. */
- assert (member->subsection_id == 0);
-
- *grpdata++ = elf_ndxscn (member->data.main.scn);
- }
- while ((member = member->data.main.next_in_group)
- != runp->members->data.main.next_in_group);
- }
-
- /* Construct the section header. */
- shdr->sh_name = ebl_strtaboffset (runp->strent);
- shdr->sh_type = SHT_GROUP;
- shdr->sh_flags = 0;
- shdr->sh_link = symscnndx;
- /* If the user did not specify a signature we use the initial
- empty symbol in the symbol table as the signature. */
- shdr->sh_info = (runp->signature != NULL
- ? runp->signature->symidx : 0);
-
- (void) gelf_update_shdr (scn, shdr);
- }
- while ((runp = runp->next) != ctx->groups->next);
- }
-
-
- /* Add the name to the symbol section. */
- if (likely (symscnndx != 0))
- {
- Elf_Scn *scn = elf_getscn (ctx->out.elf, symscnndx);
-
- shdr = gelf_getshdr (scn, &shdr_mem);
-
- shdr->sh_name = ebl_strtaboffset (symscn_strent);
-
- (void) gelf_update_shdr (scn, shdr);
-
-
- /* Add the name to the string section. */
- assert (strscnndx != 0);
- scn = elf_getscn (ctx->out.elf, strscnndx);
-
- shdr = gelf_getshdr (scn, &shdr_mem);
-
- shdr->sh_name = ebl_strtaboffset (strscn_strent);
-
- (void) gelf_update_shdr (scn, shdr);
-
-
- /* Add the name to the extended symbol index section. */
- if (xndxscnndx != 0)
- {
- scn = elf_getscn (ctx->out.elf, xndxscnndx);
-
- shdr = gelf_getshdr (scn, &shdr_mem);
-
- shdr->sh_name = ebl_strtaboffset (xndxscn_strent);
-
- (void) gelf_update_shdr (scn, shdr);
- }
- }
-
-
- /* Iterate over the created sections and fill in the names. */
- for (asmscn = ctx->section_list; asmscn != NULL; asmscn = asmscn->allnext)
- {
- shdr = gelf_getshdr (asmscn->data.main.scn, &shdr_mem);
- /* This better should not fail. */
- assert (shdr != NULL);
-
- shdr->sh_name = ebl_strtaboffset (asmscn->data.main.strent);
-
- /* We now know the maximum alignment. */
- shdr->sh_addralign = asmscn->max_align;
-
- (void) gelf_update_shdr (asmscn->data.main.scn, shdr);
- }
-
- /* Put the reference to the section header string table in the ELF
- header. */
- ehdr = gelf_getehdr (ctx->out.elf, &ehdr_mem);
- assert (ehdr != NULL);
-
- shstrscnndx = elf_ndxscn (shstrscn);
- if (unlikely (shstrscnndx > SHN_HIRESERVE)
- || unlikely (shstrscnndx == SHN_XINDEX))
- {
- /* The index of the section header string sectio is too large. */
- Elf_Scn *scn = elf_getscn (ctx->out.elf, 0);
-
- /* Get the header for the zeroth section. */
- shdr = gelf_getshdr (scn, &shdr_mem);
- /* This better does not fail. */
- assert (shdr != NULL);
-
- /* The sh_link field of the zeroth section header contains the value. */
- shdr->sh_link = shstrscnndx;
-
- (void) gelf_update_shdr (scn, shdr);
-
- /* This is the sign for the overflow. */
- ehdr->e_shstrndx = SHN_XINDEX;
- }
- else
- ehdr->e_shstrndx = elf_ndxscn (shstrscn);
-
- gelf_update_ehdr (ctx->out.elf, ehdr);
-
- /* Write out the ELF file. */
- if (unlikely (elf_update (ctx->out.elf, ELF_C_WRITE_MMAP)) < 0)
- {
- __libasm_seterrno (ASM_E_LIBELF);
- result = -1;
- }
-
- /* We do not need the section header and symbol string tables anymore. */
- free (shstrtabdata->d_buf);
- if (strtabdata != NULL)
- free (strtabdata->d_buf);
- /* We might have allocated the extended symbol table index. */
- if (xndxdata != NULL)
- free (xndxdata->d_buf);
-
- /* Free section groups memory. */
- AsmScnGrp_t *scngrp = ctx->groups;
- if (scngrp != NULL)
- do
- free (elf_getdata (scngrp->scn, NULL)->d_buf);
- while ((scngrp = scngrp->next) != ctx->groups);
-
- /* Finalize the ELF handling. */
- if (unlikely (elf_end (ctx->out.elf)) != 0)
- {
- __libasm_seterrno (ASM_E_LIBELF);
- result = -1;
- }
-
- /* Free the temporary resources. */
- free (symtab);
-
- return result;
-}
-
-
-int
-asm_end (ctx)
- AsmCtx_t *ctx;
-{
- int result;
-
- if (ctx == NULL)
- /* Something went wrong earlier. */
- return -1;
-
- result = unlikely (ctx->textp) ? text_end (ctx) : binary_end (ctx);
- if (result != 0)
- return result;
-
- /* Make the new file globally readable and user/group-writable. */
- if (fchmod (ctx->fd, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH) != 0)
- {
- __libasm_seterrno (ASM_E_CANNOT_CHMOD);
- return -1;
- }
-
- /* Rename output file. */
- if (rename (ctx->tmp_fname, ctx->fname) != 0)
- {
- __libasm_seterrno (ASM_E_CANNOT_RENAME);
- return -1;
- }
-
- /* Free the resources. */
- __libasm_finictx (ctx);
-
- return 0;
-}
-
-
-static void
-free_section (AsmScn_t *scnp)
-{
- void *oldp;
-
- if (scnp->subnext != NULL)
- free_section (scnp->subnext);
-
- struct AsmData *data = scnp->content;
- if (data != NULL)
- do
- {
- oldp = data;
- data = data->next;
- free (oldp);
- }
- while (oldp != scnp->content);
-
- free (scnp);
-}
-
-
-void
-__libasm_finictx (ctx)
- AsmCtx_t *ctx;
-{
- /* Iterate through section table and free individual entries. */
- AsmScn_t *scn = ctx->section_list;
- while (scn != NULL)
- {
- AsmScn_t *oldp = scn;
- scn = scn->allnext;
- free_section (oldp);
- }
-
- /* Free the resources of the symbol table. */
- void *runp = NULL;
- AsmSym_t *sym;
- while ((sym = asm_symbol_tab_iterate (&ctx->symbol_tab, &runp)) != NULL)
- free (sym);
- asm_symbol_tab_free (&ctx->symbol_tab);
-
-
- /* Free section groups. */
- AsmScnGrp_t *scngrp = ctx->groups;
- if (scngrp != NULL)
- do
- {
- AsmScnGrp_t *oldp = scngrp;
-
- scngrp = scngrp->next;
- free (oldp);
- }
- while (scngrp != ctx->groups);
-
-
- if (unlikely (ctx->textp))
- {
- /* Close the stream. */
- fclose (ctx->out.file);
- }
- else
- {
- /* Close the output file. */
- /* XXX We should test for errors here but what would we do if we'd
- find any. */
- (void) close (ctx->fd);
-
- /* And the string tables. */
- ebl_strtabfree (ctx->section_strtab);
- ebl_strtabfree (ctx->symbol_strtab);
- }
-
- /* Initialize the lock. */
- rwlock_fini (ctx->lock);
-
- /* Finally free the data structure. */
- free (ctx);
-}
diff --git a/libasm/asm_error.c b/libasm/asm_error.c
deleted file mode 100644
index 9d2d81ed..00000000
--- a/libasm/asm_error.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* Error handling in libasm.
- Copyright (C) 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libintl.h>
-#include <stdbool.h>
-#include <stdlib.h>
-
-#include "libasmP.h"
-
-
-/* This is the key for the thread specific memory. */
-static tls_key_t key;
-
-/* The error number. Used in non-threaded programs. */
-static int global_error;
-static bool threaded;
-/* We need to initialize the thread-specific data. */
-once_define (static, once);
-
-/* The initialization and destruction functions. */
-static void init (void);
-static void free_key_mem (void *mem);
-
-
-int
-asm_errno (void)
-{
- int result;
-
- /* If we have not yet initialized the buffer do it now. */
- once_execute (once, init);
-
- if (threaded)
- {
- /* We have a key. Use it to get the thread-specific buffer. */
- int *buffer = getspecific (key);
- if (buffer == NULL)
- {
- /* No buffer allocated so far. */
- buffer = (int *) malloc (sizeof (int));
- if (buffer == NULL)
- /* No more memory available. We use the static buffer. */
- buffer = &global_error;
-
- setspecific (key, buffer);
-
- *buffer = 0;
- }
-
- result = *buffer;
- *buffer = ASM_E_NOERROR;
- return result;
- }
-
- result = global_error;
- global_error = ASM_E_NOERROR;
- return result;
-}
-
-
-void
-__libasm_seterrno (value)
- int value;
-{
- /* If we have not yet initialized the buffer do it now. */
- once_execute (once, init);
-
- if (threaded)
- {
- /* We have a key. Use it to get the thread-specific buffer. */
- int *buffer = getspecific (key);
- if (buffer == NULL)
- {
- /* No buffer allocated so far. */
- buffer = malloc (sizeof (int));
- if (buffer == NULL)
- /* No more memory available. We use the static buffer. */
- buffer = &global_error;
-
- setspecific (key, buffer);
- }
-
- *buffer = value;
- }
-
- global_error = value;
-}
-
-
-/* Return the appropriate message for the error. */
-static const char *msgs[ASM_E_NUM] =
-{
- [ASM_E_NOERROR] = N_("no error"),
- [ASM_E_NOMEM] = N_("out of memory"),
- [ASM_E_CANNOT_CREATE] = N_("cannot create output file"),
- [ASM_E_INVALID] = N_("invalid parameter"),
- [ASM_E_CANNOT_CHMOD] = N_("cannot change mode of output file"),
- [ASM_E_CANNOT_RENAME] = N_("cannot rename output file"),
- [ASM_E_DUPLSYM] = N_("duplicate symbol"),
- [ASM_E_TYPE] = N_("invalid section type for operation")
-};
-
-const char *
-asm_errmsg (error)
- int error;
-{
- int last_error;
-
- /* If we have not yet initialized the buffer do it now. */
- once_execute (once, init);
-
- if ((error == 0 || error == -1) && threaded)
- {
- /* We have a key. Use it to get the thread-specific buffer. */
- int *buffer = (int *) getspecific (key);
- if (buffer == NULL)
- {
- /* No buffer allocated so far. */
- buffer = (int *) malloc (sizeof (int));
- if (buffer == NULL)
- /* No more memory available. We use the static buffer. */
- buffer = &global_error;
-
- setspecific (key, buffer);
- *buffer = 0;
- }
-
- last_error = *buffer;
- }
- else
- last_error = global_error;
-
- if (error < -1)
- return _("Unknown error");
- if (error == 0 && last_error == 0)
- /* No error. */
- return NULL;
-
- if (error != -1)
- last_error = error;
-
- if (last_error == ASM_E_LIBELF)
- return elf_errmsg (-1);
-
- return _(msgs[last_error]);
-}
-
-
-/* Free the thread specific data, this is done if a thread terminates. */
-static void
-free_key_mem (void *mem)
-{
- free (mem);
- setspecific (key, NULL);
-}
-
-
-/* Initialize the key for the global variable. */
-static void
-init (void)
-{
- // XXX Screw you, gcc4, the unused function attribute does not work.
- __asm ("" :: "r" (free_key_mem));
-
- if (key_create (&key, free_key_mem) == 0)
- /* Creating the key succeeded. */
- threaded = true;
-}
diff --git a/libasm/asm_fill.c b/libasm/asm_fill.c
deleted file mode 100644
index 67b64417..00000000
--- a/libasm/asm_fill.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Determine fill pattern for a section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <libasmP.h>
-#include <system.h>
-
-
-int
-asm_fill (asmscn, bytes, len)
- AsmScn_t *asmscn;
- void *bytes;
- size_t len;
-{
- struct FillPattern *pattern;
- struct FillPattern *old_pattern;
-
- if (asmscn == NULL)
- /* Some earlier error. */
- return -1;
-
- if (bytes == NULL)
- /* Use the default pattern. */
- pattern = (struct FillPattern *) __libasm_default_pattern;
- else
- {
- /* Allocate appropriate memory. */
- pattern = (struct FillPattern *) malloc (sizeof (struct FillPattern)
- + len);
- if (pattern == NULL)
- return -1;
-
- pattern->len = len;
- memcpy (pattern->bytes, bytes, len);
- }
-
- old_pattern = asmscn->pattern;
- asmscn->pattern = pattern;
-
- /* Free the old data structure if we have allocated it. */
- if (old_pattern != __libasm_default_pattern)
- free (old_pattern);
-
- return 0;
-}
diff --git a/libasm/asm_getelf.c b/libasm/asm_getelf.c
deleted file mode 100644
index 3bbb0d90..00000000
--- a/libasm/asm_getelf.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Return ELF descriptor associated with the assembler context.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stddef.h>
-
-#include <libasmP.h>
-
-
-Elf *
-asm_getelf (ctx)
- AsmCtx_t *ctx;
-{
- return ctx != NULL ? ctx->out.elf : NULL;
-}
diff --git a/libasm/asm_newabssym.c b/libasm/asm_newabssym.c
deleted file mode 100644
index fba46f0f..00000000
--- a/libasm/asm_newabssym.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Create new ABS symbol.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <libasmP.h>
-#include <system.h>
-
-
-/* Object for special COMMON section. */
-static const AsmScn_t __libasm_abs_scn =
- {
- .data = {
- .main = {
- .scn = ASM_ABS_SCN
- }
- }
- };
-
-
-AsmSym_t *
-asm_newabssym (ctx, name, size, value, type, binding)
- AsmCtx_t *ctx;
- const char *name;
- GElf_Xword size;
- GElf_Addr value;
- int type;
- int binding;
-{
- AsmSym_t *result;
-
- if (ctx == NULL)
- /* Something went wrong before. */
- return NULL;
-
- /* Common symbols are public. Therefore the user must provide a
- name. */
- if (name == NULL)
- {
- __libasm_seterrno (ASM_E_INVALID);
- return NULL;
- }
-
- rwlock_wrlock (ctx->lock);
-
- result = (AsmSym_t *) malloc (sizeof (AsmSym_t));
- if (result == NULL)
- return NULL;
-
- result->scn = (AsmScn_t *) &__libasm_abs_scn;
- result->size = size;
- result->type = type;
- result->binding = binding;
- result->symidx = 0;
- result->strent = ebl_strtabadd (ctx->symbol_strtab, name, 0);
-
- /* The value of an ABS symbol must not be modified. Since there are
- no subsection and the initial offset of the section is 0 we can
- get the alignment recorded by storing it into the offset
- field. */
- result->offset = value;
-
- if (unlikely (ctx->textp))
- {
- /* An absolute symbol can be defined by giving a symbol a
- specific value. */
- if (binding == STB_GLOBAL)
- fprintf (ctx->out.file, "\t.globl %s\n", name);
- else if (binding == STB_WEAK)
- fprintf (ctx->out.file, "\t.weak %s\n", name);
-
- if (type == STT_OBJECT)
- fprintf (ctx->out.file, "\t.type %s,@object\n", name);
- else if (type == STT_FUNC)
- fprintf (ctx->out.file, "\t.type %s,@function\n", name);
-
- fprintf (ctx->out.file, "%s = %llu\n",
- name, (unsigned long long int) value);
-
- if (size != 0)
- fprintf (ctx->out.file, "\t.size %s, %llu\n",
- name, (unsigned long long int) size);
- }
- else
- {
- /* Put the symbol in the hash table so that we can later find it. */
- if (asm_symbol_tab_insert (&ctx->symbol_tab, elf_hash (name), result)
- != 0)
- {
- /* The symbol already exists. */
- __libasm_seterrno (ASM_E_DUPLSYM);
- free (result);
- result = NULL;
- }
- else if (name != NULL && asm_emit_symbol_p (name))
- /* Only count non-private symbols. */
- ++ctx->nsymbol_tab;
- }
-
- rwlock_unlock (ctx->lock);
-
- return result;
-}
diff --git a/libasm/asm_newcomsym.c b/libasm/asm_newcomsym.c
deleted file mode 100644
index 61e5a909..00000000
--- a/libasm/asm_newcomsym.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Create new COMMON symbol.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <libasmP.h>
-#include <system.h>
-
-
-/* Object for special COMMON section. */
-static const AsmScn_t __libasm_com_scn =
- {
- .data = {
- .main = {
- .scn = ASM_COM_SCN
- }
- }
- };
-
-
-AsmSym_t *
-asm_newcomsym (ctx, name, size, align)
- AsmCtx_t *ctx;
- const char *name;
- GElf_Xword size;
- GElf_Addr align;
-{
- AsmSym_t *result;
-
- if (ctx == NULL)
- /* Something went wrong before. */
- return NULL;
-
- /* Common symbols are public. Therefore the user must provide a
- name. */
- if (name == NULL)
- {
- __libasm_seterrno (ASM_E_INVALID);
- return NULL;
- }
-
- rwlock_wrlock (ctx->lock);
-
- result = (AsmSym_t *) malloc (sizeof (AsmSym_t));
- if (result == NULL)
- return NULL;
-
- result->scn = (AsmScn_t *) &__libasm_com_scn;
- result->size = size;
- /* XXX Do we have to allow a different type? */
- result->type = STT_OBJECT;
- /* XXX Do we have to allow a different binding? */
- result->binding = STB_GLOBAL;
- result->symidx = 0;
- result->strent = ebl_strtabadd (ctx->symbol_strtab, name, 0);
-
- /* The value of a COM symbol is the alignment. Since there are no
- subsection and the initial offset of the section is 0 we can get
- the alignment recorded by storing it into the offset field. */
- result->offset = align;
-
- if (unlikely (ctx->textp))
- fprintf (ctx->out.file, "\t.comm %s, %" PRIuMAX ", %" PRIuMAX "\n",
- name, (uintmax_t) size, (uintmax_t) align);
- else
- {
- /* Put the symbol in the hash table so that we can later find it. */
- if (asm_symbol_tab_insert (&ctx->symbol_tab, elf_hash (name), result)
- != 0)
- {
- /* The symbol already exists. */
- __libasm_seterrno (ASM_E_DUPLSYM);
- free (result);
- result = NULL;
- }
- else if (name != NULL && asm_emit_symbol_p (name))
- /* Only count non-private symbols. */
- ++ctx->nsymbol_tab;
- }
-
- rwlock_unlock (ctx->lock);
-
- return result;
-}
diff --git a/libasm/asm_newscn.c b/libasm/asm_newscn.c
deleted file mode 100644
index 75890a60..00000000
--- a/libasm/asm_newscn.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/* Create new section in output file.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <error.h>
-#include <libintl.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <libasmP.h>
-#include <libelf.h>
-#include <system.h>
-
-
-/* Memory for the default pattern. The type uses a flexible array
- which does work well with a static initializer. So we play some
- dirty tricks here. */
-static const struct
-{
- struct FillPattern pattern;
- char zero;
-} xdefault_pattern =
- {
- .pattern =
- {
- .len = 1
- },
- .zero = '\0'
- };
-const struct FillPattern *__libasm_default_pattern = &xdefault_pattern.pattern;
-
-
-static AsmScn_t *
-text_newscn (AsmScn_t *result, GElf_Word type, GElf_Xword flags)
-{
- /* Buffer where we construct the flag string. */
- char flagstr[sizeof (GElf_Xword) * 8 + 5];
- char *wp = flagstr;
- const char *typestr = "";
-
- /* Only write out the flag string if this is the first time the
- section is selected. Some assemblers cannot cope with the
- .section pseudo-op otherwise. */
- wp = stpcpy (wp, ", \"");
-
- if (flags & SHF_WRITE)
- *wp++ = 'w';
- if (flags & SHF_ALLOC)
- *wp++ = 'a';
- if (flags & SHF_EXECINSTR)
- *wp++ = 'x';
- if (flags & SHF_MERGE)
- *wp++ = 'M';
- if (flags & SHF_STRINGS)
- *wp++ = 'S';
- if (flags & SHF_LINK_ORDER)
- *wp++ = 'L';
-
- *wp++ = '"';
-
- if (type == SHT_PROGBITS)
- typestr = ",@progbits";
- else if (type == SHT_NOBITS)
- typestr = ",@nobits";
-
- /* Terminate the string. */
- *wp = '\0';
-
- printf ("\t.section \"%s\"%s%s\n", result->name, flagstr, typestr);
-
- return result;
-}
-
-
-static AsmScn_t *
-binary_newscn (AsmScn_t *result, GElf_Word type, GElf_Xword flags,
- size_t scnname_len)
-{
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
- Elf_Scn *scn;
-
- /* The initial subsection has the number zero. */
- result->subsection_id = 0;
-
- /* We start at offset zero. */
- result->offset = 0;
- /* And generic alignment. */
- result->max_align = 1;
-
- /* No output yet. */
- result->content = NULL;
-
- /* Put the default fill pattern in place. */
- result->pattern = (struct FillPattern *) __libasm_default_pattern;
-
- /* There are no subsections so far. */
- result->subnext = NULL;
-
- /* Add the name to the section header string table. */
- result->data.main.strent = ebl_strtabadd (result->ctx->section_strtab,
- result->name, scnname_len);
- assert (result->data.main.strent != NULL);
-
- /* Create the new ELF section. */
- result->data.main.scn = scn = elf_newscn (result->ctx->out.elf);
- if (scn == NULL)
- {
- free (result);
- __libasm_seterrno (ASM_E_LIBELF);
- return NULL;
- }
-
- /* Not part of a section group (yet). */
- result->data.main.next_in_group = NULL;
-
- /* Remember the flags. */
- shdr = gelf_getshdr (scn, &shdr_mem);
-
- shdr->sh_flags = flags;
- result->type = shdr->sh_type = type;
-
- (void) gelf_update_shdr (scn, shdr);
-
- return result;
-}
-
-
-AsmScn_t *
-asm_newscn (ctx, scnname, type, flags)
- AsmCtx_t *ctx;
- const char *scnname;
- GElf_Word type;
- GElf_Xword flags;
-{
- size_t scnname_len = strlen (scnname) + 1;
- unsigned long int hval;
- AsmScn_t *result;
-
- /* If no context is given there might be an earlier error. */
- if (ctx == NULL)
- return NULL;
-
- /* Check whether only flags are set which areselectable by the user. */
- if (unlikely ((flags & ~(SHF_WRITE | SHF_ALLOC | SHF_EXECINSTR | SHF_MERGE
- | SHF_STRINGS | SHF_LINK_ORDER)) != 0)
- /* We allow only two section types: data and data without file
- representation. */
- || (type != SHT_PROGBITS && unlikely (type != SHT_NOBITS)))
- {
- __libasm_seterrno (ASM_E_INVALID);
- return NULL;
- }
-
- hval = elf_hash (scnname);
-
- rwlock_wrlock (ctx->lock);
-
- /* This is a new section. */
- result = (AsmScn_t *) malloc (sizeof (AsmScn_t) + scnname_len);
- if (result != NULL)
- {
- /* Add the name. */
- memcpy (result->name, scnname, scnname_len);
-
- /* Add the reference to the context. */
- result->ctx = ctx;
-
- /* Perform operations according to output mode. */
- result = (unlikely (ctx->textp)
- ? text_newscn (result, type, flags)
- : binary_newscn (result, type, flags, scnname_len));
-
- /* If everything went well finally add the new section to the hash
- table. */
- if (result != NULL)
- {
- result->allnext = ctx->section_list;
- ctx->section_list = result;
- }
- }
-
- rwlock_unlock (ctx->lock);
-
- return result;
-}
-INTDEF(asm_newscn)
diff --git a/libasm/asm_newscn_ingrp.c b/libasm/asm_newscn_ingrp.c
deleted file mode 100644
index dc0c4351..00000000
--- a/libasm/asm_newscn_ingrp.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Create new section, which is member of a group, in output file.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-
-#include "libasmP.h"
-
-
-AsmScn_t *
-asm_newscn_ingrp (ctx, scnname, type, flags, grp)
- AsmCtx_t *ctx;
- const char *scnname;
- GElf_Word type;
- GElf_Xword flags;
- AsmScnGrp_t *grp;
-{
- AsmScn_t *result = __asm_newscn_internal (ctx, scnname, type, flags);
-
- if (likely (result != NULL))
- {
- /* We managed to create a section group. Add it to the section
- group. */
- if (grp->nmembers == 0)
- {
- assert (grp->members == NULL);
- grp->members = result->data.main.next_in_group = result;
- }
- else
- {
- result->data.main.next_in_group
- = grp->members->data.main.next_in_group;
- grp->members = grp->members->data.main.next_in_group = result;
- }
-
- ++grp->nmembers;
-
- /* Set the SHF_GROUP flag. */
- if (likely (! ctx->textp))
- {
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (result->data.main.scn, &shdr_mem);
-
- assert (shdr != NULL);
- shdr->sh_flags |= SHF_GROUP;
-
- (void) gelf_update_shdr (result->data.main.scn, shdr);
- }
- }
-
- return result;
-}
diff --git a/libasm/asm_newscngrp.c b/libasm/asm_newscngrp.c
deleted file mode 100644
index c1c8be3e..00000000
--- a/libasm/asm_newscngrp.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Create new section group.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "libasmP.h"
-#include <system.h>
-
-
-
-AsmScnGrp_t *
-asm_newscngrp (ctx, grpname, signature, flags)
- AsmCtx_t *ctx;
- const char *grpname;
- AsmSym_t *signature;
- Elf32_Word flags;
-{
- AsmScnGrp_t *result;
- size_t grpname_len = strlen (grpname) + 1;
-
- if (ctx == NULL)
- return NULL;
-
- if ((flags & ~GRP_COMDAT) != 0)
- {
- /* This is not a supported flag. */
- __libasm_seterrno (ASM_E_INVALID);
- return NULL;
- }
-
- result = (AsmScnGrp_t *) malloc (sizeof (AsmScnGrp_t) + grpname_len);
- if (result == NULL)
- return NULL;
-
- result->signature = signature;
- result->members = NULL;
- result->nmembers = 0;
- result->flags = flags;
-
- memcpy (result->name, grpname, grpname_len);
- result->strent = ebl_strtabadd (ctx->section_strtab, result->name,
- grpname_len);
-
- if (unlikely (ctx->textp))
- // XXX TBI. What is the format?
- abort ();
- else
- {
- result->scn = elf_newscn (ctx->out.elf);
- if (result->scn == NULL)
- {
- /* Couldn't allocate a new section. */
- __libasm_seterrno (ASM_E_LIBELF);
- free (result);
- return NULL;
- }
- }
-
- /* Enqueue is the context data structure. */
- if (ctx->ngroups == 0)
- {
- assert (ctx->groups == NULL);
- ctx->groups = result->next = result;
- }
- else
- {
- result->next = ctx->groups->next;
- ctx->groups = ctx->groups->next = result;
- }
- ++ctx->ngroups;
-
- return result;
-}
diff --git a/libasm/asm_newsubscn.c b/libasm/asm_newsubscn.c
deleted file mode 100644
index e767720e..00000000
--- a/libasm/asm_newsubscn.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Create new subsection section in given section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdlib.h>
-
-#include <libasmP.h>
-#include <system.h>
-
-
-AsmScn_t *
-asm_newsubscn (asmscn, nr)
- AsmScn_t *asmscn;
- unsigned int nr;
-{
- AsmScn_t *runp;
- AsmScn_t *newp;
-
- /* Just return if no section is given. The error must have been
- somewhere else. */
- if (asmscn == NULL)
- return NULL;
-
- /* Determine whether there is already a subsection with this number. */
- runp = asmscn->subsection_id == 0 ? asmscn : asmscn->data.up;
- while (1)
- {
- if (runp->subsection_id == nr)
- /* Found it. */
- return runp;
-
- if (runp->subnext == NULL || runp->subnext->subsection_id > nr)
- break;
-
- runp = runp->subnext;
- }
-
- newp = (AsmScn_t *) malloc (sizeof (AsmScn_t));
- if (newp == NULL)
- return NULL;
-
- /* Same assembler context than the original section. */
- newp->ctx = runp->ctx;
-
- /* User provided the subsectio nID. */
- newp->subsection_id = nr;
-
- /* Inherit the parent's type. */
- newp->type = runp->type;
-
- /* Pointer to the zeroth subsection. */
- newp->data.up = runp->subsection_id == 0 ? runp : runp->data.up;
-
- /* We start at offset zero. */
- newp->offset = 0;
- /* And generic alignment. */
- newp->max_align = 1;
-
- /* No output yet. */
- newp->content = NULL;
-
- /* Inherit the fill pattern from the section this one is derived from. */
- newp->pattern = asmscn->pattern;
-
- /* Enqueue at the right position in the list. */
- newp->subnext = runp->subnext;
- runp->subnext = newp;
-
- return newp;
-}
diff --git a/libasm/asm_newsym.c b/libasm/asm_newsym.c
deleted file mode 100644
index 6a6df2d8..00000000
--- a/libasm/asm_newsym.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Define new symbol for current position in given section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <libasmP.h>
-#include <system.h>
-
-
-AsmSym_t *
-asm_newsym (asmscn, name, size, type, binding)
- AsmScn_t *asmscn;
- const char *name;
- GElf_Xword size;
- int type;
- int binding;
-{
-#define TEMPSYMLEN 10
- char tempsym[TEMPSYMLEN];
- AsmSym_t *result;
-
- if (asmscn == NULL)
- /* Something went wrong before. */
- return NULL;
-
- /* Generate a temporary symbol if necessary. */
- if (name == NULL)
- {
- /* If a local symbol name is created the symbol better have
- local binding. */
- if (binding != STB_LOCAL)
- {
- __libasm_seterrno (ASM_E_INVALID);
- return NULL;
- }
-
- // XXX This requires getting the format from the machine backend. */
- snprintf (tempsym, TEMPSYMLEN, ".L%07u", asmscn->ctx->tempsym_count++);
- }
-
- result = (AsmSym_t *) malloc (sizeof (AsmSym_t));
- if (result == NULL)
- return NULL;
-
- rwlock_wrlock (asmscn->ctx->lock);
-
- result->scn = asmscn;
- result->offset = asmscn->offset;
- result->size = size;
- result->type = type;
- result->binding = binding;
- result->symidx = 0;
- result->strent = ebl_strtabadd (asmscn->ctx->symbol_strtab,
- name ?: tempsym, 0);
-
- if (unlikely (asmscn->ctx->textp))
- {
- /* We are only interested in the name and don't need to know whether
- it is a local name or not. */
- if (name == NULL)
- name = tempsym;
-
- /* First print the binding pseudo-op. */
- if (binding == STB_GLOBAL)
- fprintf (asmscn->ctx->out.file, "\t.globl\t%s\n", name);
- else if (binding == STB_WEAK)
- fprintf (asmscn->ctx->out.file, "\t.weak\t%s\n", name);
-
- /* Next the symbol type. */
- if (type == STT_OBJECT)
- fprintf (asmscn->ctx->out.file, "\t.type\t%s,@object\n", name);
- else if (type == STT_FUNC)
- fprintf (asmscn->ctx->out.file, "\t.type\t%s,@function\n", name);
-
- /* Finally the size and the label. */
- fprintf (asmscn->ctx->out.file, "\t.size\t%s,%" PRIuMAX "\n%s:\n",
- name, (uintmax_t) size, name);
- }
- else
- {
- /* Put the symbol in the hash table so that we can later find it. */
- if (asm_symbol_tab_insert (&asmscn->ctx->symbol_tab,
- elf_hash (name ?: tempsym), result) != 0)
- {
- /* The symbol already exists. */
- __libasm_seterrno (ASM_E_DUPLSYM);
- free (result);
- result = NULL;
- }
- else if (name != NULL && asm_emit_symbol_p (name))
- /* Only count non-private symbols. */
- ++asmscn->ctx->nsymbol_tab;
- }
-
- rwlock_unlock (asmscn->ctx->lock);
-
- return result;
-}
diff --git a/libasm/asm_scngrp_newsignature.c b/libasm/asm_scngrp_newsignature.c
deleted file mode 100644
index d4042a24..00000000
--- a/libasm/asm_scngrp_newsignature.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Update signature of section group.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libasmP.h"
-
-
-int
-asm_scngrp_newsignature (grp, signature)
- AsmScnGrp_t *grp;
- AsmSym_t *signature;
-{
- if (grp == NULL || signature == NULL)
- return 1;
-
- grp->signature = signature;
-
- return 0;
-}
diff --git a/libasm/libasm.h b/libasm/libasm.h
deleted file mode 100644
index dbdd6fc2..00000000
--- a/libasm/libasm.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/* Interface for libasm.
- Copyright (C) 2002 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBASM_H
-#define _LIBASM_H 1
-
-#include <stdbool.h>
-#include <stdint.h>
-
-#include <gelf.h>
-
-
-/* Opaque type for the assembler context descriptor. */
-typedef struct AsmCtx AsmCtx_t;
-
-/* Opaque type for a section. */
-typedef struct AsmScn AsmScn_t;
-
-/* Opaque type for a section group. */
-typedef struct AsmScnGrp AsmScnGrp_t;
-
-/* Opaque type for a symbol. */
-typedef struct AsmSym AsmSym_t;
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Create output file and return descriptor for assembler context. If
- TEXTP is true the output is an assembler format text file.
- Otherwise an object file is created. The MACHINE parameter
- corresponds to an EM_ constant from <elf.h>, KLASS specifies the
- class (32- or 64-bit), and DATA specifies the byte order (little or
- big endian). */
-extern AsmCtx_t *asm_begin (const char *fname, bool textp, int machine,
- int klass, int data);
-
-/* Abort the operation on the assembler context and free all resources. */
-extern int asm_abort (AsmCtx_t *ctx);
-
-/* Finalize output file and free all resources. */
-extern int asm_end (AsmCtx_t *ctx);
-
-
-/* Return handle for the named section. If it was not used before
- create it. */
-extern AsmScn_t *asm_newscn (AsmCtx_t *ctx, const char *scnname,
- GElf_Word type, GElf_Xword flags);
-
-
-/* Similar to 'asm_newscn', but make it part of section group GRP. */
-extern AsmScn_t *asm_newscn_ingrp (AsmCtx_t *ctx, const char *scnname,
- GElf_Word type, GElf_Xword flags,
- AsmScnGrp_t *grp);
-
-/* Create new subsection NR in the given section. */
-extern AsmScn_t *asm_newsubscn (AsmScn_t *asmscn, unsigned int nr);
-
-
-/* Return handle for new section group. The signature symbol can be
- set later. */
-extern AsmScnGrp_t *asm_newscngrp (AsmCtx_t *ctx, const char *grpname,
- AsmSym_t *signature, Elf32_Word flags);
-
-/* Set or overwrite signature symbol for group. */
-extern int asm_scngrp_newsignature (AsmScnGrp_t *grp, AsmSym_t *signature);
-
-
-/* Add zero terminated string STR of size LEN to (sub)section ASMSCN. */
-extern int asm_addstrz (AsmScn_t *asmscn, const char *str, size_t len);
-
-/* Add 8-bit signed integer NUM to (sub)section ASMSCN. */
-extern int asm_addint8 (AsmScn_t *asmscn, int8_t num);
-
-/* Add 8-bit unsigned integer NUM to (sub)section ASMSCN. */
-extern int asm_adduint8 (AsmScn_t *asmscn, uint8_t num);
-
-/* Add 16-bit signed integer NUM to (sub)section ASMSCN. */
-extern int asm_addint16 (AsmScn_t *asmscn, int16_t num);
-
-/* Add 16-bit unsigned integer NUM to (sub)section ASMSCN. */
-extern int asm_adduint16 (AsmScn_t *asmscn, uint16_t num);
-
-/* Add 32-bit signed integer NUM to (sub)section ASMSCN. */
-extern int asm_addint32 (AsmScn_t *asmscn, int32_t num);
-
-/* Add 32-bit unsigned integer NUM to (sub)section ASMSCN. */
-extern int asm_adduint32 (AsmScn_t *asmscn, uint32_t num);
-
-/* Add 64-bit signed integer NUM to (sub)section ASMSCN. */
-extern int asm_addint64 (AsmScn_t *asmscn, int64_t num);
-
-/* Add 64-bit unsigned integer NUM to (sub)section ASMSCN. */
-extern int asm_adduint64 (AsmScn_t *asmscn, uint64_t num);
-
-
-/* Add signed little endian base 128 integer NUM to (sub)section ASMSCN. */
-extern int asm_addsleb128 (AsmScn_t *asmscn, int32_t num);
-
-/* Add unsigned little endian base 128 integer NUM to (sub)section ASMSCN. */
-extern int asm_adduleb128 (AsmScn_t *asmscn, uint32_t num);
-
-
-/* Define new symbol NAME for current position in given section ASMSCN. */
-extern AsmSym_t *asm_newsym (AsmScn_t *asmscn, const char *name,
- GElf_Xword size, int type, int binding);
-
-
-/* Define new common symbol NAME with given SIZE and alignment. */
-extern AsmSym_t *asm_newcomsym (AsmCtx_t *ctx, const char *name,
- GElf_Xword size, GElf_Addr align);
-
-/* Define new common symbol NAME with given SIZE, VALUE, TYPE, and BINDING. */
-extern AsmSym_t *asm_newabssym (AsmCtx_t *ctx, const char *name,
- GElf_Xword size, GElf_Addr value,
- int type, int binding);
-
-
-/* Align (sub)section offset according to VALUE. */
-extern int asm_align (AsmScn_t *asmscn, GElf_Word value);
-
-/* Set the byte pattern used to fill gaps created by alignment. */
-extern int asm_fill (AsmScn_t *asmscn, void *bytes, size_t len);
-
-
-/* Return ELF descriptor created for the output file of the given context. */
-extern Elf *asm_getelf (AsmCtx_t *ctx);
-
-
-/* Return error code of last failing function call. This value is kept
- separately for each thread. */
-extern int asm_errno (void);
-
-/* Return error string for ERROR. If ERROR is zero, return error string
- for most recent error or NULL is none occurred. If ERROR is -1 the
- behaviour is similar to the last case except that not NULL but a legal
- string is returned. */
-extern const char *asm_errmsg (int __error);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* libasm.h */
diff --git a/libasm/libasm.map b/libasm/libasm.map
deleted file mode 100644
index b0b5b5b7..00000000
--- a/libasm/libasm.map
+++ /dev/null
@@ -1,33 +0,0 @@
-ELFUTILS_1.0 {
- global:
- asm_abort;
- asm_addint16;
- asm_addint32;
- asm_addint64;
- asm_addint8;
- asm_addsleb128;
- asm_addstrz;
- asm_adduint16;
- asm_adduint32;
- asm_adduint64;
- asm_adduint8;
- asm_adduleb128;
- asm_align;
- asm_begin;
- asm_end;
- asm_errmsg;
- asm_errno;
- asm_fill;
- asm_getelf;
- asm_newabssym;
- asm_newcomsym;
- asm_newscn;
- asm_newscn_ingrp;
- asm_newscngrp;
- asm_newsubscn;
- asm_newsym;
- asm_scngrp_newsignature;
-
- local:
- *;
-};
diff --git a/libasm/libasmP.h b/libasm/libasmP.h
deleted file mode 100644
index 2e4954f6..00000000
--- a/libasm/libasmP.h
+++ /dev/null
@@ -1,268 +0,0 @@
-/* Internal definitions for libasm.
- Copyright (C) 2002, 2004 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBASMP_H
-#define _LIBASMP_H 1
-
-#include <stdio.h>
-
-#include <libasm.h>
-#include <libebl.h>
-
-/* gettext helper macros. */
-#define _(Str) dgettext ("elfutils", Str)
-
-
-/* Known error codes. */
-enum
- {
- ASM_E_NOERROR,
- ASM_E_NOMEM, /* No more memory. */
- ASM_E_CANNOT_CREATE, /* Output file cannot be created. */
- ASM_E_INVALID, /* Invalid parameters. */
- ASM_E_CANNOT_CHMOD, /* Cannot change mode of output file. */
- ASM_E_CANNOT_RENAME, /* Cannot rename output file. */
- ASM_E_DUPLSYM, /* Duplicate symbol definition. */
- ASM_E_LIBELF, /* Refer to error in libelf. */
- ASM_E_TYPE, /* Invalid section type for operation. */
- ASM_E_NUM /* Keep this entry as the last. */
- };
-
-
-/* Special sections. */
-#define ASM_ABS_SCN ((Elf_Scn *) 1)
-#define ASM_COM_SCN ((Elf_Scn *) 2)
-
-
-/* And the hash table for symbols. */
-#include <symbolhash.h>
-
-
-/* Descriptor for a section. */
-struct AsmScn
-{
- /* The underlying assembler context. */
- AsmCtx_t *ctx;
-
- /* Subsection ID. */
- unsigned int subsection_id;
-
- /* Section type. */
- GElf_Word type;
-
- union
- {
- /* Data only stored in the record for subsection zero. */
- struct
- {
- /* The ELF section. */
- Elf_Scn *scn;
-
- /* Entry in the section header string table. */
- struct Ebl_Strent *strent;
-
- /* Next member of group. */
- struct AsmScn *next_in_group;
- } main;
-
- /* Pointer to the record for subsection zero. */
- AsmScn_t *up;
- } data;
-
- /* Current offset in the (sub)section. */
- GElf_Off offset;
- /* Maximum alignment of the section so far. */
- GElf_Word max_align;
-
- /* Section content. */
- struct AsmData
- {
- /* Currently used number of bytes in the block. */
- size_t len;
-
- /* Number of bytes allocated. */
- size_t maxlen;
-
- /* Pointer to the next block. */
- struct AsmData *next;
-
- /* The actual data. */
- char data[flexarr_size];
- } *content;
-
- /* Fill pattern. */
- struct FillPattern
- {
- size_t len;
- char bytes[flexarr_size];
- } *pattern;
-
- /* Next subsection. */
- AsmScn_t *subnext;
-
- /* List of all allocated sections. */
- AsmScn_t *allnext;
-
- /* Name of the section. */
- char name[flexarr_size];
-};
-
-
-/* Descriptor used for the assembling session. */
-struct AsmCtx
-{
- /* File descriptor of the temporary file. */
- int fd;
-
- /* True if text output is wanted. */
- bool textp;
-
- /* Output file handle. */
- union
- {
- /* ELF descriptor of the temporary file. */
- Elf *elf;
- /* I/O stream for text output. */
- FILE *file;
- } out;
-
-
- /* List with defined sections. */
- AsmScn_t *section_list;
- /* Section header string table. */
- struct Ebl_Strtab *section_strtab;
-
- /* Table with defined symbols. */
- asm_symbol_tab symbol_tab;
- /* Number of symbols in the table. */
- unsigned int nsymbol_tab;
- /* Symbol string table. */
- struct Ebl_Strtab *symbol_strtab;
-
- /* List of section groups. */
- struct AsmScnGrp *groups;
- /* Number of section groups. */
- size_t ngroups;
-
- /* Current required alignment for common symbols. */
- GElf_Word common_align;
-
- /* Lock to handle multithreaded programs. */
- rwlock_define (,lock);
-
- /* Counter for temporary symbols. */
- unsigned int tempsym_count;
-
- /* Name of the output file. */
- char *fname;
- /* The name of the temporary file. */
- char tmp_fname[flexarr_size];
-};
-
-
-/* Descriptor for a symbol. */
-struct AsmSym
-{
- /* Reference to the section which contains the symbol. */
- AsmScn_t *scn;
-
- /* Type of the symbol. */
- int8_t type;
- /* Binding of the symbol. */
- int8_t binding;
-
- /* Size of the symbol. */
- GElf_Xword size;
-
- /* Offset in the section. */
- GElf_Off offset;
-
- /* Symbol table index of the symbol in the symbol table. */
- size_t symidx;
-
- /* Reference to name of the symbol. */
- struct Ebl_Strent *strent;
-};
-
-
-/* Descriptor for section group. */
-struct AsmScnGrp
-{
- /* Entry in the section header string table. */
- struct Ebl_Strent *strent;
-
- /* The ELF section. */
- Elf_Scn *scn;
-
- /* The signature. */
- struct AsmSym *signature;
-
- /* First member. */
- struct AsmScn *members;
- /* Number of members. */
- size_t nmembers;
-
- /* Flags. */
- Elf32_Word flags;
-
- /* Next group. */
- struct AsmScnGrp *next;
-
- /* Name of the section group. */
- char name[flexarr_size];
-};
-
-
-/* The default fill pattern: one zero byte. */
-extern const struct FillPattern *__libasm_default_pattern
- attribute_hidden;
-
-
-/* Ensure there are at least LEN bytes available in the output buffer
- for ASMSCN. */
-extern int __libasm_ensure_section_space (AsmScn_t *asmscn, size_t len)
- internal_function;
-
-/* Free all resources associated with the assembler context. */
-extern void __libasm_finictx (AsmCtx_t *ctx) internal_function;
-
-/* Set error code. */
-extern void __libasm_seterrno (int err) internal_function;
-
-/* Return handle for the named section. If it was not used before
- create it. */
-extern AsmScn_t *__asm_newscn_internal (AsmCtx_t *ctx, const char *scnname,
- GElf_Word type, GElf_Xword flags)
- attribute_hidden;
-
-
-/* Internal aliases of the asm_addintXX functions. */
-extern int __asm_addint8_internal (AsmScn_t *asmscn, int8_t num)
- attribute_hidden;
-extern int __asm_addint16_internal (AsmScn_t *asmscn, int16_t num)
- attribute_hidden;
-extern int __asm_addint32_internal (AsmScn_t *asmscn, int32_t num)
- attribute_hidden;
-extern int __asm_addint64_internal (AsmScn_t *asmscn, int64_t num)
- attribute_hidden;
-
-
-
-/* Test whether given symbol is an internal symbol and if yes, whether
- we should nevertheless emit it in the symbol table. */
-// XXX The second part should probably be controlled by an option which
-// isn't implemented yet
-// XXX Also, the format will change with the backend.
-#define asm_emit_symbol_p(name) (strncmp (name, ".L", 2) != 0)
-
-#endif /* libasmP.h */
diff --git a/libasm/symbolhash.c b/libasm/symbolhash.c
deleted file mode 100644
index 62d2c852..00000000
--- a/libasm/symbolhash.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Symbol hash table implementation.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <string.h>
-
-#include <libasmP.h>
-#include <libebl.h>
-
-/* Definitions for the symbol hash table. */
-#define TYPE AsmSym_t *
-#define NAME asm_symbol_tab
-#define ITERATE 1
-#define REVERSE 1
-#define COMPARE(a, b) \
- strcmp (ebl_string ((a)->strent), ebl_string ((b)->strent))
-
-#define next_prime __libasm_next_prime
-extern size_t next_prime (size_t) attribute_hidden;
-
-#include "../lib/dynamicsizehash.c"
-
-#undef next_prime
-#define next_prime attribute_hidden __libasm_next_prime
-#include "../lib/next_prime.c"
diff --git a/libasm/symbolhash.h b/libasm/symbolhash.h
deleted file mode 100644
index 4377b4b5..00000000
--- a/libasm/symbolhash.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef SYMBOLHASH_H
-#define SYMBOLHASH_H 1
-
-/* Definitions for the symbol hash table. */
-#define TYPE AsmSym_t *
-#define NAME asm_symbol_tab
-#define ITERATE 1
-#define COMPARE(a, b) \
- strcmp (ebl_string ((a)->strent), ebl_string ((b)->strent))
-#include <dynamicsizehash.h>
-
-#endif /* symbolhash.h */
diff --git a/libcpu/ChangeLog b/libcpu/ChangeLog
deleted file mode 100644
index c46ffcb6..00000000
--- a/libcpu/ChangeLog
+++ /dev/null
@@ -1,3 +0,0 @@
-2003-08-11 Ulrich Drepper <drepper@redhat.com>
-
- * Moved to CVS archive.
diff --git a/libcpu/Makefile b/libcpu/Makefile
deleted file mode 100644
index 744b5c09..00000000
--- a/libcpu/Makefile
+++ /dev/null
@@ -1,408 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# libcpu/Makefile. Generated from Makefile.in by configure.
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-SOURCES = $(libcpu_i386_a_SOURCES)
-
-srcdir = .
-top_srcdir = ..
-
-pkgdatadir = $(datadir)/elfutils
-pkglibdir = $(libdir)/elfutils
-pkgincludedir = $(includedir)/elfutils
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = /usr/bin/install -c
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = i686-pc-linux-gnu
-host_triplet = i686-pc-linux-gnu
-subdir = libcpu
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libcpu_i386_a_AR = $(AR) $(ARFLAGS)
-libcpu_i386_a_LIBADD =
-am_libcpu_i386_a_OBJECTS = i386_dis.$(OBJEXT)
-libcpu_i386_a_OBJECTS = $(am_libcpu_i386_a_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libcpu_i386_a_SOURCES)
-DIST_SOURCES = $(libcpu_i386_a_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run aclocal-1.9
-AMDEP_FALSE = #
-AMDEP_TRUE =
-AMTAR = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run tar
-AUTOCONF = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoconf
-AUTOHEADER = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoheader
-AUTOMAKE = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run automake-1.9
-AWK = gawk
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CFLAGS = -g -O2
-CPP = gcc -E
-CPPFLAGS =
-CYGPATH_W = echo
-DATADIRNAME = ${prefix}/share
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -Wall -Wshadow
-DEPDIR = .deps
-ECHO_C =
-ECHO_N = -n
-ECHO_T =
-EGREP = grep -E
-EXEEXT =
-GMSGFMT = /usr/bin/msgfmt
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
-INTLLIBS =
-LDFLAGS =
-LEX = flex
-LEXLIB = -lfl
-LEX_OUTPUT_ROOT = lex.yy
-LIBICONV = -liconv
-LIBINTL =
-LIBOBJS =
-LIBS =
-LOCALEDIR = ${prefix}/share
-LTLIBICONV = -liconv
-LTLIBINTL =
-LTLIBOBJS =
-MAKEINFO = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run makeinfo
-MKINSTALLDIRS = config/mkinstalldirs
-MSGFMT = /usr/bin/msgfmt
-MSGMERGE = /usr/bin/msgmerge
-MUDFLAP_FALSE =
-MUDFLAP_TRUE = #
-NATIVE_LD_FALSE =
-NATIVE_LD_TRUE = #
-OBJEXT = o
-PACKAGE = elfutils
-PACKAGE_BUGREPORT = http://bugzilla.redhat.com/bugzilla/
-PACKAGE_NAME = Red Hat elfutils
-PACKAGE_STRING = Red Hat elfutils 0.97
-PACKAGE_TARNAME = elfutils
-PACKAGE_VERSION = 0.97
-PATH_SEPARATOR = :
-POSUB = po
-RANLIB = ranlib
-SET_MAKE =
-SHELL = /bin/sh
-STRIP =
-USE_NLS = yes
-VERSION = 0.97
-XGETTEXT = /usr/bin/xgettext
-YACC = bison -y
-ac_ct_CC = gcc
-ac_ct_RANLIB = ranlib
-ac_ct_STRIP =
-am__fastdepCC_FALSE = #
-am__fastdepCC_TRUE =
-am__include = include
-am__leading_dot = .
-am__quote =
-am__tar = ${AMTAR} chof - "$$tardir"
-am__untar = ${AMTAR} xf -
-base_cpu = none
-bindir = ${exec_prefix}/bin
-build = i686-pc-linux-gnu
-build_alias =
-build_cpu = i686
-build_os = linux-gnu
-build_vendor = pc
-datadir = ${prefix}/share
-exec_prefix = ${prefix}
-host = i686-pc-linux-gnu
-host_alias =
-host_cpu = i686
-host_os = linux-gnu
-host_vendor = pc
-includedir = ${prefix}/include
-infodir = ${prefix}/info
-install_sh = /work/elfutils/stock/elfutils-0.97/config/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-localstatedir = ${prefix}/var
-mandir = ${prefix}/man
-mkdir_p = mkdir -p --
-oldincludedir = /usr/include
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-program_transform_name = s,x,x,
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-sysconfdir = ${prefix}/etc
-target_alias =
-INCLUDES = -I$(srcdir)
-noinst_LIBRARIES = libcpu_i386.a
-libcpu_i386_a_SOURCES = i386_dis.c
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits libcpu/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits libcpu/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libcpu_i386.a: $(libcpu_i386_a_OBJECTS) $(libcpu_i386_a_DEPENDENCIES)
- -rm -f libcpu_i386.a
- $(libcpu_i386_a_AR) libcpu_i386.a $(libcpu_i386_a_OBJECTS) $(libcpu_i386_a_LIBADD)
- $(RANLIB) libcpu_i386.a
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-include ./$(DEPDIR)/i386_dis.Po
-
-.c.o:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c $<
-
-.c.obj:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-noinstLIBRARIES ctags distclean distclean-compile \
- distclean-generic distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-exec install-exec-am install-info \
- install-info-am install-man install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-info-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libcpu/Makefile.am b/libcpu/Makefile.am
deleted file mode 100644
index fc85f37c..00000000
--- a/libcpu/Makefile.am
+++ /dev/null
@@ -1,21 +0,0 @@
-## Process this file with automake to create Makefile.in
-## Configure input file for elfutils.
-##
-## Copyright (C) 2002 Red Hat, Inc.
-##
-## This program is Open Source software; you can redistribute it and/or
-## modify it under the terms of the Open Software License version 1.0 as
-## published by the Open Source Initiative.
-##
-## You should have received a copy of the Open Software License along
-## with this program; if not, you may obtain a copy of the Open Software
-## License version 1.0 from http://www.opensource.org/licenses/osl.php or
-## by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-## 3001 King Ranch Road, Ukiah, CA 95482.
-##
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -Wall -Wshadow
-INCLUDES = -I$(srcdir)
-
-noinst_LIBRARIES = libcpu_i386.a
-
-libcpu_i386_a_SOURCES = i386_dis.c
diff --git a/libcpu/Makefile.in b/libcpu/Makefile.in
deleted file mode 100644
index abd67c34..00000000
--- a/libcpu/Makefile.in
+++ /dev/null
@@ -1,408 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-SOURCES = $(libcpu_i386_a_SOURCES)
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = libcpu
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libcpu_i386_a_AR = $(AR) $(ARFLAGS)
-libcpu_i386_a_LIBADD =
-am_libcpu_i386_a_OBJECTS = i386_dis.$(OBJEXT)
-libcpu_i386_a_OBJECTS = $(am_libcpu_i386_a_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libcpu_i386_a_SOURCES)
-DIST_SOURCES = $(libcpu_i386_a_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -Wall -Wshadow
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GMSGFMT = @GMSGFMT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
-MUDFLAP_FALSE = @MUDFLAP_FALSE@
-MUDFLAP_TRUE = @MUDFLAP_TRUE@
-NATIVE_LD_FALSE = @NATIVE_LD_FALSE@
-NATIVE_LD_TRUE = @NATIVE_LD_TRUE@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-XGETTEXT = @XGETTEXT@
-YACC = @YACC@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-base_cpu = @base_cpu@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-INCLUDES = -I$(srcdir)
-noinst_LIBRARIES = libcpu_i386.a
-libcpu_i386_a_SOURCES = i386_dis.c
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits libcpu/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits libcpu/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libcpu_i386.a: $(libcpu_i386_a_OBJECTS) $(libcpu_i386_a_DEPENDENCIES)
- -rm -f libcpu_i386.a
- $(libcpu_i386_a_AR) libcpu_i386.a $(libcpu_i386_a_OBJECTS) $(libcpu_i386_a_LIBADD)
- $(RANLIB) libcpu_i386.a
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386_dis.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-noinstLIBRARIES ctags distclean distclean-compile \
- distclean-generic distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-exec install-exec-am install-info \
- install-info-am install-man install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-info-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libcpu/i386_dis.c b/libcpu/i386_dis.c
deleted file mode 100644
index 971746e3..00000000
--- a/libcpu/i386_dis.c
+++ /dev/null
@@ -1 +0,0 @@
-int foo;
diff --git a/libdw/ChangeLog b/libdw/ChangeLog
deleted file mode 100644
index f0c4b6b6..00000000
--- a/libdw/ChangeLog
+++ /dev/null
@@ -1,229 +0,0 @@
-2004-09-25 Ulrich Drepper <drepper@redhat.com>
-
- * dwarf_child.c: Make compile with gcc 4.0.
- * dwarf_error.c: Likewise.
- * dwarf_formblock.c: Likewise.
- * dwarf_getabbrev.c: Likewise.
- * dwarf_getattrs.c: Likewise.
- * dwarf_getsrclines.c: Likewise.
- * dwarf_tag.c: Likewise.
- * libdw_form.c: Likewise.
-
-2004-01-20 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am: Support building with mudflap.
-
- * dwarf_getloclist.c: Fix warnings gcc 3.4 spits out.
- * dwarf_getsrclines.c: Likewise.
- * dwarf_memory-access.h: Likewise.
-
-2004-01-19 Ulrich Drepper <drepper@redhat.com>
-
- * dwarf_getsrcfiles.c: Third parameter can be NULL.
-
- * libdw.h: Define Dwarf_macro. Declare dwarf_getmacros.
- Third parameter of dwarf_getsrcfiles can be NULL.
-
- * libdw.map: Add dwarf_getmacros.
- * Makefile.am (libdw_a_SOURCES): Add dwarf_getmacros.
- * dwarf_getmacros.c: New file.
-
-2004-01-18 Ulrich Drepper <drepper@redhat.com>
-
- * libdw.h: Second parameter of dwarf_getaranges can be NULL.
-
- * dwarf_nextcu.c: Return -1 if dwarf parameter is NULL.
-
- * dwarf_getsrclines.c:
- Use read_2ubyte_unaligned_inc instead of _inc-less variant.
-
- * dwarf_getaranges.c: Allow naranges parameter to be NULL.
-
- * libdwP.h (_): Use elfutils domain.
-
- * dwarf_getsrclines.c (dwarf_getsrclines): Add more branch prediction.
-
- * dwarf_getsrclines.c: Fix typo in comment.
-
-2004-01-17 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am: Support building with mudflap.
-
-2004-01-16 Ulrich Drepper <drepper@redhat.com>
-
- * memory-access.h: Add lots of const in case a pointer passed is const.
-
- * dwarf_formflag.c: New file.
- * dwarf_getattrs.c: New file.
- * dwarf_error.c: Add new error value.
- * libdw.h: Add prototypes for new functions. Adjust prototype for
- dwarf_getpubnames.
- * libdw.map: Add new functions.
- * dwarf_getpubnames.c: Change type of return value and fourth parameter
- to ptrdiff_t.
- * libdwP.h: Add new error value.
- * Makefile.am (libdw_a_SOURCES): Add dwarf_getattrs.c and
- dwarf_formflag.c.
-
- * dwarf_getpubnames.c (dwarf_getpubnames): Just fail if dbg is NULL.
-
-2004-01-12 Ulrich Drepper <drepper@redhat.com>
-
- * dwarf_getarange_addr.c: New file
- * dwarf_getarangeinfo.c: New file.
- * dwarf_getaranges.c: New file.
- * dwarf_onerange.c: New file.
- * libdw.h: Declare new functions. Define Dwarf_Arange and
- Dwarf_Aranges.
- * libdw.map: Add new functions.
- * libdwP.h: Add new errors. Add aranges member to struct Dwarf.
- Define Dwarf_Aranges_s and Dwarf_Arange_s.
- * Makefile.am (libdw_a_SOURCES): Add dwarf_getaranges.c,
- dwarf_onearange.c, dwarf_getarangeinfo.c, dwarf_getarange_addr.c.
- * dwarf_error.c: Add new message.
-
-2004-01-11 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am (libdw_a_SOURCES): Add dwarf_lineaddr.c, dwarf_linecol.c,
- dwarf_linebeginstatement.c, dwarf_lineendsequence.c, dwarf_lineblock.c,
- dwarf_lineprologueend.c, dwarf_lineepiloguebegin.c, dwarf_onesrcline.c.
- * dwarf_error.c: Add another message.
- * dwarf_getsrc_die.c: Adjust for Dwarf_Files and Dwarf_Lines
- introduction.
- * dwarf_filesrc.c: Likewise.
- * dwarf_getsrcfiles.c: Likewise.
- * dwarf_getsrclines.c: Likewise.
- * dwarf_lineaddr.c: New file.
- * dwarf_linebeginstatement.c: New file.
- * dwarf_lineblock.c: New file.
- * dwarf_linecol.c: New file.
- * dwarf_lineendsequence.c: New file.
- * dwarf_lineepiloguebegin.c: New file.
- * dwarf_lineno.c: New file.
- * dwarf_lineprologueend.c: New file.
- * dwarf_onesrcline.c: New file.
- * dwarf_lineno.c: Change interface to store result in object pointed
- to by second parameter.
- * libdw.h: Add prototypes for new functions. Change dwarf_lineno
- prototype. Define Dwarf_Files and Dwarf_Lines.
- * libdw.map: Add new functions.
- * libdwP.h: Define Dwarf_Files_s and Dwarf_Lines_s.
- * libdw_findcu.c: Don't initialize nlines field.
-
- * dwarf_siblingof: Little optimization.
-
- * dwarf_begin.c: Remember that the ELF descriptor must be closed.
- * dwarf_end.c: Close ELF descriptor if free_elf is set.
- * libdwP.h (struct Dwarf): Add free_elf field.
-
- * Makefile.am (libdw_a_SOURCES): Add dwarf_getstring.c and
- dwarf_offabbrev.c.
- * dwarf_getstring.c: New file.
- * dwarf_offabbrev.c: New file.
- * libdw.map: Add dwarf_getstring and dwarf_offabbrev.
- * dwarf_getabbrev.c (__libdw_getabbrev): Add new dbg and result
- parameters. Don't allocate memory if not necessary and don't lookup
- previous results if no CU given.
- (dwarf_getabbrev): Adjust call to __libdw_getabbrev.
- * dwarf_tag.c: Adjust call to __libdw_getabbrev.
- * libdw.h: Declare dwarf_offabbrev and dwarf_getstring.
- * libdwP.h: Change prototype for __libdw_getabbrev.
-
- * dwarf_getabbrevattr.c: Add offsetp parameter. Fill in before
- returning if this is wanted.
-
-2004-01-09 Ulrich Drepper <drepper@redhat.com>
-
- * dwarf_nextcu.c: Add new parameter offset_sizep. Initialize it
- with offset_size value.
- * libdw.h: Adjust dwarf_nextcu prototype.
- * libdwP.h (struct Dwarf_CU): Add offset_size member.
- * libdw_findcu.c: Adjust dwarf_nextcu call. Initialize offset_size
- member of new CU struct.
- * dwarf_formstring.c: Depend on offset_size not address_size for
- DW_FORM_strp handling.
- * dwarf_form.c: Likewise for DW_FORM_strp and DW_FORM_ref_addr.
-
- * dwarf_tag.c (__libdw_findabbrev): Return correct value for
- failing lookup.
- (dwarf_tag): Correctly recognize failed lookup.
-
- * dwarf_end.c (cu_free): Call tdestroy for locs member. Use new
- function noop_free.
- * dwarf_error.c: Add message for DWARF_E_NO_BLOCK.
- * dwarf_formblock.c: New file.
- * dwarf_getloclist.c: Rewrite to handle a single block.
- * libdw.h: Define Dwarf_Block. Rename Dwarf_Loc members. Remove
- Dwarf_Locdesc definition. Declare dwarf_formblock. Remove
- dwarf_getloclistent declaration.
- * libdw.map: Add dwarf_formblock, remove dwarf_getloclistent.
- * libdwP.h: Define struct loc_s and DWARF_E_NO_BLOCK.
- Add locs member to struct Dwarf_CU.
- * libdw_fundcu.c: Initialize locs member of new CU.
- * Makefile.am (libdw_a_SOURCES): Add dwarf_formblock.c.
- Remove dwarf_getloclistent.c.
-
-2004-01-07 Ulrich Drepper <drepper@redhat.com>
-
- * libdw.h: Use __nonnull__ attribute only for gcc >= 3.3.
- * libdwP.h: Likewise.
-
- * dwarf_getloclist.c: New file.
- * dwarf_getloclistent.c: New file.
- * libdw.h: Define Dwarf_Loc and Dwarf_Locdesc.
- Declare dwarf_getloclistent and dwarf_getloclist.
- * libdw.map: Add dwarf_getloclistent and dwarf_getloclist.
- * libdwP.h: Define DWARF_E_NO_LOCLIST.
- * Makefile.am (libdw_a_SOURCES): Add dwarf_getloclistent.c and
- dwarf_getloclist.c.
-
- * dwarf_error.c: More error messages.
-
-2004-01-06 Ulrich Drepper <drepper@redhat.com>
-
- * dwarf_getsrclines.c: Remove debugging support.
-
- * dwarf_getsrcfiles.c: New file.
- * dwarf_filesrc.c: New file.
- * libdw.h: Declare these functions. Define Dwarf_File.
- * libdwP.c: Adjust Dwarf_File_s definition.
- * libdw.map: Add these functions.
- * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrcfiles.c and
- dwarf_filesrc.c.
- * dwarf_getsrclines.c: Initialize cu->files.
-
-2004-01-05 Ulrich Drepper <drepper@redhat.com>
-
- * libdw.h: Add more nonnull function attributes.
-
- * dwarf_begin_elf.c (dwarf_begin_elf): Don't initialize mem_tail->next.
- * dwarf_end.c (cu_free): New function.
- (dwarf_end): Also free CU tree. Correct freeing of memory blocks.
- * dwarf_error.c (errmsgs): Add new messages.
- * dwarf_getsrc_die.c: New file.
- * dwarf_getsrclines.c: New file.
- * dwarf_lineno.c: New file.
- * dwarf_linesrc.c: New file.
- * dwarf_nextcu.c (dwarf_nextcu): Use read_*byte_unaligned_inc
- instead of the *_inc-less variants.
- * libdw.h: Define Dwarf_Line. Add some function attributes. Declare
- dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc.
- * libdw.map: Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno,
- and dwarf_linesrc.
- * libdwP.h: Add more error codes.
- (struct Dwarf): Remove mem_tail.next member.
- (Dwarf_File): Define type.
- (struct Dwarf_Line_s): Define type.
- (struct Dwarf_CU): Add lines and nlines members.
- (libdw_alloc): Define local variable _tail and use it.
- Add some function attributes.
- * libdw_alloc.c (__libdw_allocate): Don't initialize next member.
- * libdw_findcu.c (__libdw_findcu): Initialize lines and nlines members.
- * memory-access.h: Add unlikely for the endian conversion paths.
- * Makefile.am (AM_CFLAGS): Add -std parameter.
- (libdw_a_SOURCES): Add dwarf_getsrclines, dwarf_getsrc_die,
- dwarf_lineno, and dwarf_linesrc.
-
-2003-08-11 Ulrich Drepper <drepper@redhat.com>
-
- * Moved to CVS archive.
diff --git a/libdw/Makefile b/libdw/Makefile
deleted file mode 100644
index ba960d4c..00000000
--- a/libdw/Makefile
+++ /dev/null
@@ -1,681 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# libdw/Makefile. Generated from Makefile.in by configure.
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-
-
-SOURCES = $(libdw_a_SOURCES) $(libdw_pic_a_SOURCES) $(libdw_so_SOURCES)
-
-srcdir = .
-top_srcdir = ..
-
-pkgdatadir = $(datadir)/elfutils
-pkglibdir = $(libdir)/elfutils
-pkgincludedir = $(includedir)/elfutils
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = /usr/bin/install -c
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = i686-pc-linux-gnu
-host_triplet = i686-pc-linux-gnu
-noinst_PROGRAMS = $(am__EXEEXT_1)
-#am_libdw_pic_a_OBJECTS =
-subdir = libdw
-DIST_COMMON = $(euinclude_HEADERS) $(include_HEADERS) \
- $(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)" \
- "$(DESTDIR)$(includedir)"
-libLIBRARIES_INSTALL = $(INSTALL_DATA)
-LIBRARIES = $(lib_LIBRARIES) $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libdw_a_AR = $(AR) $(ARFLAGS)
-libdw_a_LIBADD =
-am_libdw_a_OBJECTS = dwarf_begin.$(OBJEXT) dwarf_begin_elf.$(OBJEXT) \
- dwarf_end.$(OBJEXT) dwarf_getelf.$(OBJEXT) \
- dwarf_getpubnames.$(OBJEXT) dwarf_getabbrev.$(OBJEXT) \
- dwarf_tag.$(OBJEXT) dwarf_error.$(OBJEXT) \
- dwarf_nextcu.$(OBJEXT) dwarf_diename.$(OBJEXT) \
- dwarf_offdie.$(OBJEXT) dwarf_attr.$(OBJEXT) \
- dwarf_formstring.$(OBJEXT) dwarf_abbrev_hash.$(OBJEXT) \
- dwarf_child.$(OBJEXT) dwarf_haschildren.$(OBJEXT) \
- dwarf_formaddr.$(OBJEXT) dwarf_formudata.$(OBJEXT) \
- dwarf_formsdata.$(OBJEXT) dwarf_lowpc.$(OBJEXT) \
- dwarf_highpc.$(OBJEXT) dwarf_formref.$(OBJEXT) \
- dwarf_siblingof.$(OBJEXT) dwarf_dieoffset.$(OBJEXT) \
- dwarf_cuoffset.$(OBJEXT) dwarf_hasattr.$(OBJEXT) \
- dwarf_hasform.$(OBJEXT) dwarf_whatform.$(OBJEXT) \
- dwarf_whatattr.$(OBJEXT) dwarf_bytesize.$(OBJEXT) \
- dwarf_arrayorder.$(OBJEXT) dwarf_bitsize.$(OBJEXT) \
- dwarf_bitoffset.$(OBJEXT) dwarf_srclang.$(OBJEXT) \
- dwarf_getabbrevtag.$(OBJEXT) dwarf_getabbrevcode.$(OBJEXT) \
- dwarf_abbrevhaschildren.$(OBJEXT) dwarf_getattrcnt.$(OBJEXT) \
- dwarf_getabbrevattr.$(OBJEXT) dwarf_getsrclines.$(OBJEXT) \
- dwarf_getsrc_die.$(OBJEXT) dwarf_linesrc.$(OBJEXT) \
- dwarf_lineno.$(OBJEXT) dwarf_lineaddr.$(OBJEXT) \
- dwarf_linecol.$(OBJEXT) dwarf_linebeginstatement.$(OBJEXT) \
- dwarf_lineendsequence.$(OBJEXT) dwarf_lineblock.$(OBJEXT) \
- dwarf_lineprologueend.$(OBJEXT) \
- dwarf_lineepiloguebegin.$(OBJEXT) dwarf_onesrcline.$(OBJEXT) \
- dwarf_formblock.$(OBJEXT) dwarf_getsrcfiles.$(OBJEXT) \
- dwarf_filesrc.$(OBJEXT) dwarf_getloclist.$(OBJEXT) \
- dwarf_getstring.$(OBJEXT) dwarf_offabbrev.$(OBJEXT) \
- dwarf_getaranges.$(OBJEXT) dwarf_onearange.$(OBJEXT) \
- dwarf_getarangeinfo.$(OBJEXT) dwarf_getarange_addr.$(OBJEXT) \
- dwarf_getattrs.$(OBJEXT) dwarf_formflag.$(OBJEXT) \
- dwarf_getmacros.$(OBJEXT) libdw_findcu.$(OBJEXT) \
- libdw_form.$(OBJEXT) libdw_alloc.$(OBJEXT)
-libdw_a_OBJECTS = $(am_libdw_a_OBJECTS)
-libdw_pic_a_AR = $(AR) $(ARFLAGS)
-libdw_pic_a_LIBADD =
-libdw_pic_a_OBJECTS = $(am_libdw_pic_a_OBJECTS)
-am__EXEEXT_1 = libdw.so$(EXEEXT)
-PROGRAMS = $(noinst_PROGRAMS)
-am_libdw_so_OBJECTS =
-libdw_so_OBJECTS = $(am_libdw_so_OBJECTS)
-libdw_so_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libdw_a_SOURCES) $(libdw_pic_a_SOURCES) \
- $(libdw_so_SOURCES)
-DIST_SOURCES = $(libdw_a_SOURCES) $(libdw_pic_a_SOURCES) \
- $(libdw_so_SOURCES)
-euincludeHEADERS_INSTALL = $(INSTALL_HEADER)
-includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(euinclude_HEADERS) $(include_HEADERS) $(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run aclocal-1.9
-AMDEP_FALSE = #
-AMDEP_TRUE =
-AMTAR = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run tar
-AUTOCONF = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoconf
-AUTOHEADER = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoheader
-AUTOMAKE = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run automake-1.9
-AWK = gawk
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CFLAGS = -g -O2
-CPP = gcc -E
-CPPFLAGS =
-CYGPATH_W = echo
-DATADIRNAME = ${prefix}/share
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H
-DEPDIR = .deps
-ECHO_C =
-ECHO_N = -n
-ECHO_T =
-EGREP = grep -E
-EXEEXT =
-GMSGFMT = /usr/bin/msgfmt
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
-INTLLIBS =
-LDFLAGS =
-LEX = flex
-LEXLIB = -lfl
-LEX_OUTPUT_ROOT = lex.yy
-LIBICONV = -liconv
-LIBINTL =
-LIBOBJS =
-LIBS =
-LOCALEDIR = ${prefix}/share
-LTLIBICONV = -liconv
-LTLIBINTL =
-LTLIBOBJS =
-MAKEINFO = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run makeinfo
-MKINSTALLDIRS = config/mkinstalldirs
-MSGFMT = /usr/bin/msgfmt
-MSGMERGE = /usr/bin/msgmerge
-MUDFLAP_FALSE =
-MUDFLAP_TRUE = #
-NATIVE_LD_FALSE =
-NATIVE_LD_TRUE = #
-OBJEXT = o
-PACKAGE = elfutils
-PACKAGE_BUGREPORT = http://bugzilla.redhat.com/bugzilla/
-PACKAGE_NAME = Red Hat elfutils
-PACKAGE_STRING = Red Hat elfutils 0.97
-PACKAGE_TARNAME = elfutils
-PACKAGE_VERSION = 0.97
-PATH_SEPARATOR = :
-POSUB = po
-RANLIB = ranlib
-SET_MAKE =
-SHELL = /bin/sh
-STRIP =
-USE_NLS = yes
-VERSION = 1
-XGETTEXT = /usr/bin/xgettext
-YACC = bison -y
-ac_ct_CC = gcc
-ac_ct_RANLIB = ranlib
-ac_ct_STRIP =
-am__fastdepCC_FALSE = #
-am__fastdepCC_TRUE =
-am__include = include
-am__leading_dot = .
-am__quote =
-am__tar = ${AMTAR} chof - "$$tardir"
-am__untar = ${AMTAR} xf -
-base_cpu = none
-bindir = ${exec_prefix}/bin
-build = i686-pc-linux-gnu
-build_alias =
-build_cpu = i686
-build_os = linux-gnu
-build_vendor = pc
-datadir = ${prefix}/share
-exec_prefix = ${prefix}
-host = i686-pc-linux-gnu
-host_alias =
-host_cpu = i686
-host_os = linux-gnu
-host_vendor = pc
-includedir = ${prefix}/include
-infodir = ${prefix}/info
-install_sh = /work/elfutils/stock/elfutils-0.97/config/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-localstatedir = ${prefix}/var
-mandir = ${prefix}/man
-mkdir_p = mkdir -p --
-oldincludedir = /usr/include
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-program_transform_name = s,x,x,
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-sysconfdir = ${prefix}/etc
-target_alias =
-AM_CFLAGS = -Wall -Werror -Wshadow -std=gnu99
-#AM_CFLAGS = -Wall -Wshadow -std=gnu99
-INCLUDES = -I. -I$(srcdir) -I$(srcdir)/../libelf -I.. -I$(srcdir)/../lib
-lib_LIBRARIES = libdw.a
-noinst_LIBRARIES = libdw_pic.a
-include_HEADERS = dwarf.h
-euincludedir = ${includedir}/elfutils
-euinclude_HEADERS = libdw.h
-libdw_a_SOURCES = dwarf_begin.c dwarf_begin_elf.c dwarf_end.c dwarf_getelf.c \
- dwarf_getpubnames.c dwarf_getabbrev.c dwarf_tag.c \
- dwarf_error.c dwarf_nextcu.c dwarf_diename.c dwarf_offdie.c \
- dwarf_attr.c dwarf_formstring.c dwarf_abbrev_hash.c \
- dwarf_child.c dwarf_haschildren.c dwarf_formaddr.c \
- dwarf_formudata.c dwarf_formsdata.c dwarf_lowpc.c \
- dwarf_highpc.c dwarf_formref.c dwarf_siblingof.c \
- dwarf_dieoffset.c dwarf_cuoffset.c dwarf_hasattr.c \
- dwarf_hasform.c dwarf_whatform.c dwarf_whatattr.c \
- dwarf_bytesize.c dwarf_arrayorder.c dwarf_bitsize.c \
- dwarf_bitoffset.c dwarf_srclang.c dwarf_getabbrevtag.c \
- dwarf_getabbrevcode.c dwarf_abbrevhaschildren.c \
- dwarf_getattrcnt.c dwarf_getabbrevattr.c \
- dwarf_getsrclines.c dwarf_getsrc_die.c \
- dwarf_linesrc.c dwarf_lineno.c dwarf_lineaddr.c \
- dwarf_linecol.c dwarf_linebeginstatement.c \
- dwarf_lineendsequence.c dwarf_lineblock.c \
- dwarf_lineprologueend.c dwarf_lineepiloguebegin.c \
- dwarf_onesrcline.c dwarf_formblock.c \
- dwarf_getsrcfiles.c dwarf_filesrc.c \
- dwarf_getloclist.c dwarf_getstring.c dwarf_offabbrev.c \
- dwarf_getaranges.c dwarf_onearange.c dwarf_getarangeinfo.c \
- dwarf_getarange_addr.c dwarf_getattrs.c dwarf_formflag.c \
- dwarf_getmacros.c \
- libdw_findcu.c libdw_form.c libdw_alloc.c
-
-libdw_pic_a_SOURCES =
-am_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os)
-libdw_so_SOURCES =
-noinst_HEADERS = libdwP.h memory-access.h dwarf_abbrev_hash.h
-EXTRA_DIST = libdw.map
-CLEANFILES = $(am_libdw_pic_a_OBJECTS)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits libdw/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits libdw/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-libLIBRARIES: $(lib_LIBRARIES)
- @$(NORMAL_INSTALL)
- test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- f=$(am__strip_dir) \
- echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
- $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
- else :; fi; \
- done
- @$(POST_INSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- p=$(am__strip_dir) \
- echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \
- $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \
- else :; fi; \
- done
-
-uninstall-libLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- p=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \
- rm -f "$(DESTDIR)$(libdir)/$$p"; \
- done
-
-clean-libLIBRARIES:
- -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libdw.a: $(libdw_a_OBJECTS) $(libdw_a_DEPENDENCIES)
- -rm -f libdw.a
- $(libdw_a_AR) libdw.a $(libdw_a_OBJECTS) $(libdw_a_LIBADD)
- $(RANLIB) libdw.a
-libdw_pic.a: $(libdw_pic_a_OBJECTS) $(libdw_pic_a_DEPENDENCIES)
- -rm -f libdw_pic.a
- $(libdw_pic_a_AR) libdw_pic.a $(libdw_pic_a_OBJECTS) $(libdw_pic_a_LIBADD)
- $(RANLIB) libdw_pic.a
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-#libdw.so$(EXEEXT): $(libdw_so_OBJECTS) $(libdw_so_DEPENDENCIES)
-# @rm -f libdw.so$(EXEEXT)
-# $(LINK) $(libdw_so_LDFLAGS) $(libdw_so_OBJECTS) $(libdw_so_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-include ./$(DEPDIR)/dwarf_abbrev_hash.Po
-include ./$(DEPDIR)/dwarf_abbrevhaschildren.Po
-include ./$(DEPDIR)/dwarf_arrayorder.Po
-include ./$(DEPDIR)/dwarf_attr.Po
-include ./$(DEPDIR)/dwarf_begin.Po
-include ./$(DEPDIR)/dwarf_begin_elf.Po
-include ./$(DEPDIR)/dwarf_bitoffset.Po
-include ./$(DEPDIR)/dwarf_bitsize.Po
-include ./$(DEPDIR)/dwarf_bytesize.Po
-include ./$(DEPDIR)/dwarf_child.Po
-include ./$(DEPDIR)/dwarf_cuoffset.Po
-include ./$(DEPDIR)/dwarf_diename.Po
-include ./$(DEPDIR)/dwarf_dieoffset.Po
-include ./$(DEPDIR)/dwarf_end.Po
-include ./$(DEPDIR)/dwarf_error.Po
-include ./$(DEPDIR)/dwarf_filesrc.Po
-include ./$(DEPDIR)/dwarf_formaddr.Po
-include ./$(DEPDIR)/dwarf_formblock.Po
-include ./$(DEPDIR)/dwarf_formflag.Po
-include ./$(DEPDIR)/dwarf_formref.Po
-include ./$(DEPDIR)/dwarf_formsdata.Po
-include ./$(DEPDIR)/dwarf_formstring.Po
-include ./$(DEPDIR)/dwarf_formudata.Po
-include ./$(DEPDIR)/dwarf_getabbrev.Po
-include ./$(DEPDIR)/dwarf_getabbrevattr.Po
-include ./$(DEPDIR)/dwarf_getabbrevcode.Po
-include ./$(DEPDIR)/dwarf_getabbrevtag.Po
-include ./$(DEPDIR)/dwarf_getarange_addr.Po
-include ./$(DEPDIR)/dwarf_getarangeinfo.Po
-include ./$(DEPDIR)/dwarf_getaranges.Po
-include ./$(DEPDIR)/dwarf_getattrcnt.Po
-include ./$(DEPDIR)/dwarf_getattrs.Po
-include ./$(DEPDIR)/dwarf_getelf.Po
-include ./$(DEPDIR)/dwarf_getloclist.Po
-include ./$(DEPDIR)/dwarf_getmacros.Po
-include ./$(DEPDIR)/dwarf_getpubnames.Po
-include ./$(DEPDIR)/dwarf_getsrc_die.Po
-include ./$(DEPDIR)/dwarf_getsrcfiles.Po
-include ./$(DEPDIR)/dwarf_getsrclines.Po
-include ./$(DEPDIR)/dwarf_getstring.Po
-include ./$(DEPDIR)/dwarf_hasattr.Po
-include ./$(DEPDIR)/dwarf_haschildren.Po
-include ./$(DEPDIR)/dwarf_hasform.Po
-include ./$(DEPDIR)/dwarf_highpc.Po
-include ./$(DEPDIR)/dwarf_lineaddr.Po
-include ./$(DEPDIR)/dwarf_linebeginstatement.Po
-include ./$(DEPDIR)/dwarf_lineblock.Po
-include ./$(DEPDIR)/dwarf_linecol.Po
-include ./$(DEPDIR)/dwarf_lineendsequence.Po
-include ./$(DEPDIR)/dwarf_lineepiloguebegin.Po
-include ./$(DEPDIR)/dwarf_lineno.Po
-include ./$(DEPDIR)/dwarf_lineprologueend.Po
-include ./$(DEPDIR)/dwarf_linesrc.Po
-include ./$(DEPDIR)/dwarf_lowpc.Po
-include ./$(DEPDIR)/dwarf_nextcu.Po
-include ./$(DEPDIR)/dwarf_offabbrev.Po
-include ./$(DEPDIR)/dwarf_offdie.Po
-include ./$(DEPDIR)/dwarf_onearange.Po
-include ./$(DEPDIR)/dwarf_onesrcline.Po
-include ./$(DEPDIR)/dwarf_siblingof.Po
-include ./$(DEPDIR)/dwarf_srclang.Po
-include ./$(DEPDIR)/dwarf_tag.Po
-include ./$(DEPDIR)/dwarf_whatattr.Po
-include ./$(DEPDIR)/dwarf_whatform.Po
-include ./$(DEPDIR)/libdw_alloc.Po
-include ./$(DEPDIR)/libdw_findcu.Po
-include ./$(DEPDIR)/libdw_form.Po
-
-.c.o:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c $<
-
-.c.obj:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-euincludeHEADERS: $(euinclude_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(euincludedir)" || $(mkdir_p) "$(DESTDIR)$(euincludedir)"
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(euincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(euincludedir)/$$f'"; \
- $(euincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-
-uninstall-euincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(euincludedir)/$$f'"; \
- rm -f "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)"
- @list='$(include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
- $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)" "$(DESTDIR)$(includedir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-#install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-#uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLIBRARIES clean-noinstLIBRARIES \
- clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-euincludeHEADERS install-includeHEADERS
-
-install-exec-am: install-libLIBRARIES
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-euincludeHEADERS uninstall-includeHEADERS \
- uninstall-info-am uninstall-libLIBRARIES
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLIBRARIES clean-noinstLIBRARIES clean-noinstPROGRAMS \
- ctags distclean distclean-compile distclean-generic \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
- install-euincludeHEADERS install-exec install-exec-am \
- install-includeHEADERS install-info install-info-am \
- install-libLIBRARIES install-man install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-euincludeHEADERS \
- uninstall-includeHEADERS uninstall-info-am \
- uninstall-libLIBRARIES
-
-libdw.so: libdw_pic.a $(srcdir)/libdw.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libdw.map,--no-undefined \
- -Wl,--soname,$@.$(VERSION),-z,defs \
- ../libelf/libelf.so
- ln -fs $@ $@.$(VERSION)
-
-%.os: %.c %.o
- if $(COMPILE) -c -o $@ -fpic -DPIC -DSHARED -MT $@ -MD -MP \
- -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \
- then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
- rm -f "$(DEPDIR)/$*.Tpo"; \
- else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
- fi
-
-install: install-am libdw.so
- $(mkinstalldirs) $(DESTDIR)$(libdir)
- $(INSTALL_PROGRAM) libdw.so $(DESTDIR)$(libdir)/libdw-$(PACKAGE_VERSION).so
- ln -fs libdw-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libdw.so.$(VERSION)
- ln -fs libdw.so.$(VERSION) $(DESTDIR)$(libdir)/libdw.so
-
-uninstall: uninstall-am
- rm -f $(DESTDIR)$(libdir)/libdw-$(PACKAGE_VERSION).so
- rm -f $(DESTDIR)$(libdir)/libdw.so.$(VERSION)
- rm -f $(DESTDIR)$(libdir)/libdw.so
- rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/elfutils
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libdw/Makefile.am b/libdw/Makefile.am
deleted file mode 100644
index e452b43e..00000000
--- a/libdw/Makefile.am
+++ /dev/null
@@ -1,100 +0,0 @@
-## Process this file with automake to create Makefile.in
-## Makefile for libdw.
-##
-## Copyright (C) 2002, 2003, 2004 Red Hat, Inc.
-##
-## This program is Open Source software; you can redistribute it and/or
-## modify it under the terms of the Open Software License version 1.0 as
-## published by the Open Source Initiative.
-##
-## You should have received a copy of the Open Software License along
-## with this program; if not, you may obtain a copy of the Open Software
-## License version 1.0 from http://www.opensource.org/licenses/osl.php or
-## by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-## 3001 King Ranch Road, Ukiah, CA 95482.
-##
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H
-if MUDFLAP
-AM_CFLAGS = -Wall -Wshadow -std=gnu99
-else
-AM_CFLAGS = -Wall -Werror -Wshadow -std=gnu99
-endif
-INCLUDES = -I. -I$(srcdir) -I$(srcdir)/../libelf -I.. -I$(srcdir)/../lib
-VERSION = 1
-
-lib_LIBRARIES = libdw.a
-if !MUDFLAP
-noinst_LIBRARIES = libdw_pic.a
-noinst_PROGRAMS = $(noinst_LIBRARIES:_pic.a=.so)
-endif
-
-include_HEADERS = dwarf.h
-euincludedir = ${includedir}/elfutils
-euinclude_HEADERS = libdw.h
-
-libdw_a_SOURCES = dwarf_begin.c dwarf_begin_elf.c dwarf_end.c dwarf_getelf.c \
- dwarf_getpubnames.c dwarf_getabbrev.c dwarf_tag.c \
- dwarf_error.c dwarf_nextcu.c dwarf_diename.c dwarf_offdie.c \
- dwarf_attr.c dwarf_formstring.c dwarf_abbrev_hash.c \
- dwarf_child.c dwarf_haschildren.c dwarf_formaddr.c \
- dwarf_formudata.c dwarf_formsdata.c dwarf_lowpc.c \
- dwarf_highpc.c dwarf_formref.c dwarf_siblingof.c \
- dwarf_dieoffset.c dwarf_cuoffset.c dwarf_hasattr.c \
- dwarf_hasform.c dwarf_whatform.c dwarf_whatattr.c \
- dwarf_bytesize.c dwarf_arrayorder.c dwarf_bitsize.c \
- dwarf_bitoffset.c dwarf_srclang.c dwarf_getabbrevtag.c \
- dwarf_getabbrevcode.c dwarf_abbrevhaschildren.c \
- dwarf_getattrcnt.c dwarf_getabbrevattr.c \
- dwarf_getsrclines.c dwarf_getsrc_die.c \
- dwarf_linesrc.c dwarf_lineno.c dwarf_lineaddr.c \
- dwarf_linecol.c dwarf_linebeginstatement.c \
- dwarf_lineendsequence.c dwarf_lineblock.c \
- dwarf_lineprologueend.c dwarf_lineepiloguebegin.c \
- dwarf_onesrcline.c dwarf_formblock.c \
- dwarf_getsrcfiles.c dwarf_filesrc.c \
- dwarf_getloclist.c dwarf_getstring.c dwarf_offabbrev.c \
- dwarf_getaranges.c dwarf_onearange.c dwarf_getarangeinfo.c \
- dwarf_getarange_addr.c dwarf_getattrs.c dwarf_formflag.c \
- dwarf_getmacros.c \
- libdw_findcu.c libdw_form.c libdw_alloc.c
-
-
-if !MUDFLAP
-libdw_pic_a_SOURCES =
-am_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os)
-
-libdw_so_SOURCES =
-libdw.so: libdw_pic.a $(srcdir)/libdw.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libdw.map,--no-undefined \
- -Wl,--soname,$@.$(VERSION),-z,defs \
- ../libelf/libelf.so
- ln -fs $@ $@.$(VERSION)
-
-
-%.os: %.c %.o
- if $(COMPILE) -c -o $@ -fpic -DPIC -DSHARED -MT $@ -MD -MP \
- -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \
- then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
- rm -f "$(DEPDIR)/$*.Tpo"; \
- else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
- fi
-
-install: install-am libdw.so
- $(mkinstalldirs) $(DESTDIR)$(libdir)
- $(INSTALL_PROGRAM) libdw.so $(DESTDIR)$(libdir)/libdw-$(PACKAGE_VERSION).so
- ln -fs libdw-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libdw.so.$(VERSION)
- ln -fs libdw.so.$(VERSION) $(DESTDIR)$(libdir)/libdw.so
-
-uninstall: uninstall-am
- rm -f $(DESTDIR)$(libdir)/libdw-$(PACKAGE_VERSION).so
- rm -f $(DESTDIR)$(libdir)/libdw.so.$(VERSION)
- rm -f $(DESTDIR)$(libdir)/libdw.so
- rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/elfutils
-endif
-
-noinst_HEADERS = libdwP.h memory-access.h dwarf_abbrev_hash.h
-
-EXTRA_DIST = libdw.map
-
-CLEANFILES = $(am_libdw_pic_a_OBJECTS)
diff --git a/libdw/Makefile.in b/libdw/Makefile.in
deleted file mode 100644
index 9ceb5d51..00000000
--- a/libdw/Makefile.in
+++ /dev/null
@@ -1,681 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-
-SOURCES = $(libdw_a_SOURCES) $(libdw_pic_a_SOURCES) $(libdw_so_SOURCES)
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-@MUDFLAP_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1)
-@MUDFLAP_TRUE@am_libdw_pic_a_OBJECTS =
-subdir = libdw
-DIST_COMMON = $(euinclude_HEADERS) $(include_HEADERS) \
- $(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)" \
- "$(DESTDIR)$(includedir)"
-libLIBRARIES_INSTALL = $(INSTALL_DATA)
-LIBRARIES = $(lib_LIBRARIES) $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libdw_a_AR = $(AR) $(ARFLAGS)
-libdw_a_LIBADD =
-am_libdw_a_OBJECTS = dwarf_begin.$(OBJEXT) dwarf_begin_elf.$(OBJEXT) \
- dwarf_end.$(OBJEXT) dwarf_getelf.$(OBJEXT) \
- dwarf_getpubnames.$(OBJEXT) dwarf_getabbrev.$(OBJEXT) \
- dwarf_tag.$(OBJEXT) dwarf_error.$(OBJEXT) \
- dwarf_nextcu.$(OBJEXT) dwarf_diename.$(OBJEXT) \
- dwarf_offdie.$(OBJEXT) dwarf_attr.$(OBJEXT) \
- dwarf_formstring.$(OBJEXT) dwarf_abbrev_hash.$(OBJEXT) \
- dwarf_child.$(OBJEXT) dwarf_haschildren.$(OBJEXT) \
- dwarf_formaddr.$(OBJEXT) dwarf_formudata.$(OBJEXT) \
- dwarf_formsdata.$(OBJEXT) dwarf_lowpc.$(OBJEXT) \
- dwarf_highpc.$(OBJEXT) dwarf_formref.$(OBJEXT) \
- dwarf_siblingof.$(OBJEXT) dwarf_dieoffset.$(OBJEXT) \
- dwarf_cuoffset.$(OBJEXT) dwarf_hasattr.$(OBJEXT) \
- dwarf_hasform.$(OBJEXT) dwarf_whatform.$(OBJEXT) \
- dwarf_whatattr.$(OBJEXT) dwarf_bytesize.$(OBJEXT) \
- dwarf_arrayorder.$(OBJEXT) dwarf_bitsize.$(OBJEXT) \
- dwarf_bitoffset.$(OBJEXT) dwarf_srclang.$(OBJEXT) \
- dwarf_getabbrevtag.$(OBJEXT) dwarf_getabbrevcode.$(OBJEXT) \
- dwarf_abbrevhaschildren.$(OBJEXT) dwarf_getattrcnt.$(OBJEXT) \
- dwarf_getabbrevattr.$(OBJEXT) dwarf_getsrclines.$(OBJEXT) \
- dwarf_getsrc_die.$(OBJEXT) dwarf_linesrc.$(OBJEXT) \
- dwarf_lineno.$(OBJEXT) dwarf_lineaddr.$(OBJEXT) \
- dwarf_linecol.$(OBJEXT) dwarf_linebeginstatement.$(OBJEXT) \
- dwarf_lineendsequence.$(OBJEXT) dwarf_lineblock.$(OBJEXT) \
- dwarf_lineprologueend.$(OBJEXT) \
- dwarf_lineepiloguebegin.$(OBJEXT) dwarf_onesrcline.$(OBJEXT) \
- dwarf_formblock.$(OBJEXT) dwarf_getsrcfiles.$(OBJEXT) \
- dwarf_filesrc.$(OBJEXT) dwarf_getloclist.$(OBJEXT) \
- dwarf_getstring.$(OBJEXT) dwarf_offabbrev.$(OBJEXT) \
- dwarf_getaranges.$(OBJEXT) dwarf_onearange.$(OBJEXT) \
- dwarf_getarangeinfo.$(OBJEXT) dwarf_getarange_addr.$(OBJEXT) \
- dwarf_getattrs.$(OBJEXT) dwarf_formflag.$(OBJEXT) \
- dwarf_getmacros.$(OBJEXT) libdw_findcu.$(OBJEXT) \
- libdw_form.$(OBJEXT) libdw_alloc.$(OBJEXT)
-libdw_a_OBJECTS = $(am_libdw_a_OBJECTS)
-libdw_pic_a_AR = $(AR) $(ARFLAGS)
-libdw_pic_a_LIBADD =
-libdw_pic_a_OBJECTS = $(am_libdw_pic_a_OBJECTS)
-@MUDFLAP_FALSE@am__EXEEXT_1 = libdw.so$(EXEEXT)
-PROGRAMS = $(noinst_PROGRAMS)
-am_libdw_so_OBJECTS =
-libdw_so_OBJECTS = $(am_libdw_so_OBJECTS)
-libdw_so_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libdw_a_SOURCES) $(libdw_pic_a_SOURCES) \
- $(libdw_so_SOURCES)
-DIST_SOURCES = $(libdw_a_SOURCES) $(libdw_pic_a_SOURCES) \
- $(libdw_so_SOURCES)
-euincludeHEADERS_INSTALL = $(INSTALL_HEADER)
-includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(euinclude_HEADERS) $(include_HEADERS) $(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GMSGFMT = @GMSGFMT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
-MUDFLAP_FALSE = @MUDFLAP_FALSE@
-MUDFLAP_TRUE = @MUDFLAP_TRUE@
-NATIVE_LD_FALSE = @NATIVE_LD_FALSE@
-NATIVE_LD_TRUE = @NATIVE_LD_TRUE@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VERSION = 1
-XGETTEXT = @XGETTEXT@
-YACC = @YACC@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-base_cpu = @base_cpu@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-@MUDFLAP_FALSE@AM_CFLAGS = -Wall -Werror -Wshadow -std=gnu99
-@MUDFLAP_TRUE@AM_CFLAGS = -Wall -Wshadow -std=gnu99
-INCLUDES = -I. -I$(srcdir) -I$(srcdir)/../libelf -I.. -I$(srcdir)/../lib
-lib_LIBRARIES = libdw.a
-@MUDFLAP_FALSE@noinst_LIBRARIES = libdw_pic.a
-include_HEADERS = dwarf.h
-euincludedir = ${includedir}/elfutils
-euinclude_HEADERS = libdw.h
-libdw_a_SOURCES = dwarf_begin.c dwarf_begin_elf.c dwarf_end.c dwarf_getelf.c \
- dwarf_getpubnames.c dwarf_getabbrev.c dwarf_tag.c \
- dwarf_error.c dwarf_nextcu.c dwarf_diename.c dwarf_offdie.c \
- dwarf_attr.c dwarf_formstring.c dwarf_abbrev_hash.c \
- dwarf_child.c dwarf_haschildren.c dwarf_formaddr.c \
- dwarf_formudata.c dwarf_formsdata.c dwarf_lowpc.c \
- dwarf_highpc.c dwarf_formref.c dwarf_siblingof.c \
- dwarf_dieoffset.c dwarf_cuoffset.c dwarf_hasattr.c \
- dwarf_hasform.c dwarf_whatform.c dwarf_whatattr.c \
- dwarf_bytesize.c dwarf_arrayorder.c dwarf_bitsize.c \
- dwarf_bitoffset.c dwarf_srclang.c dwarf_getabbrevtag.c \
- dwarf_getabbrevcode.c dwarf_abbrevhaschildren.c \
- dwarf_getattrcnt.c dwarf_getabbrevattr.c \
- dwarf_getsrclines.c dwarf_getsrc_die.c \
- dwarf_linesrc.c dwarf_lineno.c dwarf_lineaddr.c \
- dwarf_linecol.c dwarf_linebeginstatement.c \
- dwarf_lineendsequence.c dwarf_lineblock.c \
- dwarf_lineprologueend.c dwarf_lineepiloguebegin.c \
- dwarf_onesrcline.c dwarf_formblock.c \
- dwarf_getsrcfiles.c dwarf_filesrc.c \
- dwarf_getloclist.c dwarf_getstring.c dwarf_offabbrev.c \
- dwarf_getaranges.c dwarf_onearange.c dwarf_getarangeinfo.c \
- dwarf_getarange_addr.c dwarf_getattrs.c dwarf_formflag.c \
- dwarf_getmacros.c \
- libdw_findcu.c libdw_form.c libdw_alloc.c
-
-@MUDFLAP_FALSE@libdw_pic_a_SOURCES =
-@MUDFLAP_FALSE@am_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os)
-@MUDFLAP_FALSE@libdw_so_SOURCES =
-noinst_HEADERS = libdwP.h memory-access.h dwarf_abbrev_hash.h
-EXTRA_DIST = libdw.map
-CLEANFILES = $(am_libdw_pic_a_OBJECTS)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits libdw/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits libdw/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-libLIBRARIES: $(lib_LIBRARIES)
- @$(NORMAL_INSTALL)
- test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- f=$(am__strip_dir) \
- echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
- $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
- else :; fi; \
- done
- @$(POST_INSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- p=$(am__strip_dir) \
- echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \
- $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \
- else :; fi; \
- done
-
-uninstall-libLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- p=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \
- rm -f "$(DESTDIR)$(libdir)/$$p"; \
- done
-
-clean-libLIBRARIES:
- -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libdw.a: $(libdw_a_OBJECTS) $(libdw_a_DEPENDENCIES)
- -rm -f libdw.a
- $(libdw_a_AR) libdw.a $(libdw_a_OBJECTS) $(libdw_a_LIBADD)
- $(RANLIB) libdw.a
-libdw_pic.a: $(libdw_pic_a_OBJECTS) $(libdw_pic_a_DEPENDENCIES)
- -rm -f libdw_pic.a
- $(libdw_pic_a_AR) libdw_pic.a $(libdw_pic_a_OBJECTS) $(libdw_pic_a_LIBADD)
- $(RANLIB) libdw_pic.a
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-@MUDFLAP_TRUE@libdw.so$(EXEEXT): $(libdw_so_OBJECTS) $(libdw_so_DEPENDENCIES)
-@MUDFLAP_TRUE@ @rm -f libdw.so$(EXEEXT)
-@MUDFLAP_TRUE@ $(LINK) $(libdw_so_LDFLAGS) $(libdw_so_OBJECTS) $(libdw_so_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_abbrev_hash.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_abbrevhaschildren.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_arrayorder.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_attr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_begin.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_begin_elf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_bitoffset.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_bitsize.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_bytesize.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_child.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_cuoffset.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_diename.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_dieoffset.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_end.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_error.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_filesrc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_formaddr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_formblock.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_formflag.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_formref.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_formsdata.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_formstring.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_formudata.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getabbrev.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getabbrevattr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getabbrevcode.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getabbrevtag.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getarange_addr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getarangeinfo.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getaranges.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getattrcnt.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getattrs.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getelf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getloclist.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getmacros.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getpubnames.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getsrc_die.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getsrcfiles.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getsrclines.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_getstring.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_hasattr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_haschildren.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_hasform.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_highpc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_lineaddr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_linebeginstatement.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_lineblock.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_linecol.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_lineendsequence.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_lineepiloguebegin.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_lineno.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_lineprologueend.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_linesrc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_lowpc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_nextcu.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_offabbrev.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_offdie.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_onearange.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_onesrcline.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_siblingof.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_srclang.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_tag.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_whatattr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf_whatform.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdw_alloc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdw_findcu.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdw_form.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-euincludeHEADERS: $(euinclude_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(euincludedir)" || $(mkdir_p) "$(DESTDIR)$(euincludedir)"
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(euincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(euincludedir)/$$f'"; \
- $(euincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-
-uninstall-euincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(euincludedir)/$$f'"; \
- rm -f "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)"
- @list='$(include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
- $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)" "$(DESTDIR)$(includedir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-@MUDFLAP_TRUE@install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-@MUDFLAP_TRUE@uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLIBRARIES clean-noinstLIBRARIES \
- clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-euincludeHEADERS install-includeHEADERS
-
-install-exec-am: install-libLIBRARIES
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-euincludeHEADERS uninstall-includeHEADERS \
- uninstall-info-am uninstall-libLIBRARIES
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLIBRARIES clean-noinstLIBRARIES clean-noinstPROGRAMS \
- ctags distclean distclean-compile distclean-generic \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
- install-euincludeHEADERS install-exec install-exec-am \
- install-includeHEADERS install-info install-info-am \
- install-libLIBRARIES install-man install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-euincludeHEADERS \
- uninstall-includeHEADERS uninstall-info-am \
- uninstall-libLIBRARIES
-
-@MUDFLAP_FALSE@libdw.so: libdw_pic.a $(srcdir)/libdw.map
-@MUDFLAP_FALSE@ $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
-@MUDFLAP_FALSE@ -Wl,--version-script,$(srcdir)/libdw.map,--no-undefined \
-@MUDFLAP_FALSE@ -Wl,--soname,$@.$(VERSION),-z,defs \
-@MUDFLAP_FALSE@ ../libelf/libelf.so
-@MUDFLAP_FALSE@ ln -fs $@ $@.$(VERSION)
-
-@MUDFLAP_FALSE@%.os: %.c %.o
-@MUDFLAP_FALSE@ if $(COMPILE) -c -o $@ -fpic -DPIC -DSHARED -MT $@ -MD -MP \
-@MUDFLAP_FALSE@ -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \
-@MUDFLAP_FALSE@ then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
-@MUDFLAP_FALSE@ rm -f "$(DEPDIR)/$*.Tpo"; \
-@MUDFLAP_FALSE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
-@MUDFLAP_FALSE@ fi
-
-@MUDFLAP_FALSE@install: install-am libdw.so
-@MUDFLAP_FALSE@ $(mkinstalldirs) $(DESTDIR)$(libdir)
-@MUDFLAP_FALSE@ $(INSTALL_PROGRAM) libdw.so $(DESTDIR)$(libdir)/libdw-$(PACKAGE_VERSION).so
-@MUDFLAP_FALSE@ ln -fs libdw-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libdw.so.$(VERSION)
-@MUDFLAP_FALSE@ ln -fs libdw.so.$(VERSION) $(DESTDIR)$(libdir)/libdw.so
-
-@MUDFLAP_FALSE@uninstall: uninstall-am
-@MUDFLAP_FALSE@ rm -f $(DESTDIR)$(libdir)/libdw-$(PACKAGE_VERSION).so
-@MUDFLAP_FALSE@ rm -f $(DESTDIR)$(libdir)/libdw.so.$(VERSION)
-@MUDFLAP_FALSE@ rm -f $(DESTDIR)$(libdir)/libdw.so
-@MUDFLAP_FALSE@ rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/elfutils
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libdw/dwarf.h b/libdw/dwarf.h
deleted file mode 100644
index 69be35a7..00000000
--- a/libdw/dwarf.h
+++ /dev/null
@@ -1,554 +0,0 @@
-/* This file defines standard DWARF types, structures, and macros.
- Copyright (C) 2000, 2002 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _DWARF_H
-#define _DWARF_H 1
-
-/* DWARF tags. */
-enum
- {
- DW_TAG_array_type = 0x01,
- DW_TAG_class_type = 0x02,
- DW_TAG_entry_point = 0x03,
- DW_TAG_enumeration_type = 0x04,
- DW_TAG_formal_parameter = 0x05,
- DW_TAG_imported_declaration = 0x08,
- DW_TAG_label = 0x0a,
- DW_TAG_lexical_block = 0x0b,
- DW_TAG_member = 0x0d,
- DW_TAG_pointer_type = 0x0f,
- DW_TAG_reference_type = 0x10,
- DW_TAG_compile_unit = 0x11,
- DW_TAG_string_type = 0x12,
- DW_TAG_structure_type = 0x13,
- DW_TAG_subroutine_type = 0x15,
- DW_TAG_typedef = 0x16,
- DW_TAG_union_type = 0x17,
- DW_TAG_unspecified_parameters = 0x18,
- DW_TAG_variant = 0x19,
- DW_TAG_common_block = 0x1a,
- DW_TAG_common_inclusion = 0x1b,
- DW_TAG_inheritance = 0x1c,
- DW_TAG_inlined_subroutine = 0x1d,
- DW_TAG_module = 0x1e,
- DW_TAG_ptr_to_member_type = 0x1f,
- DW_TAG_set_type = 0x20,
- DW_TAG_subrange_type = 0x21,
- DW_TAG_with_stmt = 0x22,
- DW_TAG_access_declaration = 0x23,
- DW_TAG_base_type = 0x24,
- DW_TAG_catch_block = 0x25,
- DW_TAG_const_type = 0x26,
- DW_TAG_constant = 0x27,
- DW_TAG_enumerator = 0x28,
- DW_TAG_file_type = 0x29,
- DW_TAG_friend = 0x2a,
- DW_TAG_namelist = 0x2b,
- DW_TAG_namelist_item = 0x2c,
- DW_TAG_packed_type = 0x2d,
- DW_TAG_subprogram = 0x2e,
- DW_TAG_template_type_param = 0x2f,
- DW_TAG_template_value_param = 0x30,
- DW_TAG_thrown_type = 0x31,
- DW_TAG_try_block = 0x32,
- DW_TAG_variant_part = 0x33,
- DW_TAG_variable = 0x34,
- DW_TAG_volatile_type = 0x35,
- DW_TAG_lo_user = 0x4080,
- DW_TAG_MIPS_loop = 0x4081,
- DW_TAG_format_label = 0x4101,
- DW_TAG_function_template = 0x4102,
- DW_TAG_class_template = 0x4103,
- DW_TAG_hi_user = 0xffff
- };
-
-
-/* Children determination encodings. */
-enum
- {
- DW_CHILDREN_no = 0,
- DW_CHILDREN_yes = 1
- };
-
-
-/* DWARF attributes encodings. */
-enum
- {
- DW_AT_sibling = 0x01,
- DW_AT_location = 0x02,
- DW_AT_name = 0x03,
- DW_AT_ordering = 0x09,
- DW_AT_subscr_data = 0x0a,
- DW_AT_byte_size = 0x0b,
- DW_AT_bit_offset = 0x0c,
- DW_AT_bit_size = 0x0d,
- DW_AT_element_list = 0x0f,
- DW_AT_stmt_list = 0x10,
- DW_AT_low_pc = 0x11,
- DW_AT_high_pc = 0x12,
- DW_AT_language = 0x13,
- DW_AT_member = 0x14,
- DW_AT_discr = 0x15,
- DW_AT_discr_value = 0x16,
- DW_AT_visibility = 0x17,
- DW_AT_import = 0x18,
- DW_AT_string_length = 0x19,
- DW_AT_common_reference = 0x1a,
- DW_AT_comp_dir = 0x1b,
- DW_AT_const_value = 0x1c,
- DW_AT_containing_type = 0x1d,
- DW_AT_default_value = 0x1e,
- DW_AT_inline = 0x20,
- DW_AT_is_optional = 0x21,
- DW_AT_lower_bound = 0x22,
- DW_AT_producer = 0x25,
- DW_AT_prototyped = 0x27,
- DW_AT_return_addr = 0x2a,
- DW_AT_start_scope = 0x2c,
- DW_AT_stride_size = 0x2e,
- DW_AT_upper_bound = 0x2f,
- DW_AT_abstract_origin = 0x31,
- DW_AT_accessibility = 0x32,
- DW_AT_address_class = 0x33,
- DW_AT_artificial = 0x34,
- DW_AT_base_types = 0x35,
- DW_AT_calling_convention = 0x36,
- DW_AT_count = 0x37,
- DW_AT_data_member_location = 0x38,
- DW_AT_decl_column = 0x39,
- DW_AT_decl_file = 0x3a,
- DW_AT_decl_line = 0x3b,
- DW_AT_declaration = 0x3c,
- DW_AT_discr_list = 0x3d,
- DW_AT_encoding = 0x3e,
- DW_AT_external = 0x3f,
- DW_AT_frame_base = 0x40,
- DW_AT_friend = 0x41,
- DW_AT_identifier_case = 0x42,
- DW_AT_macro_info = 0x43,
- DW_AT_namelist_items = 0x44,
- DW_AT_priority = 0x45,
- DW_AT_segment = 0x46,
- DW_AT_specification = 0x47,
- DW_AT_static_link = 0x48,
- DW_AT_type = 0x49,
- DW_AT_use_location = 0x4a,
- DW_AT_variable_parameter = 0x4b,
- DW_AT_virtuality = 0x4c,
- DW_AT_vtable_elem_location = 0x4d,
- DW_AT_lo_user = 0x2000,
- DW_AT_MIPS_fde = 0x2001,
- DW_AT_MIPS_loop_begin = 0x2002,
- DW_AT_MIPS_tail_loop_begin = 0x2003,
- DW_AT_MIPS_epilog_begin = 0x2004,
- DW_AT_MIPS_loop_unroll_factor = 0x2005,
- DW_AT_MIPS_software_pipeline_depth = 0x2006,
- DW_AT_MIPS_linkage_name = 0x2007,
- DW_AT_MIPS_stride = 0x2008,
- DW_AT_MIPS_abstract_name = 0x2009,
- DW_AT_MIPS_clone_origin = 0x200a,
- DW_AT_MIPS_has_inlines = 0x200b,
- DW_AT_MIPS_stride_byte = 0x200c,
- DW_AT_MIPS_stride_elem = 0x200d,
- DW_AT_MIPS_ptr_dopetype = 0x200e,
- DW_AT_MIPS_allocatable_dopetype = 0x200f,
- DW_AT_MIPS_assumed_shape_dopetype = 0x2010,
- DW_AT_MIPS_assumed_size = 0x2011,
- DW_AT_sf_names = 0x2101,
- DW_AT_src_info = 0x2102,
- DW_AT_mac_info = 0x2103,
- DW_AT_src_coords = 0x2104,
- DW_AT_body_begin = 0x2105,
- DW_AT_body_end = 0x2106,
- DW_AT_hi_user = 0x3fff
- };
-
-
-/* DWARF form encodings. */
-enum
- {
- DW_FORM_addr = 0x01,
- DW_FORM_block2 = 0x03,
- DW_FORM_block4 = 0x04,
- DW_FORM_data2 = 0x05,
- DW_FORM_data4 = 0x06,
- DW_FORM_data8 = 0x07,
- DW_FORM_string = 0x08,
- DW_FORM_block = 0x09,
- DW_FORM_block1 = 0x0a,
- DW_FORM_data1 = 0x0b,
- DW_FORM_flag = 0x0c,
- DW_FORM_sdata = 0x0d,
- DW_FORM_strp = 0x0e,
- DW_FORM_udata = 0x0f,
- DW_FORM_ref_addr = 0x10,
- DW_FORM_ref1 = 0x11,
- DW_FORM_ref2 = 0x12,
- DW_FORM_ref4 = 0x13,
- DW_FORM_ref8 = 0x14,
- DW_FORM_ref_udata = 0x15,
- DW_FORM_indirect = 0x16
- };
-
-
-/* DWARF location operation encodings. */
-enum
- {
- DW_OP_addr = 0x03, /* Constant address. */
- DW_OP_deref = 0x06,
- DW_OP_const1u = 0x08, /* Unsigned 1-byte constant. */
- DW_OP_const1s = 0x09, /* Signed 1-byte constant. */
- DW_OP_const2u = 0x0a, /* Unsigned 2-byte constant. */
- DW_OP_const2s = 0x0b, /* Signed 2-byte constant. */
- DW_OP_const4u = 0x0c, /* Unsigned 4-byte constant. */
- DW_OP_const4s = 0x0d, /* Signed 4-byte constant. */
- DW_OP_const8u = 0x0e, /* Unsigned 8-byte constant. */
- DW_OP_const8s = 0x0f, /* Signed 8-byte constant. */
- DW_OP_constu = 0x10, /* Unsigned LEB128 constant. */
- DW_OP_consts = 0x11, /* Signed LEB128 constant. */
- DW_OP_dup = 0x12,
- DW_OP_drop = 0x13,
- DW_OP_over = 0x14,
- DW_OP_pick = 0x15, /* 1-byte stack index. */
- DW_OP_swap = 0x16,
- DW_OP_rot = 0x17,
- DW_OP_xderef = 0x18,
- DW_OP_abs = 0x19,
- DW_OP_and = 0x1a,
- DW_OP_div = 0x1b,
- DW_OP_minus = 0x1c,
- DW_OP_mod = 0x1d,
- DW_OP_mul = 0x1e,
- DW_OP_neg = 0x1f,
- DW_OP_not = 0x20,
- DW_OP_or = 0x21,
- DW_OP_plus = 0x22,
- DW_OP_plus_uconst = 0x23, /* Unsigned LEB128 addend. */
- DW_OP_shl = 0x24,
- DW_OP_shr = 0x25,
- DW_OP_shra = 0x26,
- DW_OP_xor = 0x27,
- DW_OP_bra = 0x28, /* Signed 2-byte constant. */
- DW_OP_eq = 0x29,
- DW_OP_ge = 0x2a,
- DW_OP_gt = 0x2b,
- DW_OP_le = 0x2c,
- DW_OP_lt = 0x2d,
- DW_OP_ne = 0x2e,
- DW_OP_skip = 0x2f, /* Signed 2-byte constant. */
- DW_OP_lit0 = 0x30, /* Literal 0. */
- DW_OP_lit1 = 0x31, /* Literal 1. */
- DW_OP_lit2 = 0x32, /* Literal 2. */
- DW_OP_lit3 = 0x33, /* Literal 3. */
- DW_OP_lit4 = 0x34, /* Literal 4. */
- DW_OP_lit5 = 0x35, /* Literal 5. */
- DW_OP_lit6 = 0x36, /* Literal 6. */
- DW_OP_lit7 = 0x37, /* Literal 7. */
- DW_OP_lit8 = 0x38, /* Literal 8. */
- DW_OP_lit9 = 0x39, /* Literal 9. */
- DW_OP_lit10 = 0x3a, /* Literal 10. */
- DW_OP_lit11 = 0x3b, /* Literal 11. */
- DW_OP_lit12 = 0x3c, /* Literal 12. */
- DW_OP_lit13 = 0x3d, /* Literal 13. */
- DW_OP_lit14 = 0x3e, /* Literal 14. */
- DW_OP_lit15 = 0x3f, /* Literal 15. */
- DW_OP_lit16 = 0x40, /* Literal 16. */
- DW_OP_lit17 = 0x41, /* Literal 17. */
- DW_OP_lit18 = 0x42, /* Literal 18. */
- DW_OP_lit19 = 0x43, /* Literal 19. */
- DW_OP_lit20 = 0x44, /* Literal 20. */
- DW_OP_lit21 = 0x45, /* Literal 21. */
- DW_OP_lit22 = 0x46, /* Literal 22. */
- DW_OP_lit23 = 0x47, /* Literal 23. */
- DW_OP_lit24 = 0x48, /* Literal 24. */
- DW_OP_lit25 = 0x49, /* Literal 25. */
- DW_OP_lit26 = 0x4a, /* Literal 26. */
- DW_OP_lit27 = 0x4b, /* Literal 27. */
- DW_OP_lit28 = 0x4c, /* Literal 28. */
- DW_OP_lit29 = 0x4d, /* Literal 29. */
- DW_OP_lit30 = 0x4e, /* Literal 30. */
- DW_OP_lit31 = 0x4f, /* Literal 31. */
- DW_OP_reg0 = 0x50, /* Register 0. */
- DW_OP_reg1 = 0x51, /* Register 1. */
- DW_OP_reg2 = 0x52, /* Register 2. */
- DW_OP_reg3 = 0x53, /* Register 3. */
- DW_OP_reg4 = 0x54, /* Register 4. */
- DW_OP_reg5 = 0x55, /* Register 5. */
- DW_OP_reg6 = 0x56, /* Register 6. */
- DW_OP_reg7 = 0x57, /* Register 7. */
- DW_OP_reg8 = 0x58, /* Register 8. */
- DW_OP_reg9 = 0x59, /* Register 9. */
- DW_OP_reg10 = 0x5a, /* Register 10. */
- DW_OP_reg11 = 0x5b, /* Register 11. */
- DW_OP_reg12 = 0x5c, /* Register 12. */
- DW_OP_reg13 = 0x5d, /* Register 13. */
- DW_OP_reg14 = 0x5e, /* Register 14. */
- DW_OP_reg15 = 0x5f, /* Register 15. */
- DW_OP_reg16 = 0x60, /* Register 16. */
- DW_OP_reg17 = 0x61, /* Register 17. */
- DW_OP_reg18 = 0x62, /* Register 18. */
- DW_OP_reg19 = 0x63, /* Register 19. */
- DW_OP_reg20 = 0x64, /* Register 20. */
- DW_OP_reg21 = 0x65, /* Register 21. */
- DW_OP_reg22 = 0x66, /* Register 22. */
- DW_OP_reg23 = 0x67, /* Register 24. */
- DW_OP_reg24 = 0x68, /* Register 24. */
- DW_OP_reg25 = 0x69, /* Register 25. */
- DW_OP_reg26 = 0x6a, /* Register 26. */
- DW_OP_reg27 = 0x6b, /* Register 27. */
- DW_OP_reg28 = 0x6c, /* Register 28. */
- DW_OP_reg29 = 0x6d, /* Register 29. */
- DW_OP_reg30 = 0x6e, /* Register 30. */
- DW_OP_reg31 = 0x6f, /* Register 31. */
- DW_OP_breg0 = 0x70, /* Base register 0. */
- DW_OP_breg1 = 0x71, /* Base register 1. */
- DW_OP_breg2 = 0x72, /* Base register 2. */
- DW_OP_breg3 = 0x73, /* Base register 3. */
- DW_OP_breg4 = 0x74, /* Base register 4. */
- DW_OP_breg5 = 0x75, /* Base register 5. */
- DW_OP_breg6 = 0x76, /* Base register 6. */
- DW_OP_breg7 = 0x77, /* Base register 7. */
- DW_OP_breg8 = 0x78, /* Base register 8. */
- DW_OP_breg9 = 0x79, /* Base register 9. */
- DW_OP_breg10 = 0x7a, /* Base register 10. */
- DW_OP_breg11 = 0x7b, /* Base register 11. */
- DW_OP_breg12 = 0x7c, /* Base register 12. */
- DW_OP_breg13 = 0x7d, /* Base register 13. */
- DW_OP_breg14 = 0x7e, /* Base register 14. */
- DW_OP_breg15 = 0x7f, /* Base register 15. */
- DW_OP_breg16 = 0x80, /* Base register 16. */
- DW_OP_breg17 = 0x81, /* Base register 17. */
- DW_OP_breg18 = 0x82, /* Base register 18. */
- DW_OP_breg19 = 0x83, /* Base register 19. */
- DW_OP_breg20 = 0x84, /* Base register 20. */
- DW_OP_breg21 = 0x85, /* Base register 21. */
- DW_OP_breg22 = 0x86, /* Base register 22. */
- DW_OP_breg23 = 0x87, /* Base register 23. */
- DW_OP_breg24 = 0x88, /* Base register 24. */
- DW_OP_breg25 = 0x89, /* Base register 25. */
- DW_OP_breg26 = 0x8a, /* Base register 26. */
- DW_OP_breg27 = 0x8b, /* Base register 27. */
- DW_OP_breg28 = 0x8c, /* Base register 28. */
- DW_OP_breg29 = 0x8d, /* Base register 29. */
- DW_OP_breg30 = 0x8e, /* Base register 30. */
- DW_OP_breg31 = 0x8f, /* Base register 31. */
- DW_OP_regx = 0x90, /* Unsigned LEB128 register. */
- DW_OP_fbreg = 0x91, /* Signed LEB128 register. */
- DW_OP_bregx = 0x92, /* ULEB128 register followed by SLEB128 off. */
- DW_OP_piece = 0x93, /* ULEB128 size of piece addressed. */
- DW_OP_deref_size = 0x94, /* 1-byte size of data retrieved. */
- DW_OP_xderef_size = 0x95, /* 1-byte size of data retrieved. */
- DW_OP_nop = 0x96,
- DW_OP_push_object_address = 0x97,
- DW_OP_call2 = 0x98,
- DW_OP_call4 = 0x99,
- DW_OP_call_ref = 0x9a,
-
- DW_OP_lo_user = 0xe0, /* Implementation-defined range start. */
- DW_OP_hi_user = 0xff /* Implementation-defined range end. */
- };
-
-
-/* DWARF base type encodings. */
-enum
- {
- DW_ATE_void = 0x0,
- DW_ATE_address = 0x1,
- DW_ATE_boolean = 0x2,
- DW_ATE_complex_float = 0x3,
- DW_ATE_float = 0x4,
- DW_ATE_signed = 0x5,
- DW_ATE_signed_char = 0x6,
- DW_ATE_unsigned = 0x7,
- DW_ATE_unsigned_char = 0x8,
-
- DW_ATE_lo_user = 0x80,
- DW_ATE_hi_user = 0xff
- };
-
-
-/* DWARF accessibility encodings. */
-enum
- {
- DW_ACCESS_public = 1,
- DW_ACCESS_protected = 2,
- DW_ACCESS_private = 3
- };
-
-
-/* DWARF visibility encodings. */
-enum
- {
- DW_VIS_local = 1,
- DW_VIS_exported = 2,
- DW_VIS_qualified = 3
- };
-
-
-/* DWARF virtuality encodings. */
-enum
- {
- DW_VIRTUALITY_none = 0,
- DW_VIRTUALITY_virtual = 1,
- DW_VIRTUALITY_pure_virtual = 2
- };
-
-
-/* DWARF language encodings. */
-enum
- {
- DW_LANG_C89 = 0x0001,
- DW_LANG_C = 0x0002,
- DW_LANG_Ada83 = 0x0003,
- DW_LANG_C_plus_plus = 0x0004,
- DW_LANG_Cobol74 = 0x0005,
- DW_LANG_Cobol85 = 0x0006,
- DW_LANG_Fortran77 = 0x0007,
- DW_LANG_Fortran90 = 0x0008,
- DW_LANG_Pascal83 = 0x0009,
- DW_LANG_Modula2 = 0x000a,
- DW_LANG_Java = 0x000b,
- DW_LANG_C99 = 0x000c,
- DW_LANG_Ada95 = 0x000d,
- DW_LANG_Fortran95 = 0x000e,
- DW_LANG_PL1 = 0x000f,
- DW_LANG_lo_user = 0x8000,
- DW_LANG_Mips_Assembler = 0x8001,
- DW_LANG_hi_user = 0xffff
- };
-
-
-/* DWARF identifier case encodings. */
-enum
- {
- DW_ID_case_sensitive = 0,
- DW_ID_up_case = 1,
- DW_ID_down_case = 2,
- DW_ID_case_insensitive = 3
- };
-
-
-/* DWARF calling conventions encodings. */
-enum
- {
- DW_CC_normal = 0x1,
- DW_CC_program = 0x2,
- DW_CC_nocall = 0x3,
- DW_CC_lo_user = 0x40,
- DW_CC_hi_user = 0xff
- };
-
-
-/* DWARF inline encodings. */
-enum
- {
- DW_INL_not_inlined = 0,
- DW_INL_inlined = 1,
- DW_INL_declared_not_inlined = 2,
- DW_INL_declared_inlined = 3
- };
-
-
-/* DWARF ordering encodings. */
-enum
- {
- DW_ORD_row_major = 0,
- DW_ORD_col_major = 1
- };
-
-
-/* DWARF discriminant descriptor encodings. */
-enum
- {
- DW_DSC_label = 0,
- DW_DSC_range = 1
- };
-
-
-/* DWARF standard opcode encodings. */
-enum
- {
- DW_LNS_copy = 1,
- DW_LNS_advance_pc = 2,
- DW_LNS_advance_line = 3,
- DW_LNS_set_file = 4,
- DW_LNS_set_column = 5,
- DW_LNS_negate_stmt = 6,
- DW_LNS_set_basic_block = 7,
- DW_LNS_const_add_pc = 8,
- DW_LNS_fixed_advance_pc = 9,
- DW_LNS_set_prologue_end = 10,
- DW_LNS_set_epilog_begin = 11
- };
-
-
-/* DWARF extended opcide encodings. */
-enum
- {
- DW_LNE_end_sequence = 1,
- DW_LNE_set_address = 2,
- DW_LNE_define_file = 3
- };
-
-
-/* DWARF macinfo type encodings. */
-enum
- {
- DW_MACINFO_define = 1,
- DW_MACINFO_undef = 2,
- DW_MACINFO_start_file = 3,
- DW_MACINFO_end_file = 4,
- DW_MACINFO_vendor_ext = 255
- };
-
-
-/* DWARF call frame instruction encodings. */
-enum
- {
- DW_CFA_advance_loc = 0x40,
- DW_CFA_offset = 0x80,
- DW_CFA_restore = 0xc0,
- DW_CFA_extended = 0,
-
- DW_CFA_nop = 0x00,
- DW_CFA_set_loc = 0x01,
- DW_CFA_advance_loc1 = 0x02,
- DW_CFA_advance_loc2 = 0x03,
- DW_CFA_advance_loc4 = 0x04,
- DW_CFA_offset_extended = 0x05,
- DW_CFA_restore_extended = 0x06,
- DW_CFA_undefined = 0x07,
- DW_CFA_same_value = 0x08,
- DW_CFA_register = 0x09,
- DW_CFA_remember_state = 0x0a,
- DW_CFA_restore_state = 0x0b,
- DW_CFA_def_cfa = 0x0c,
- DW_CFA_def_cfa_register = 0x0d,
- DW_CFA_def_cfa_offset = 0x0e,
- DW_CFA_def_cfa_expression = 0x0f,
- DW_CFA_expression = 0x10,
- DW_CFA_offset_extended_sf = 0x11,
- DW_CFA_def_cfa_sf = 0x12,
- DW_CFA_def_cfa_offset_sf = 0x13,
- DW_CFA_low_user = 0x1c,
- DW_CFA_MIPS_advance_loc8 = 0x1d,
- DW_CFA_GNU_window_save = 0x2d,
- DW_CFA_GNU_args_size = 0x2e,
- DW_CFA_high_user = 0x3f
- };
-
-
-/* DWARF XXX. */
-#define DW_ADDR_none 0
-
-#endif /* dwarf.h */
diff --git a/libdw/dwarf_abbrev_hash.c b/libdw/dwarf_abbrev_hash.c
deleted file mode 100644
index 009e757f..00000000
--- a/libdw/dwarf_abbrev_hash.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Implementation of hash table for DWARF .debug_abbrev section content.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#define NO_UNDEF
-#include "libdwP.h"
-
-#define next_prime __libdwarf_next_prime
-extern size_t next_prime (size_t) attribute_hidden;
-
-#include <dynamicsizehash.c>
-
-#undef next_prime
-#define next_prime attribute_hidden __libdwarf_next_prime
-#include "../lib/next_prime.c"
diff --git a/libdw/dwarf_abbrev_hash.h b/libdw/dwarf_abbrev_hash.h
deleted file mode 100644
index ef3cc48b..00000000
--- a/libdw/dwarf_abbrev_hash.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Hash table for DWARF .debug_abbrev section content.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _DWARF_ABBREV_HASH_H
-#define _DWARF_ABBREV_HASH_H 1
-
-#define NAME Dwarf_Abbrev_Hash
-#define TYPE Dwarf_Abbrev *
-#define COMPARE(a, b) (0)
-
-#include <dynamicsizehash.h>
-
-#endif /* dwarf_abbrev_hash.h */
diff --git a/libdw/dwarf_abbrevhaschildren.c b/libdw/dwarf_abbrevhaschildren.c
deleted file mode 100644
index 2261b2f3..00000000
--- a/libdw/dwarf_abbrevhaschildren.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Return true if abbreviation is children flag set.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_abbrevhaschildren (abbrev)
- Dwarf_Abbrev *abbrev;
-{
- return abbrev == NULL ? -1 : abbrev->has_children;
-}
diff --git a/libdw/dwarf_arrayorder.c b/libdw/dwarf_arrayorder.c
deleted file mode 100644
index 072e70db..00000000
--- a/libdw/dwarf_arrayorder.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Return array order attribute of DIE.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_arrayorder (die)
- Dwarf_Die *die;
-{
- Dwarf_Attribute attr_mem;
- Dwarf_Word value;
-
- return dwarf_formudata (dwarf_attr (die, DW_AT_ordering, &attr_mem),
- &value) == 0 ? (int) value : -1;
-}
diff --git a/libdw/dwarf_attr.c b/libdw/dwarf_attr.c
deleted file mode 100644
index a09f11ac..00000000
--- a/libdw/dwarf_attr.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Return specific DWARF attribute of a DIE.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-Dwarf_Attribute *
-dwarf_attr (die, search_name, result)
- Dwarf_Die *die;
- unsigned int search_name;
- Dwarf_Attribute *result;
-{
- if (die == NULL)
- return NULL;
-
- /* Search for the attribute with the given name. */
- result->valp = __libdw_find_attr (die, search_name, &result->code,
- &result->form);
- /* Always fill in the CU information. */
- result->cu = die->cu;
-
- return result->code == search_name ? result : NULL;
-}
diff --git a/libdw/dwarf_begin.c b/libdw/dwarf_begin.c
deleted file mode 100644
index a2ffa1c6..00000000
--- a/libdw/dwarf_begin.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Create descriptor from file descriptor for processing file.
- Copyright (C) 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <errno.h>
-#include <stddef.h>
-#include <sys/stat.h>
-
-#include <libdwP.h>
-
-
-Dwarf *
-dwarf_begin (fd, cmd)
- int fd;
- Dwarf_Cmd cmd;
-{
- Elf *elf;
- Elf_Cmd elfcmd;
- Dwarf *result = NULL;
-
- switch (cmd)
- {
- case DWARF_C_READ:
- elfcmd = ELF_C_READ_MMAP;
- break;
- case DWARF_C_WRITE:
- elfcmd = ELF_C_WRITE;
- break;
- case DWARF_C_RDWR:
- elfcmd = ELF_C_RDWR;
- break;
- default:
- /* No valid mode. */
- __libdw_seterrno (DWARF_E_INVALID_CMD);
- return NULL;
- }
-
- /* We have to call `elf_version' here since the user might have not
- done it or initialized libelf with a different version. This
- would break libdwarf since we are using the ELF data structures
- in a certain way. */
- elf_version (EV_CURRENT);
-
- /* Get an ELF descriptor. */
- elf = elf_begin (fd, elfcmd, NULL);
- if (elf == NULL)
- {
- /* Test why the `elf_begin" call failed. */
- struct stat64 st;
-
- if (fstat64 (fd, &st) == 0 && ! S_ISREG (st.st_mode))
- __libdw_seterrno (DWARF_E_NO_REGFILE);
- else if (errno == EBADF)
- __libdw_seterrno (DWARF_E_INVALID_FILE);
- else
- __libdw_seterrno (DWARF_E_IO_ERROR);
- }
- else
- {
- /* Do the real work now that we have an ELF descriptor. */
- result = dwarf_begin_elf (elf, cmd, NULL);
-
- /* If this failed, free the resources. */
- if (result == NULL)
- elf_end (elf);
- else
- result->free_elf = true;
- }
-
- return result;
-}
diff --git a/libdw/dwarf_begin_elf.c b/libdw/dwarf_begin_elf.c
deleted file mode 100644
index a9aa197c..00000000
--- a/libdw/dwarf_begin_elf.c
+++ /dev/null
@@ -1,251 +0,0 @@
-/* Create descriptor from ELF descriptor for processing file.
- Copyright (C) 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/stat.h>
-
-#include "libdwP.h"
-
-
-/* Section names. */
-static const char dwarf_scnnames[IDX_last][17] =
-{
- [IDX_debug_info] = ".debug_info",
- [IDX_debug_abbrev] = ".debug_abbrev",
- [IDX_debug_aranges] = ".debug_aranges",
- [IDX_debug_line] = ".debug_line",
- [IDX_debug_frame] = ".debug_frame",
- [IDX_eh_frame] = ".eh_frame",
- [IDX_debug_loc] = ".debug_loc",
- [IDX_debug_pubnames] = ".debug_pubnames",
- [IDX_debug_str] = ".debug_str",
- [IDX_debug_funcnames] = ".debug_funcnames",
- [IDX_debug_typenames] = ".debug_typenames",
- [IDX_debug_varnames] = ".debug_varnames",
- [IDX_debug_weaknames] = ".debug_weaknames",
- [IDX_debug_macinfo] = ".debug_macinfo"
-};
-#define ndwarf_scnnames (sizeof (dwarf_scnnames) / sizeof (dwarf_scnnames[0]))
-
-
-static void
-check_section (Dwarf *result, GElf_Ehdr *ehdr, Elf_Scn *scn, bool inscngrp)
-{
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
-
- /* Get the section header data. */
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- /* This should never happen. If it does something is
- wrong in the libelf library. */
- abort ();
-
-
- /* Make sure the section is part of a section group only iff we
- really need it. If we are looking for the global (= non-section
- group debug info) we have to ignore all the info in section
- groups. If we are looking into a section group we cannot look at
- a section which isn't part of the section group. */
- if (! inscngrp && (shdr->sh_flags & SHF_GROUP) != 0)
- /* Ignore the section. */
- return;
-
-
- /* We recognize the DWARF section by their names. This is not very
- safe and stable but the best we can do. */
- const char *scnname = elf_strptr (result->elf, ehdr->e_shstrndx,
- shdr->sh_name);
- if (scnname == NULL)
- {
- /* The section name must be valid. Otherwise is the ELF file
- invalid. */
- __libdw_seterrno (DWARF_E_INVALID_ELF);
- free (result);
- return;
- }
-
-
- /* Recognize the various sections. Most names start with .debug_. */
- size_t cnt;
- for (cnt = 0; cnt < ndwarf_scnnames; ++cnt)
- if (strcmp (scnname, dwarf_scnnames[cnt]) == 0)
- {
- /* Found it. Remember where the data is. */
- if (unlikely (result->sectiondata[cnt] != NULL))
- /* A section appears twice. That's bad. We ignore the section. */
- break;
-
- /* Get the section data. */
- Elf_Data *data = elf_getdata (scn, NULL);
- if (data != NULL && data->d_size != 0)
- /* Yep, there is actually data available. */
- result->sectiondata[cnt] = data;
-
- break;
- }
-}
-
-
-/* Check whether all the necessary DWARF information is available. */
-static Dwarf *
-valid_p (Dwarf *result)
-{
- /* We looked at all the sections. Now determine whether all the
- sections with debugging information we need are there.
-
- XXX Which sections are absolutely necessary? Add tests if
- necessary. For now we require only .debug_info. Hopefully this
- is correct. */
- if (unlikely (result->sectiondata[IDX_debug_info] == NULL))
- {
- __libdw_seterrno (DWARF_E_NO_DWARF);
- result = NULL;
- }
-
- return result;
-}
-
-
-static Dwarf *
-global_read (Dwarf *result, Elf *elf, GElf_Ehdr *ehdr, Dwarf_Cmd cmd)
-{
- Elf_Scn *scn = NULL;
-
- while ((scn = elf_nextscn (elf, scn)) != NULL)
- check_section (result, ehdr, scn, false);
-
- return valid_p (result);
-}
-
-
-static Dwarf *
-scngrp_read (Dwarf *result, Elf *elf, GElf_Ehdr *ehdr, Dwarf_Cmd cmd,
- Elf_Scn *scngrp)
-{
- /* SCNGRP is the section descriptor for a section group which might
- contain debug sections. */
- Elf_Data *data = elf_getdata (scngrp, NULL);
- if (data == NULL)
- {
- /* We cannot read the section content. Fail! */
- free (result);
- return NULL;
- }
-
- /* The content of the section is a number of 32-bit words which
- represent section indices. The first word is a flag word. */
- Elf32_Word *scnidx = (Elf32_Word *) data->d_buf;
- size_t cnt;
- for (cnt = 1; cnt * sizeof (Elf32_Word) <= data->d_size; ++cnt)
- {
- Elf_Scn *scn = elf_getscn (elf, scnidx[cnt]);
- if (scn == NULL)
- {
- /* A section group refers to a non-existing section. Should
- never happen. */
- __libdw_seterrno (DWARF_E_INVALID_ELF);
- free (result);
- return NULL;
- }
-
- check_section (result, ehdr, scn, true);
- }
-
- return valid_p (result);
-}
-
-
-Dwarf *
-dwarf_begin_elf (elf, cmd, scngrp)
- Elf *elf;
- Dwarf_Cmd cmd;
- Elf_Scn *scngrp;
-{
- GElf_Ehdr *ehdr;
- GElf_Ehdr ehdr_mem;
-
- /* Get the ELF header of the file. We need various pieces of
- information from it. */
- ehdr = gelf_getehdr (elf, &ehdr_mem);
- if (ehdr == NULL)
- {
- if (elf_kind (elf) != ELF_K_ELF)
- __libdw_seterrno (DWARF_E_NOELF);
- else
- __libdw_seterrno (DWARF_E_GETEHDR_ERROR);
-
- return NULL;
- }
-
-
- /* Default memory allocation size. */
- size_t mem_default_size = sysconf (_SC_PAGESIZE) - 4 * sizeof (void *);
-
- /* Allocate the data structure. */
- Dwarf *result = (Dwarf *) calloc (1, sizeof (Dwarf) + mem_default_size);
- if (result == NULL)
- {
- __libdw_seterrno (DWARF_E_NOMEM);
- return NULL;
- }
-
- /* Fill in some values. */
- if ((BYTE_ORDER == LITTLE_ENDIAN && ehdr->e_ident[EI_DATA] == ELFDATA2MSB)
- || (BYTE_ORDER == BIG_ENDIAN && ehdr->e_ident[EI_DATA] == ELFDATA2LSB))
- result->other_byte_order = true;
-
- result->elf = elf;
-
- /* Initialize the memory handling. */
- result->mem_default_size = mem_default_size;
- result->oom_handler = __libdw_oom;
- result->mem_tail = (struct libdw_memblock *) (result + 1);
- result->mem_tail->size = (result->mem_default_size
- - offsetof (struct libdw_memblock, mem));
- result->mem_tail->remaining = result->mem_tail->size;
- result->mem_tail->prev = NULL;
-
-
- if (cmd == DWARF_C_READ || cmd == DWARF_C_RDWR)
- {
- /* If the caller provides a section group we get the DWARF
- sections only from this setion group. Otherwise we search
- for the first section with the required name. Further
- sections with the name are ignored. The DWARF specification
- does not really say this is allowed. */
- if (scngrp == NULL)
- return global_read (result, elf, ehdr, cmd);
- else
- return scngrp_read (result, elf, ehdr, cmd, scngrp);
- }
- else if (cmd == DWARF_C_WRITE)
- {
- __libdw_seterrno (DWARF_E_UNIMPL);
- free (result);
- return NULL;
- }
-
- __libdw_seterrno (DWARF_E_INVALID_CMD);
- free (result);
- return NULL;
-}
diff --git a/libdw/dwarf_bitoffset.c b/libdw/dwarf_bitoffset.c
deleted file mode 100644
index 6addbd72..00000000
--- a/libdw/dwarf_bitoffset.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Return bit offset attribute of DIE.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_bitoffset (die)
- Dwarf_Die *die;
-{
- Dwarf_Attribute attr_mem;
- Dwarf_Word value;
-
- return dwarf_formudata (dwarf_attr (die, DW_AT_bit_offset, &attr_mem),
- &value) == 0 ? (int) value : -1;
-}
diff --git a/libdw/dwarf_bitsize.c b/libdw/dwarf_bitsize.c
deleted file mode 100644
index 93688243..00000000
--- a/libdw/dwarf_bitsize.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Return bit size attribute of DIE.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_bitsize (die)
- Dwarf_Die *die;
-{
- Dwarf_Attribute attr_mem;
- Dwarf_Word value;
-
- return dwarf_formudata (dwarf_attr (die, DW_AT_bit_size, &attr_mem),
- &value) == 0 ? (int) value : -1;
-}
diff --git a/libdw/dwarf_bytesize.c b/libdw/dwarf_bytesize.c
deleted file mode 100644
index 8374676d..00000000
--- a/libdw/dwarf_bytesize.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Return byte size attribute of DIE.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_bytesize (die)
- Dwarf_Die *die;
-{
- Dwarf_Attribute attr_mem;
- Dwarf_Word value;
-
- return dwarf_formudata (dwarf_attr (die, DW_AT_byte_size, &attr_mem),
- &value) == 0 ? (int) value : -1;
-}
diff --git a/libdw/dwarf_child.c b/libdw/dwarf_child.c
deleted file mode 100644
index 0ccac099..00000000
--- a/libdw/dwarf_child.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Return vhild of current DIE.
- Copyright (C) 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-#include <string.h>
-
-/* Some arbitrary value not conflicting with any existing code. */
-#define INVALID 0xffffe444
-
-
-unsigned char *
-internal_function_def
-__libdw_find_attr (Dwarf_Die *die, unsigned int search_name,
- unsigned int *codep, unsigned int *formp)
-{
- Dwarf *dbg = die->cu->dbg;
- unsigned char *readp = (unsigned char *) die->addr;
-
- /* First we have to get the abbreviation code so that we can decode
- the data in the DIE. */
- unsigned int abbrev_code;
- get_uleb128 (abbrev_code, readp);
-
- /* Find the abbreviation entry. */
- Dwarf_Abbrev *abbrevp = die->abbrev;
- if (abbrevp == NULL)
- {
- abbrevp = __libdw_findabbrev (die->cu, abbrev_code);
- die->abbrev = abbrevp ?: (Dwarf_Abbrev *) -1l;
- }
- if (unlikely (die->abbrev == (Dwarf_Abbrev *) -1l))
- {
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- return NULL;
- }
-
- /* Search the name attribute. */
- unsigned char *const endp
- = ((unsigned char *) dbg->sectiondata[IDX_debug_abbrev]->d_buf
- + dbg->sectiondata[IDX_debug_abbrev]->d_size);
-
- unsigned char *attrp = die->abbrev->attrp;
- while (1)
- {
- /* Are we still in bounds? This test needs to be refined. */
- if (unlikely (attrp + 1 >= endp))
- {
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- return NULL;
- }
-
- /* Get attribute name and form.
-
- XXX We don't check whether this reads beyond the end of the
- section. */
- unsigned int attr_name;
- get_uleb128 (attr_name, attrp);
- unsigned int attr_form;
- get_uleb128 (attr_form, attrp);
-
- /* We can stop if we found the attribute with value zero. */
- if (attr_name == 0 && attr_form == 0)
- break;
-
- /* Is this the name attribute? */
- if (attr_name == search_name && search_name != INVALID)
- {
- if (codep != NULL)
- *codep = attr_name;
- if (formp != NULL)
- *formp = attr_form;
-
- return readp;
- }
-
- /* Skip over the rest of this attribute (if there is any). */
- if (attr_form != 0)
- {
- size_t len = __libdw_form_val_len (dbg, die->cu, attr_form, readp);
-
- if (unlikely (len == (size_t) -1l))
- {
- readp = NULL;
- break;
- }
-
- // XXX We need better boundary checks.
- readp += len;
- }
- }
-
- // XXX Do we need other values?
- if (codep != NULL)
- *codep = INVALID;
- if (formp != NULL)
- *formp = INVALID;
-
- return readp;
-}
-
-
-int
-dwarf_child (die, result)
- Dwarf_Die *die;
- Dwarf_Die *result;
-{
- /* Ignore previous errors. */
- if (die == NULL)
- return -1;
-
- /* Skip past the last attribute. */
- void *addr = NULL;
-
- /* If we already know there are no children do not search. */
- if (die->abbrev != (Dwarf_Abbrev *) -1
- && (die->abbrev == NULL || die->abbrev->has_children))
- addr = __libdw_find_attr (die, INVALID, NULL, NULL);
- if (die->abbrev == (Dwarf_Abbrev *) -1l)
- return -1;
-
- /* Make sure the DIE really has children. */
- if (! die->abbrev->has_children)
- /* There cannot be any children. */
- return 1;
-
- if (addr == NULL)
- return -1;
-
- /* RESULT can be the same as DIE. So preserve what we need. */
- struct Dwarf_CU *cu = die->cu;
-
- /* Clear the entire DIE structure. This signals we have not yet
- determined any of the information. */
- memset (result, '\0', sizeof (Dwarf_Die));
-
- /* We have the address. */
- result->addr = addr;
-
- /* Same CU as the parent. */
- result->cu = cu;
-
- return 0;
-}
diff --git a/libdw/dwarf_cuoffset.c b/libdw/dwarf_cuoffset.c
deleted file mode 100644
index f3adfa83..00000000
--- a/libdw/dwarf_cuoffset.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Return offset of DIE in CU.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-Dwarf_Off
-dwarf_cuoffset (die)
- Dwarf_Die *die;
-{
- return (die == NULL
- ? (Dwarf_Off) -1l
- : (die->addr
- - die->cu->dbg->sectiondata[IDX_debug_info]->d_buf
- - die->cu->start));
-}
diff --git a/libdw/dwarf_diename.c b/libdw/dwarf_diename.c
deleted file mode 100644
index 78555dc3..00000000
--- a/libdw/dwarf_diename.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Return string in name attribute of DIE.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-const char *
-dwarf_diename (die)
- Dwarf_Die *die;
-{
- Dwarf_Attribute attr_mem;
-
- return dwarf_formstring (dwarf_attr (die, DW_AT_name, &attr_mem));
-}
diff --git a/libdw/dwarf_dieoffset.c b/libdw/dwarf_dieoffset.c
deleted file mode 100644
index 2657c223..00000000
--- a/libdw/dwarf_dieoffset.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Return offset of DIE.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-Dwarf_Off
-dwarf_dieoffset (die)
- Dwarf_Die *die;
-{
- return (die == NULL
- ? -1l
- : die->addr - die->cu->dbg->sectiondata[IDX_debug_info]->d_buf);
-}
diff --git a/libdw/dwarf_end.c b/libdw/dwarf_end.c
deleted file mode 100644
index 0745d717..00000000
--- a/libdw/dwarf_end.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Release debugging handling context.
- Copyright (C) 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <search.h>
-#include <stdlib.h>
-
-#include "libdwP.h"
-
-
-
-static void
-noop_free (void *arg)
-{
-}
-
-
-static void
-cu_free (void *arg)
-{
- struct Dwarf_CU *p = (struct Dwarf_CU *) arg;
-
- Dwarf_Abbrev_Hash_free (&p->abbrev_hash);
-
- tdestroy (p->locs, noop_free);
-}
-
-
-int
-dwarf_end (dwarf)
- Dwarf *dwarf;
-{
- if (dwarf != NULL)
- {
- /* The search tree for the CUs. NB: the CU data itself is
- allocated separately, but the abbreviation hash tables need
- to be handled. */
- tdestroy (dwarf->cu_tree, cu_free);
-
- struct libdw_memblock *memp = dwarf->mem_tail;
- /* The first block is allocated together with the Dwarf object. */
- while (memp->prev != NULL)
- {
- struct libdw_memblock *prevp = memp->prev;
- free (memp);
- memp = prevp;
- }
-
- /* Free the pubnames helper structure. */
- free (dwarf->pubnames_sets);
-
- /* Free the ELF descriptor if necessary. */
- if (dwarf->free_elf)
- elf_end (dwarf->elf);
-
- /* Free the context descriptor. */
- free (dwarf);
- }
-
- return 0;
-}
diff --git a/libdw/dwarf_error.c b/libdw/dwarf_error.c
deleted file mode 100644
index fe8966ee..00000000
--- a/libdw/dwarf_error.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/* Retrieve ELF descriptor used for DWARF access.
- Copyright (C) 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <stddef.h>
-
-#include "libdwP.h"
-
-
-#ifdef USE_TLS
-/* The error number. */
-static int global_error;
-#else
-/* This is the key for the thread specific memory. */
-static tls_key_t key;
-
-/* The error number. Used in non-threaded programs. */
-static int global_error;
-static bool threaded;
-/* We need to initialize the thread-specific data. */
-once_define (static, once);
-
-/* The initialization and destruction functions. */
-static void init (void);
-static void free_key_mem (void *mem);
-#endif /* TLS */
-
-
-int
-dwarf_errno (void)
-{
- int result;
-
-#ifndef USE_TLS
- /* If we have not yet initialized the buffer do it now. */
- once_execute (once, init);
-
- if (threaded)
- {
- /* We do not allocate memory for the data. It is only a word.
- We can store it in place of the pointer. */
- result = (intptr_t) getspecific (key);
-
- setspecific (key, (void *) (intptr_t) DWARF_E_NOERROR);
- return result;
- }
-#endif /* TLS */
-
- result = global_error;
- global_error = DWARF_E_NOERROR;
- return result;
-}
-
-
-/* XXX For now we use string pointers. Once the table stablelizes
- make it more DSO-friendly. */
-static const char *errmsgs[] =
- {
- [DWARF_E_NOERROR] = N_("no error"),
- [DWARF_E_UNKNOWN_ERROR] = N_("unknown error"),
- [DWARF_E_INVALID_ACCESS] = N_("invalid access"),
- [DWARF_E_NO_REGFILE] = N_("no regular file"),
- [DWARF_E_IO_ERROR] = N_("I/O error"),
- [DWARF_E_INVALID_ELF] = N_("invalid ELF file"),
- [DWARF_E_NO_DWARF] = N_("no DWARF information"),
- [DWARF_E_NOELF] = N_("no ELF file"),
- [DWARF_E_GETEHDR_ERROR] = N_("cannot get ELF header"),
- [DWARF_E_NOMEM] = N_("out of memory"),
- [DWARF_E_UNIMPL] = N_("not implemented"),
- [DWARF_E_INVALID_CMD] = N_("invalid command"),
- [DWARF_E_INVALID_VERSION] = N_("invalid version"),
- [DWARF_E_INVALID_FILE] = N_("invalid file"),
- [DWARF_E_NO_ENTRY] = N_("no entries found"),
- [DWARF_E_INVALID_DWARF] = N_("invalid DWARF"),
- [DWARF_E_NO_STRING] = N_("no string data"),
- [DWARF_E_NO_ADDR] = N_("no address value"),
- [DWARF_E_NO_CONSTANT] = N_("no constant value"),
- [DWARF_E_NO_REFERENCE] = N_("no reference value"),
- [DWARF_E_INVALID_REFERENCE] = N_("invalid reference value"),
- [DWARF_E_NO_DEBUG_LINE] = N_(".debug_line section missing"),
- [DWARF_E_INVALID_DEBUG_LINE] = N_("invalid .debug_line section"),
- [DWARF_E_TOO_BIG] = N_("debug information too big"),
- [DWARF_E_VERSION] = N_("invalid DWARF version"),
- [DWARF_E_INVALID_DIR_IDX] = N_("invalid directory index"),
- [DWARF_E_ADDR_OUTOFRANGE] = N_("address out of range"),
- [DWARF_E_NO_LOCLIST] = N_("no location list value"),
- [DWARF_E_NO_BLOCK] = N_("no block data"),
- [DWARF_E_INVALID_LINE_IDX] = N_("invalid line index"),
- [DWARF_E_INVALID_ARANGE_IDX] = N_("invalid address range index"),
- [DWARF_E_NO_MATCH] = N_("no matching address range"),
- [DWARF_E_NO_FLAG] = N_("no flag value"),
- };
-#define nerrmsgs (sizeof (errmsgs) / sizeof (errmsgs[0]))
-
-
-void
-__libdw_seterrno (value)
- int value;
-{
-#ifndef USE_TLS
- /* If we have not yet initialized the buffer do it now. */
- once_execute (once, init);
-
- if (threaded)
- /* We do not allocate memory for the data. It is only a word.
- We can store it in place of the pointer. */
- setspecific (key, (void *) (intptr_t) value);
-#endif /* TLS */
-
- global_error = (value >= 0 && value < (int) nerrmsgs
- ? value : DWARF_E_UNKNOWN_ERROR);
-}
-
-
-const char *
-dwarf_errmsg (error)
- int error;
-{
- int last_error;
-
-#ifndef USE_TLS
- /* If we have not yet initialized the buffer do it now. */
- once_execute (once, init);
-
- if ((error == 0 || error == -1) && threaded)
- /* We do not allocate memory for the data. It is only a word.
- We can store it in place of the pointer. */
- last_error = (intptr_t) getspecific (key);
- else
-#endif /* TLS */
- last_error = global_error;
-
- if (error == 0)
- return last_error != 0 ? _(errmsgs[last_error]) : NULL;
- else if (error < -1 || error >= (int) nerrmsgs)
- return _(errmsgs[DWARF_E_UNKNOWN_ERROR]);
-
- return _(errmsgs[error == -1 ? last_error : error]);
-}
-
-
-#ifndef USE_TLS
-/* Free the thread specific data, this is done if a thread terminates. */
-static void
-free_key_mem (void *mem)
-{
- setspecific (key, NULL);
-}
-
-
-/* Initialize the key for the global variable. */
-static void
-init (void)
-{
- // XXX Screw you, gcc4, the unused function attribute does not work.
- __asm ("" :: "r" (free_key_mem));
-
- if (key_create (&key, free_key_mem) == 0)
- /* Creating the key succeeded. */
- threaded = true;
-}
-#endif /* TLS */
diff --git a/libdw/dwarf_filesrc.c b/libdw/dwarf_filesrc.c
deleted file mode 100644
index 770c004b..00000000
--- a/libdw/dwarf_filesrc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Find source file information.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-const char *
-dwarf_filesrc (Dwarf_Files *file, size_t idx, Dwarf_Word *mtime,
- Dwarf_Word *length)
-{
- if (file == NULL || idx >= file->nfiles)
- return NULL;
-
- if (mtime != NULL)
- *mtime = file->info[idx].mtime;
-
- if (length != NULL)
- *length = file->info[idx].length;
-
- return file->info[idx].name;
-}
diff --git a/libdw/dwarf_formaddr.c b/libdw/dwarf_formaddr.c
deleted file mode 100644
index 4e8cdb0b..00000000
--- a/libdw/dwarf_formaddr.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Return address represented by attribute.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_formaddr (attr, return_addr)
- Dwarf_Attribute *attr;
- Dwarf_Addr *return_addr;
-{
- if (attr == NULL)
- return -1;
-
- if (unlikely (attr->form != DW_FORM_addr))
- {
- __libdw_seterrno (DWARF_E_NO_ADDR);
- return -1;
- }
-
- if (attr->cu->address_size == 8)
- *return_addr = read_8ubyte_unaligned (attr->cu->dbg, attr->valp);
- else
- *return_addr = read_4ubyte_unaligned (attr->cu->dbg, attr->valp);
-
- return 0;
-}
diff --git a/libdw/dwarf_formblock.c b/libdw/dwarf_formblock.c
deleted file mode 100644
index 08566829..00000000
--- a/libdw/dwarf_formblock.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Return block represented by attribute.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_formblock (attr, return_block)
- Dwarf_Attribute *attr;
- Dwarf_Block *return_block;
-{
- if (attr == NULL)
- return -1;
-
- unsigned int u128;
- unsigned char *datap;
-
- switch (attr->form)
- {
- case DW_FORM_block1:
- return_block->length = *(uint8_t *) attr->valp;
- return_block->data = attr->valp + 1;
- break;
-
- case DW_FORM_block2:
- return_block->length = read_2ubyte_unaligned (attr->cu->dbg, attr->valp);
- return_block->data = attr->valp + 2;
- break;
-
- case DW_FORM_block4:
- return_block->length = read_4ubyte_unaligned (attr->cu->dbg, attr->valp);
- return_block->data = attr->valp + 4;
- break;
-
- case DW_FORM_block:
- datap = attr->valp;
- get_uleb128 (u128, datap);
- return_block->length = u128;
- return_block->data = datap;
- break;
-
- default:
- __libdw_seterrno (DWARF_E_NO_BLOCK);
- return -1;
- }
-
- if (return_block->data + return_block->length
- > ((unsigned char *) attr->cu->dbg->sectiondata[IDX_debug_info]->d_buf
- + attr->cu->dbg->sectiondata[IDX_debug_info]->d_size))
- {
- /* Block does not fit. */
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- return -1;
- }
-
- return 0;
-}
diff --git a/libdw/dwarf_formflag.c b/libdw/dwarf_formflag.c
deleted file mode 100644
index ac344019..00000000
--- a/libdw/dwarf_formflag.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Return flag represented by attribute.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_formflag (attr, return_bool)
- Dwarf_Attribute *attr;
- bool *return_bool;
-{
- if (attr == NULL)
- return -1;
-
- if (unlikely (attr->form != DW_FORM_flag))
- {
- __libdw_seterrno (DWARF_E_NO_FLAG);
- return -1;
- }
-
- *return_bool = *attr->valp != 0;
-
- return 0;
-}
diff --git a/libdw/dwarf_formref.c b/libdw/dwarf_formref.c
deleted file mode 100644
index d6b1f0f6..00000000
--- a/libdw/dwarf_formref.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Return reference offset represented by attribute.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_formref (attr, return_offset)
- Dwarf_Attribute *attr;
- Dwarf_Off *return_offset;
-{
- if (attr == NULL)
- return -1;
-
- unsigned int u128;
- unsigned char *datap;
-
- switch (attr->form)
- {
- case DW_FORM_ref1:
- *return_offset = *attr->valp;
- break;
-
- case DW_FORM_ref2:
- *return_offset = read_2ubyte_unaligned (attr->cu->dbg, attr->valp);
- break;
-
- case DW_FORM_ref4:
- *return_offset = read_4ubyte_unaligned (attr->cu->dbg, attr->valp);
- break;
-
- case DW_FORM_ref8:
- *return_offset = read_8ubyte_unaligned (attr->cu->dbg, attr->valp);
- break;
-
- case DW_FORM_ref_udata:
- datap = attr->valp;
- get_uleb128 (u128, datap);
- *return_offset = u128;
- break;
-
- case DW_FORM_ref_addr:
- __libdw_seterrno (DWARF_E_INVALID_REFERENCE);
- return -1;
-
- default:
- __libdw_seterrno (DWARF_E_NO_REFERENCE);
- return -1;
- }
-
- return 0;
-}
diff --git a/libdw/dwarf_formsdata.c b/libdw/dwarf_formsdata.c
deleted file mode 100644
index ad845102..00000000
--- a/libdw/dwarf_formsdata.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Return signed constant represented by attribute.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_formsdata (attr, return_sval)
- Dwarf_Attribute *attr;
- Dwarf_Sword *return_sval;
-{
- if (attr == NULL)
- return -1;
-
- unsigned int u128;
- unsigned char *datap;
-
- switch (attr->form)
- {
- case DW_FORM_data1:
- *return_sval = *attr->valp;
- break;
-
- case DW_FORM_data2:
- *return_sval = read_2ubyte_unaligned (attr->cu->dbg, attr->valp);
- break;
-
- case DW_FORM_data4:
- *return_sval = read_4ubyte_unaligned (attr->cu->dbg, attr->valp);
- break;
-
- case DW_FORM_data8:
- *return_sval = read_8ubyte_unaligned (attr->cu->dbg, attr->valp);
- break;
-
- case DW_FORM_sdata:
- datap = attr->valp;
- get_sleb128 (u128, datap);
- *return_sval = u128;
- break;
-
- case DW_FORM_udata:
- datap = attr->valp;
- get_uleb128 (u128, datap);
- *return_sval = u128;
- break;
-
- default:
- __libdw_seterrno (DWARF_E_NO_CONSTANT);
- return -1;
- }
-
- return 0;
-}
diff --git a/libdw/dwarf_formstring.c b/libdw/dwarf_formstring.c
deleted file mode 100644
index c4e59d78..00000000
--- a/libdw/dwarf_formstring.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Return string associated with given attribute.
- Copyright (C) 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-const char *
-dwarf_formstring (attrp)
- Dwarf_Attribute *attrp;
-{
- /* Ignore earlier errors. */
- if (attrp == NULL)
- return NULL;
-
- /* We found it. Now determine where the string is stored. */
- if (attrp->form == DW_FORM_string)
- /* A simple inlined string. */
- return (const char *) attrp->valp;
-
- Dwarf *dbg = attrp->cu->dbg;
-
- if (unlikely (attrp->form != DW_FORM_strp)
- || dbg->sectiondata[IDX_debug_str] == NULL)
- {
- invalid_error:
- __libdw_seterrno (DWARF_E_NO_STRING);
- return NULL;
- }
-
- uint64_t off;
- // XXX We need better boundary checks.
- if (attrp->cu->offset_size == 8)
- off = read_8ubyte_unaligned (dbg, attrp->valp);
- else
- off = read_4ubyte_unaligned (dbg, attrp->valp);
-
- if (off >= dbg->sectiondata[IDX_debug_str]->d_size)
- goto invalid_error;
-
- return (const char *) dbg->sectiondata[IDX_debug_str]->d_buf + off;
-}
diff --git a/libdw/dwarf_formudata.c b/libdw/dwarf_formudata.c
deleted file mode 100644
index 66b8c2a3..00000000
--- a/libdw/dwarf_formudata.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Return unsigned constant represented by attribute.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_formudata (attr, return_uval)
- Dwarf_Attribute *attr;
- Dwarf_Word *return_uval;
-{
- if (attr == NULL)
- return -1;
-
- unsigned int u128;
- unsigned char *datap;
-
- switch (attr->form)
- {
- case DW_FORM_data1:
- *return_uval = *attr->valp;
- break;
-
- case DW_FORM_data2:
- *return_uval = read_2ubyte_unaligned (attr->cu->dbg, attr->valp);
- break;
-
- case DW_FORM_data4:
- *return_uval = read_4ubyte_unaligned (attr->cu->dbg, attr->valp);
- break;
-
- case DW_FORM_data8:
- *return_uval = read_8ubyte_unaligned (attr->cu->dbg, attr->valp);
- break;
-
- case DW_FORM_sdata:
- datap = attr->valp;
- get_sleb128 (u128, datap);
- *return_uval = u128;
- break;
-
- case DW_FORM_udata:
- datap = attr->valp;
- get_uleb128 (u128, datap);
- *return_uval = u128;
- break;
-
- default:
- __libdw_seterrno (DWARF_E_NO_CONSTANT);
- return -1;
- }
-
- return 0;
-}
diff --git a/libdw/dwarf_getabbrev.c b/libdw/dwarf_getabbrev.c
deleted file mode 100644
index 0021e222..00000000
--- a/libdw/dwarf_getabbrev.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Get abbreviation at given offset.
- Copyright (C) 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-Dwarf_Abbrev *
-internal_function_def
-__libdw_getabbrev (dbg, cu, offset, lengthp, result)
- Dwarf *dbg;
- struct Dwarf_CU *cu;
- Dwarf_Off offset;
- size_t *lengthp;
- Dwarf_Abbrev *result;
-{
- /* Don't fail if there is not .debug_abbrev section. */
- if (dbg->sectiondata[IDX_debug_abbrev] == NULL)
- return NULL;
-
- unsigned char *abbrevp
- = (unsigned char *) dbg->sectiondata[IDX_debug_abbrev]->d_buf + offset;
- if (*abbrevp == '\0')
- /* We are past the last entry. */
- return NULL;
-
- /* 7.5.3 Abbreviations Tables
-
- [...] Each declaration begins with an unsigned LEB128 number
- representing the abbreviation code itself. [...] The
- abbreviation code is followed by another unsigned LEB128
- number that encodes the entry's tag. [...]
-
- [...] Following the tag encoding is a 1-byte value that
- determines whether a debugging information entry using this
- abbreviation has child entries or not. [...]
-
- [...] Finally, the child encoding is followed by a series of
- attribute specifications. Each attribute specification
- consists of two parts. The first part is an unsigned LEB128
- number representing the attribute's name. The second part is
- an unsigned LEB128 number representing the attribute's form. */
- unsigned char *start_abbrevp = abbrevp;
- unsigned int code;
- get_uleb128 (code, abbrevp);
-
- /* Check whether this code is already in the hash table. */
- bool foundit = false;
- Dwarf_Abbrev *abb = NULL;
- if (cu == NULL
- || (abb = Dwarf_Abbrev_Hash_find (&cu->abbrev_hash, code, NULL)) == NULL)
- {
- if (result == NULL)
- abb = libdw_typed_alloc (dbg, Dwarf_Abbrev);
- else
- abb = result;
- }
- else
- {
- foundit = true;
-
- assert (abb->offset == offset);
-
- /* If the caller doesn't need the length we are done. */
- if (lengthp == NULL)
- goto out;
- }
-
- /* If there is already a value in the hash table we are going to
- overwrite its content. This must not be a problem, since the
- content better be the same. */
- abb->code = code;
- get_uleb128 (abb->tag, abbrevp);
- abb->has_children = *abbrevp++ == DW_CHILDREN_yes;
- abb->attrp = abbrevp;
- abb->offset = offset;
-
- /* Skip over all the attributes and count them while doing so. */
- abb->attrcnt = 0;
- unsigned int attrname;
- unsigned int attrform;
- do
- {
- get_uleb128 (attrname, abbrevp);
- get_uleb128 (attrform, abbrevp);
- }
- while (attrname != 0 && attrform != 0 && ++abb->attrcnt);
-
- /* Return the length to the caller if she asked for it. */
- if (lengthp != NULL)
- *lengthp = abbrevp - start_abbrevp;
-
- /* Add the entry to the hash table. */
- if (cu != NULL && ! foundit)
- (void) Dwarf_Abbrev_Hash_insert (&cu->abbrev_hash, abb->code, abb);
-
- out:
- return abb;
-}
-
-
-Dwarf_Abbrev *
-dwarf_getabbrev (die, offset, lengthp)
- Dwarf_Die *die;
- Dwarf_Off offset;
- size_t *lengthp;
-{
- return __libdw_getabbrev (die->cu->dbg, die->cu,
- die->cu->orig_abbrev_offset + offset, lengthp,
- NULL);
-}
diff --git a/libdw/dwarf_getabbrevattr.c b/libdw/dwarf_getabbrevattr.c
deleted file mode 100644
index d9337aac..00000000
--- a/libdw/dwarf_getabbrevattr.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Get specific attribute of abbreviation.
- Copyright (C) 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_getabbrevattr (abbrev, idx, namep, formp, offsetp)
- Dwarf_Abbrev *abbrev;
- size_t idx;
- unsigned int *namep;
- unsigned int *formp;
- Dwarf_Off *offsetp;
-{
- if (abbrev == NULL)
- return -1;
-
- size_t cnt = 0;
- unsigned char *attrp = abbrev->attrp;
- unsigned char *start_attrp;
- unsigned int name;
- unsigned int form;
-
- do
- {
- start_attrp = attrp;
-
- /* Attribute code and form are encoded as ULEB128 values. */
- get_uleb128 (name, attrp);
- get_uleb128 (form, attrp);
-
- /* If both values are zero the index is out of range. */
- if (name == 0 && form == 0)
- return -1;
- }
- while (cnt++ < idx);
-
- /* Store the result if requested. */
- if (namep != NULL)
- *namep = name;
- if (formp != NULL)
- *formp = form;
- if (offsetp != NULL)
- *offsetp = (start_attrp - abbrev->attrp) + abbrev->offset;
-
- return 0;
-}
diff --git a/libdw/dwarf_getabbrevcode.c b/libdw/dwarf_getabbrevcode.c
deleted file mode 100644
index ef3dac46..00000000
--- a/libdw/dwarf_getabbrevcode.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Get abbreviation code.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-unsigned int
-dwarf_getabbrevcode (abbrev)
- Dwarf_Abbrev *abbrev;
-{
- return abbrev == NULL ? 0 : abbrev->code;
-}
diff --git a/libdw/dwarf_getabbrevtag.c b/libdw/dwarf_getabbrevtag.c
deleted file mode 100644
index 4707fdd1..00000000
--- a/libdw/dwarf_getabbrevtag.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Get abbreviation tag.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-unsigned int
-dwarf_getabbrevtag (abbrev)
- Dwarf_Abbrev *abbrev;
-{
- return abbrev == NULL ? 0 : abbrev->tag;
-}
diff --git a/libdw/dwarf_getarange_addr.c b/libdw/dwarf_getarange_addr.c
deleted file mode 100644
index df143d02..00000000
--- a/libdw/dwarf_getarange_addr.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Get address range which includes given address.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libdwP.h>
-
-
-Dwarf_Arange *
-dwarf_getarange_addr (aranges, addr)
- Dwarf_Aranges *aranges;
- Dwarf_Addr addr;
-{
- if (aranges == NULL)
- return NULL;
-
- for (size_t cnt = 0; cnt < aranges->naranges; ++cnt)
- if (aranges->info[cnt].addr <= addr
- && addr < aranges->info[cnt].addr + aranges->info[cnt].length)
- return &aranges->info[cnt];
-
- __libdw_seterrno (DWARF_E_NO_MATCH);
- return NULL;
-}
diff --git a/libdw/dwarf_getarangeinfo.c b/libdw/dwarf_getarangeinfo.c
deleted file mode 100644
index b96c6316..00000000
--- a/libdw/dwarf_getarangeinfo.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Return list address ranges.
- Copyright (C) 2000, 2001, 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libdwP.h>
-
-
-int
-dwarf_getarangeinfo (Dwarf_Arange *arange, Dwarf_Addr *addrp,
- Dwarf_Word *lengthp, Dwarf_Off *offsetp)
-{
- if (arange == NULL)
- return -1;
-
- if (addrp != NULL)
- *addrp = arange->addr;
- if (lengthp != NULL)
- *lengthp = arange->length;
- if (offsetp != NULL)
- *offsetp = arange->offset;
-
- return 0;
-}
diff --git a/libdw/dwarf_getaranges.c b/libdw/dwarf_getaranges.c
deleted file mode 100644
index 754baeca..00000000
--- a/libdw/dwarf_getaranges.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/* Return list address ranges.
- Copyright (C) 2000, 2001, 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdlib.h>
-
-#include <libdwP.h>
-
-
-struct arangelist
-{
- Dwarf_Arange arange;
- struct arangelist *next;
-};
-
-
-int
-dwarf_getaranges (dbg, aranges, naranges)
- Dwarf *dbg;
- Dwarf_Aranges **aranges;
- size_t *naranges;
-{
- if (dbg == NULL)
- return -1;
-
- if (dbg->aranges != NULL)
- {
- *aranges = dbg->aranges;
- if (naranges != NULL)
- *naranges = dbg->aranges->naranges;
- return 0;
- }
-
- if (dbg->sectiondata[IDX_debug_aranges]->d_buf == NULL)
- return -1;
-
- struct arangelist *arangelist = NULL;
- unsigned int narangelist = 0;
-
- const char *readp
- = (const char *) dbg->sectiondata[IDX_debug_aranges]->d_buf;
- const char *readendp = readp + dbg->sectiondata[IDX_debug_aranges]->d_size;
-
- while (readp < readendp)
- {
- const char *hdrstart = readp;
-
- /* Each entry starts with a header:
-
- 1. A 4-byte or 12-byte length containing the length of the
- set of entries for this compilation unit, not including the
- length field itself. [...]
-
- 2. A 2-byte version identifier containing the value 2 for
- DWARF Version 2.1.
-
- 3. A 4-byte or 8-byte offset into the .debug_info section. [...]
-
- 4. A 1-byte unsigned integer containing the size in bytes of
- an address (or the offset portion of an address for segmented
- addressing) on the target system.
-
- 5. A 1-byte unsigned integer containing the size in bytes of
- a segment descriptor on the target system. */
- Dwarf_Word length = read_4ubyte_unaligned_inc (dbg, readp);
- unsigned int length_bytes = 4;
- if (length == 0xffffffff)
- {
- length = read_8ubyte_unaligned_inc (dbg, readp);
- length_bytes = 8;
- }
-
- unsigned int version = read_2ubyte_unaligned_inc (dbg, readp);
- if (version != 2)
- {
- invalid:
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- return -1;
- }
-
- Dwarf_Word offset;
- if (length_bytes == 4)
- offset = read_4ubyte_unaligned_inc (dbg, readp);
- else
- offset = read_8ubyte_unaligned_inc (dbg, readp);
-
- unsigned int address_size = *readp++;
- if (address_size != 4 && address_size != 8)
- goto invalid;
-
- /* Ignore the segment size value. */
- // XXX Really?
- (void) *readp++;
-
- /* Round the address to the next multiple of 2*address_size. */
- readp += ((2 * address_size - ((readp - hdrstart) % (2 * address_size)))
- % (2 * address_size));
-
- //arange_info->offset = offset;
-
- while (1)
- {
- Dwarf_Word range_address;
- Dwarf_Word range_length;
-
- if (address_size == 4)
- {
- range_address = read_4ubyte_unaligned_inc (dbg, readp);
- range_length = read_4ubyte_unaligned_inc (dbg, readp);
- }
- else
- {
- range_address = read_8ubyte_unaligned_inc (dbg, readp);
- range_length = read_8ubyte_unaligned_inc (dbg, readp);
- }
-
- /* Two zero values mark the end. */
- if (range_address == 0 && range_length == 0)
- break;
-
- struct arangelist *new_arange =
- (struct arangelist *) alloca (sizeof (struct arangelist));
-
- new_arange->arange.addr = range_address;
- new_arange->arange.length = range_length;
-
- /* We store the actual CU DIE offset, not the CU header offset. */
- const char *cu_header = (dbg->sectiondata[IDX_debug_info]->d_buf
- + offset);
- unsigned int offset_size;
- if (read_4ubyte_unaligned_noncvt (cu_header) == 0xffffffff)
- offset_size = 8;
- else
- offset_size = 4;
- new_arange->arange.offset = offset + 3 * offset_size - 4 + 3;
-
- new_arange->next = arangelist;
- arangelist = new_arange;
- ++narangelist;
- }
- }
-
- if (narangelist == 0)
- {
- if (naranges != NULL)
- *naranges = 0;
- *aranges = NULL;
- return 0;
- }
-
- /* Allocate the array for the result. */
- if (naranges != NULL)
- *naranges = narangelist;
- *aranges = libdw_alloc (dbg, Dwarf_Aranges,
- sizeof (Dwarf_Aranges)
- + narangelist * sizeof (Dwarf_Arange), 1);
-
- (*aranges)->dbg = dbg;
- (*aranges)->naranges = narangelist;
-
- while (narangelist-- > 0)
- {
- (*aranges)->info[narangelist] = arangelist->arange;
- arangelist = arangelist->next;
- }
-
- dbg->aranges = *aranges;
-
- return 0;
-}
diff --git a/libdw/dwarf_getattrcnt.c b/libdw/dwarf_getattrcnt.c
deleted file mode 100644
index 0758e030..00000000
--- a/libdw/dwarf_getattrcnt.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Get number of attributes of abbreviation.
- Copyright (C) 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-int
-dwarf_getattrcnt (abbrev, attrcntp)
- Dwarf_Abbrev *abbrev;
- size_t *attrcntp;
-{
- if (abbrev == NULL)
- return -1;
-
- *attrcntp = abbrev->attrcnt;
-
- return 0;
-}
diff --git a/libdw/dwarf_getattrs.c b/libdw/dwarf_getattrs.c
deleted file mode 100644
index 4ead80cc..00000000
--- a/libdw/dwarf_getattrs.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Get attributes of the DIE.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-ptrdiff_t
-dwarf_getattrs (Dwarf_Die *die, int (*callback) (Dwarf_Attribute *, void *),
- void *arg, ptrdiff_t offset)
-{
- if (die == NULL)
- return -1l;
-
- unsigned char *die_addr = die->addr;
-
- /* Get the abbreviation code. */
- unsigned int u128;
- get_uleb128 (u128, die_addr);
-
- if (die->abbrev == NULL)
- /* Find the abbreviation. */
- die->abbrev = __libdw_findabbrev (die->cu, u128);
-
- if (die->abbrev == (Dwarf_Abbrev *) -1l)
- {
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- return -1l;
- }
-
- /* This is where the attributes start. */
- unsigned char *attrp = die->abbrev->attrp + offset;
-
- /* Go over the list of attributes. */
- Dwarf *dbg = die->cu->dbg;
- while (1)
- {
- /* Are we still in bounds? */
- if (unlikely (attrp
- >= ((unsigned char *) dbg->sectiondata[IDX_debug_abbrev]->d_buf
- + dbg->sectiondata[IDX_debug_abbrev]->d_size)))
- {
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- return -1;
- }
-
- /* Get attribute name and form. */
- Dwarf_Attribute attr;
- // XXX Fix bound checks
- get_uleb128 (attr.code, attrp);
- get_uleb128 (attr.form, attrp);
-
- /* We can stop if we found the attribute with value zero. */
- if (attr.code == 0 && attr.form == 0)
- return 0;
-
- /* Fill in the rest. */
- attr.valp = die_addr;
- attr.cu = die->cu;
-
- /* Now call the callback function. */
- if (callback (&attr, arg) != DWARF_CB_OK)
- return attrp - die->abbrev->attrp;
-
- /* Skip over the rest of this attribute (if there is any). */
- if (attr.form != 0)
- {
- size_t len = __libdw_form_val_len (dbg, die->cu, attr.form,
- die_addr);
-
- if (unlikely (len == (size_t) -1l))
- /* Something wrong with the file. */
- return -1l;
-
- // XXX We need better boundary checks.
- die_addr += len;
- }
- }
- /* NOTREACHED */
-}
diff --git a/libdw/dwarf_getelf.c b/libdw/dwarf_getelf.c
deleted file mode 100644
index 1e2a06aa..00000000
--- a/libdw/dwarf_getelf.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Retrieve ELF descriptor used for DWARF access.
- Copyright (C) 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stddef.h>
-
-#include "libdwP.h"
-
-
-Elf *
-dwarf_get_elf (dwarf)
- Dwarf *dwarf;
-{
- if (dwarf == NULL)
- /* Some error occurred before. */
- return NULL;
-
- return dwarf->elf;
-}
diff --git a/libdw/dwarf_getloclist.c b/libdw/dwarf_getloclist.c
deleted file mode 100644
index 6339a8c8..00000000
--- a/libdw/dwarf_getloclist.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/* Return location expression list.
- Copyright (C) 2000, 2001, 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include <search.h>
-#include <stdlib.h>
-
-#include <libdwP.h>
-
-
-struct loclist
-{
- uint8_t atom;
- Dwarf_Word number;
- Dwarf_Word number2;
- Dwarf_Word offset;
- struct loclist *next;
-};
-
-
-static int
-loc_compare (const void *p1, const void *p2)
-{
- const struct loc_s *l1 = (const struct loc_s *) p1;
- const struct loc_s *l2 = (const struct loc_s *) p2;
-
- if ((uintptr_t) l1->addr < (uintptr_t) l2->addr)
- return -1;
- if ((uintptr_t) l1->addr > (uintptr_t) l2->addr)
- return 1;
-
- return 0;
-}
-
-
-int
-dwarf_getloclist (attr, llbuf, listlen)
- Dwarf_Attribute *attr;
- Dwarf_Loc **llbuf;
- size_t *listlen;
-{
- /* Must by one of the attribute listed below. */
- if (attr->code != DW_AT_location
- && attr->code != DW_AT_data_member_location
- && attr->code != DW_AT_vtable_elem_location
- && attr->code != DW_AT_string_length
- && attr->code != DW_AT_use_location
- && attr->code != DW_AT_return_addr)
- {
- __libdw_seterrno (DWARF_E_NO_LOCLIST);
- return -1;
- }
-
- struct Dwarf_CU *cu = attr->cu;
- Dwarf *dbg = cu->dbg;
-
- /* Must have the form data4 or data8 which act as an offset. */
- Dwarf_Block block;
- if (dwarf_formblock (attr, &block) != 0)
- return -1;
-
- /* Check whether we already looked at this list. */
- struct loc_s fake = { .addr = block.data };
- struct loc_s **found = tfind (&fake, &cu->locs, loc_compare);
- if (found != NULL)
- {
- /* We already saw it. */
- *llbuf = (*found)->loc;
- *listlen = (*found)->nloc;
-
- return 0;
- }
-
- unsigned char *data = block.data;
- unsigned char *const end_data = data + block.length;
-
- struct loclist *loclist = NULL;
- unsigned int n = 0;
- /* Decode the opcodes. It is possible in some situations to have a
- block of size zero. */
- while (data < end_data)
- {
- struct loclist *newloc;
- newloc = (struct loclist *) alloca (sizeof (struct loclist));
- newloc->number = 0;
- newloc->number2 = 0;
- newloc->offset = data - block.data;
- newloc->next = loclist;
- loclist = newloc;
- ++n;
-
- switch ((newloc->atom = *data++))
- {
- case DW_OP_addr:
- /* Address, depends on address size of CU. */
- if (cu->address_size == 4)
- {
- if (unlikely (data + 4 > end_data))
- {
- invalid:
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- return -1;
- }
-
- newloc->number = read_4ubyte_unaligned_inc (dbg, data);
- }
- else
- {
- if (unlikely (data + 8 > end_data))
- goto invalid;
-
- newloc->number = read_8ubyte_unaligned_inc (dbg, data);
- }
- break;
-
- case DW_OP_deref:
- case DW_OP_dup:
- case DW_OP_drop:
- case DW_OP_over:
- case DW_OP_swap:
- case DW_OP_rot:
- case DW_OP_xderef:
- case DW_OP_abs:
- case DW_OP_and:
- case DW_OP_div:
- case DW_OP_minus:
- case DW_OP_mod:
- case DW_OP_mul:
- case DW_OP_neg:
- case DW_OP_not:
- case DW_OP_or:
- case DW_OP_plus:
- case DW_OP_shl:
- case DW_OP_shr:
- case DW_OP_shra:
- case DW_OP_xor:
- case DW_OP_eq:
- case DW_OP_ge:
- case DW_OP_gt:
- case DW_OP_le:
- case DW_OP_lt:
- case DW_OP_ne:
- case DW_OP_lit0 ... DW_OP_lit31:
- case DW_OP_reg0 ... DW_OP_reg31:
- case DW_OP_nop:
- case DW_OP_push_object_address:
- case DW_OP_call_ref:
- /* No operand. */
- break;
-
- case DW_OP_const1u:
- case DW_OP_pick:
- case DW_OP_deref_size:
- case DW_OP_xderef_size:
- if (unlikely (data >= end_data))
- goto invalid;
-
- newloc->number = *data++;
- break;
-
- case DW_OP_const1s:
- if (unlikely (data >= end_data))
- goto invalid;
-
- newloc->number = *((int8_t *) data);
- ++data;
- break;
-
- case DW_OP_const2u:
- if (unlikely (data + 2 > end_data))
- goto invalid;
-
- newloc->number = read_2ubyte_unaligned_inc (dbg, data);
- break;
-
- case DW_OP_const2s:
- case DW_OP_skip:
- case DW_OP_bra:
- case DW_OP_call2:
- if (unlikely (data + 2 > end_data))
- goto invalid;
-
- newloc->number = read_2sbyte_unaligned_inc (dbg, data);
- break;
-
- case DW_OP_const4u:
- if (unlikely (data + 4 > end_data))
- goto invalid;
-
- newloc->number = read_4ubyte_unaligned_inc (dbg, data);
- break;
-
- case DW_OP_const4s:
- case DW_OP_call4:
- if (unlikely (data + 4 > end_data))
- goto invalid;
-
- newloc->number = read_4sbyte_unaligned_inc (dbg, data);
- break;
-
- case DW_OP_const8u:
- if (unlikely (data + 8 > end_data))
- goto invalid;
-
- newloc->number = read_8ubyte_unaligned_inc (dbg, data);
- break;
-
- case DW_OP_const8s:
- if (unlikely (data + 8 > end_data))
- goto invalid;
-
- newloc->number = read_8sbyte_unaligned_inc (dbg, data);
- break;
-
- case DW_OP_constu:
- case DW_OP_plus_uconst:
- case DW_OP_regx:
- case DW_OP_piece:
- /* XXX Check size. */
- get_uleb128 (newloc->number, data);
- break;
-
- case DW_OP_consts:
- case DW_OP_breg0 ... DW_OP_breg31:
- case DW_OP_fbreg:
- /* XXX Check size. */
- get_sleb128 (newloc->number, data);
- break;
-
- case DW_OP_bregx:
- /* XXX Check size. */
- get_uleb128 (newloc->number, data);
- get_sleb128 (newloc->number2, data);
- break;
-
- default:
- goto invalid;
- }
- }
-
- if (unlikely (n == 0))
- {
- /* This is not allowed.
-
- XXX Is it? */
- goto invalid;
- }
-
- /* Allocate the array. */
- Dwarf_Loc *result = libdw_alloc (dbg, Dwarf_Loc, sizeof (Dwarf_Loc), n);
-
- /* Store the result. */
- *llbuf = result;
- *listlen = n;
-
- do
- {
- /* We populate the array from the back since the list is
- backwards. */
- --n;
- result[n].atom = loclist->atom;
- result[n].number = loclist->number;
- result[n].number2 = loclist->number2;
- result[n].offset = loclist->offset;
-
- loclist = loclist->next;
- }
- while (n > 0);
-
- /* Insert a record in the search tree so that we can find it again
- later. */
- struct loc_s *newp = libdw_alloc (dbg, struct loc_s, sizeof (struct loc_s),
- 1);
- newp->addr = block.data;
- newp->loc = result;
- newp->nloc = *listlen;
- (void) tsearch (newp, &cu->locs, loc_compare);
-
- /* We did it. */
- return 0;
-}
diff --git a/libdw/dwarf_getmacros.c b/libdw/dwarf_getmacros.c
deleted file mode 100644
index f6f933aa..00000000
--- a/libdw/dwarf_getmacros.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Get public symbol information.
- Copyright (C) 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include <string.h>
-
-#include <libdwP.h>
-
-
-ptrdiff_t
-dwarf_getmacros (die, callback, arg, offset)
- Dwarf_Die *die;
- int (*callback) (Dwarf_Macro *, void *);
- void *arg;
- ptrdiff_t offset;
-{
- /* Get the appropriate attribute. */
- Dwarf_Attribute attr;
- if (dwarf_attr (die, DW_AT_macro_info, &attr) == NULL)
- return -1;
-
- /* Offset into the .debug_macinfo section. */
- Dwarf_Word macoff;
- if (dwarf_formudata (&attr, &macoff) != 0)
- return -1;
-
- const unsigned char *readp
- = die->cu->dbg->sectiondata[IDX_debug_macinfo]->d_buf + offset;
- const unsigned char *readendp
- = readp + die->cu->dbg->sectiondata[IDX_debug_macinfo]->d_size;
-
- if (readp == readendp)
- return 0;
-
- if (*readp != DW_MACINFO_start_file)
- goto invalid;
-
- while (readp < readendp)
- {
- unsigned int opcode = *readp++;
- unsigned int u128;
- unsigned int u128_2 = 0;
- const char *str = NULL;
- const unsigned char *endp;
-
- switch (opcode)
- {
- case DW_MACINFO_define:
- case DW_MACINFO_undef:
- case DW_MACINFO_vendor_ext:
- /* For the first two opcodes the parameters are
- line, string
- For the latter
- number, string.
- We can treat these cases together. */
- get_uleb128 (u128, readp);
-
- endp = memchr (readp, '\0', readendp - readp);
- if (endp == NULL)
- goto invalid;
-
- str = (char *) readp;
- readp = endp + 1;
- break;
-
- case DW_MACINFO_start_file:
- /* The two parameters are line and file index. */
- get_uleb128 (u128, readp);
- get_uleb128 (u128_2, readp);
- break;
-
- case DW_MACINFO_end_file:
- /* Nothing more to do. */
- return 0;
-
- default:
- goto invalid;
- }
-
- Dwarf_Macro mac;
- mac.opcode = opcode;
- mac.param1 = u128;
- if (str == NULL)
- mac.param2.u = u128_2;
- else
- mac.param2.s = str;
-
- if (callback (&mac, arg) != DWARF_CB_OK)
- return (readp
- - ((unsigned char *) die->cu->dbg->sectiondata[IDX_debug_macinfo]->d_buf
- + offset));
- }
-
- /* If we come here the termination of the data for the CU is not
- present. */
- invalid:
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- return -1;
-}
diff --git a/libdw/dwarf_getpubnames.c b/libdw/dwarf_getpubnames.c
deleted file mode 100644
index c3cb5e2e..00000000
--- a/libdw/dwarf_getpubnames.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/* Get public symbol information.
- Copyright (C) 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/param.h>
-
-#include <libdwP.h>
-
-
-static int
-get_offsets (Dwarf *dbg)
-{
- size_t allocated = 0;
- size_t cnt = 0;
- struct pubnames_s *mem = NULL;
- const size_t entsize = sizeof (struct pubnames_s);
- unsigned char *const startp = dbg->sectiondata[IDX_debug_pubnames]->d_buf;
- unsigned char *readp = startp;
- unsigned char *endp = readp + dbg->sectiondata[IDX_debug_pubnames]->d_size;
-
- while (readp + 14 < endp)
- {
- /* If necessary, allocate more entries. */
- if (cnt >= allocated)
- {
- allocated = MAX (10, 2 * allocated);
- struct pubnames_s *newmem
- = (struct pubnames_s *) realloc (mem, allocated * entsize);
- if (newmem == NULL)
- {
- __libdw_seterrno (DWARF_E_NOMEM);
- err_return:
- free (mem);
- return -1;
- }
-
- mem = newmem;
- }
-
- /* Read the set header. */
- int len_bytes = 4;
- Dwarf_Off len = read_4ubyte_unaligned_inc (dbg, readp);
- if (len == 0xffffffff)
- {
- len = read_8ubyte_unaligned_inc (dbg, readp);
- len_bytes = 8;
- }
-
- /* Now we know the offset of the first offset/name pair. */
- mem[cnt].set_start = readp + 2 + 2 * len_bytes - startp;
- mem[cnt].address_len = len_bytes;
- if (mem[cnt].set_start >= dbg->sectiondata[IDX_debug_pubnames]->d_size)
- /* Something wrong, the first entry is beyond the end of
- the section. */
- break;
-
- /* Read the version. It better be two for now. */
- uint16_t version = read_2ubyte_unaligned (dbg, readp);
- if (version != 2)
- {
- __libdw_seterrno (DWARF_E_INVALID_VERSION);
- goto err_return;
- }
-
- /* Get the CU offset. */
- if (len_bytes == 4)
- mem[cnt].cu_offset = read_4ubyte_unaligned (dbg, readp + 2);
- else
- mem[cnt].cu_offset = read_8ubyte_unaligned (dbg, readp + 2);
-
- /* Determine the size of the CU header. */
- assert (dbg->sectiondata[IDX_debug_info] != NULL);
- assert (dbg->sectiondata[IDX_debug_info]->d_buf != NULL);
- assert (mem[cnt].cu_offset + 3
- < dbg->sectiondata[IDX_debug_info]->d_size);
- unsigned char *infop
- = ((unsigned char *) dbg->sectiondata[IDX_debug_info]->d_buf
- + mem[cnt].cu_offset);
- if (read_4ubyte_unaligned_noncvt (infop) == 0xffffffff)
- mem[cnt].cu_header_size = 23;
- else
- mem[cnt].cu_header_size = 11;
-
- ++cnt;
-
- /* Advance to the next set. */
- readp += len;
- }
-
- if (mem == NULL)
- {
- __libdw_seterrno (DWARF_E_NO_ENTRY);
- return -1;
- }
-
- dbg->pubnames_sets = (struct pubnames_s *) realloc (mem, cnt * entsize);
- dbg->pubnames_nsets = cnt;
-
- return 0;
-}
-
-
-ptrdiff_t
-dwarf_getpubnames (dbg, callback, arg, offset)
- Dwarf *dbg;
- int (*callback) (Dwarf *, Dwarf_Global *, void *);
- void *arg;
- ptrdiff_t offset;
-{
- if (dbg == NULL)
- return -1l;
-
- /* Make sure it is a valid offset. */
- if (unlikely (dbg->sectiondata[IDX_debug_pubnames] == NULL
- || offset >= dbg->sectiondata[IDX_debug_pubnames]->d_size))
- /* No (more) entry. */
- return 0;
-
- /* If necessary read the set information. */
- if (dbg->pubnames_nsets == 0 && get_offsets (dbg) != 0)
- return -1l;
-
- /* Find the place where to start. */
- size_t cnt;
- if (offset == 0)
- {
- cnt = 0;
- offset = dbg->pubnames_sets[0].set_start;
- }
- else
- {
- for (cnt = 0; cnt + 1 < dbg->pubnames_nsets; ++cnt)
- if (offset >= dbg->pubnames_sets[cnt].set_start)
- {
- assert (offset < dbg->pubnames_sets[cnt + 1].set_start);
- break;
- }
- assert (cnt + 1 < dbg->pubnames_nsets);
- }
-
- unsigned char *startp
- = (unsigned char *) dbg->sectiondata[IDX_debug_pubnames]->d_buf;
- unsigned char *readp = startp + offset;
- while (1)
- {
- Dwarf_Global gl;
-
- gl.cu_offset = (dbg->pubnames_sets[cnt].cu_offset
- + dbg->pubnames_sets[cnt].cu_header_size);
-
- while (1)
- {
- /* READP points to the next offset/name pair. */
- if (dbg->pubnames_sets[cnt].address_len == 4)
- gl.die_offset = read_4ubyte_unaligned_inc (dbg, readp);
- else
- gl.die_offset = read_8ubyte_unaligned_inc (dbg, readp);
-
- /* If the offset is zero we reached the end of the set. */
- if (gl.die_offset == 0)
- break;
-
- /* Add the CU offset. */
- gl.die_offset += dbg->pubnames_sets[cnt].cu_offset;
-
- gl.name = (char *) readp;
- readp = (unsigned char *) rawmemchr (gl.name, '\0') + 1;
-
- /* We found name and DIE offset. Report it. */
- if (callback (dbg, &gl, arg) != DWARF_CB_OK)
- {
- /* The user wants us to stop. Return the offset of the
- next entry. */
- return readp - startp;
- }
- }
-
- if (++cnt == dbg->pubnames_nsets)
- /* This was the last set. */
- break;
-
- startp = (unsigned char *) dbg->sectiondata[IDX_debug_pubnames]->d_buf;
- readp = startp + dbg->pubnames_sets[cnt].set_start;
- }
-
- /* We are done. No more entries. */
- return 0;
-}
diff --git a/libdw/dwarf_getsrc_die.c b/libdw/dwarf_getsrc_die.c
deleted file mode 100644
index 33cbd7b3..00000000
--- a/libdw/dwarf_getsrc_die.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Find line information for address.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-Dwarf_Line *
-dwarf_getsrc_die (Dwarf_Die *cudie, Dwarf_Addr addr)
-{
- Dwarf_Lines *lines;
- size_t nlines;
-
- if (dwarf_getsrclines (cudie, &lines, &nlines) != 0)
- return NULL;
-
- if (addr >= lines->info[0].addr )
- for (size_t n = 1; n < nlines; ++n)
- if (addr < lines->info[n].addr)
- return &lines->info[n - 1];
-
- __libdw_seterrno (DWARF_E_ADDR_OUTOFRANGE);
- return NULL;
-}
diff --git a/libdw/dwarf_getsrcfiles.c b/libdw/dwarf_getsrcfiles.c
deleted file mode 100644
index 1775168d..00000000
--- a/libdw/dwarf_getsrcfiles.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Return source file information of CU.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_getsrcfiles (Dwarf_Die *cudie, Dwarf_Files **files, size_t *nfiles)
-{
- if (unlikely (cudie == NULL || dwarf_tag (cudie) != DW_TAG_compile_unit))
- return -1;
-
- int res = -1;
-
- /* Get the information if it is not already known. */
- struct Dwarf_CU *const cu = cudie->cu;
- if (cu->lines == NULL)
- {
- Dwarf_Lines *lines;
- size_t nlines;
-
- /* Let the more generic function do the work. It'll create more
- data but that will be needed in an real program anyway. */
- res = dwarf_getsrclines (cudie, &lines, &nlines);
- }
- else if (cu->files != (void *) -1l)
- /* We already have the information. */
- res = 0;
-
- if (likely (res == 0))
- {
- assert (cu->files != NULL && cu->files != (void *) -1l);
- *files = cu->files;
- if (nfiles != NULL)
- *nfiles = cu->files->nfiles;
- }
-
- // XXX Eventually: unlocking here.
-
- return res;
-}
diff --git a/libdw/dwarf_getsrclines.c b/libdw/dwarf_getsrclines.c
deleted file mode 100644
index a372af2f..00000000
--- a/libdw/dwarf_getsrclines.c
+++ /dev/null
@@ -1,613 +0,0 @@
-/* Return line number information of CU.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
-#include "dwarf.h"
-#include "libdwP.h"
-
-
-struct filelist
-{
- Dwarf_Fileinfo info;
- struct filelist *next;
-};
-
-struct linelist
-{
- Dwarf_Line line;
- struct linelist *next;
-};
-
-
-/* Adds a new line to the matrix. We cannot definte a function because
- we want to use alloca. */
-#define NEW_LINE(end_seq) \
- do { \
- /* Add the new line. */ \
- new_line = (struct linelist *) alloca (sizeof (struct linelist)); \
- \
- /* Set the line information. */ \
- new_line->line.addr = address; \
- new_line->line.file = file; \
- new_line->line.line = line; \
- new_line->line.column = column; \
- new_line->line.is_stmt = is_stmt; \
- new_line->line.basic_block = basic_block; \
- new_line->line.end_sequence = end_seq; \
- new_line->line.prologue_end = prologue_end; \
- new_line->line.epilogue_begin = epilogue_begin; \
- \
- new_line->next = linelist; \
- linelist = new_line; \
- ++nlinelist; \
- } while (0)
-
-
-int
-dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
-{
- if (unlikely (cudie == NULL || dwarf_tag (cudie) != DW_TAG_compile_unit))
- return -1;
-
- int res = -1;
-
- /* Get the information if it is not already known. */
- struct Dwarf_CU *const cu = cudie->cu;
- if (cu->lines == NULL)
- {
- /* Failsafe mode: no data found. */
- cu->lines = (void *) -1l;
- cu->files = (void *) -1l;
-
- /* The die must have a statement list associated. */
- Dwarf_Attribute stmt_list_mem;
- Dwarf_Attribute *stmt_list = dwarf_attr (cudie, DW_AT_stmt_list,
- &stmt_list_mem);
-
- /* Get the offset into the .debug_line section. NB: this call
- also checks whether the previous dwarf_attr call failed. */
- Dwarf_Word offset;
- if (dwarf_formudata (stmt_list, &offset) != 0)
- goto out;
-
- Dwarf *dbg = cu->dbg;
- if (dbg->sectiondata[IDX_debug_line] == NULL)
- {
- __libdw_seterrno (DWARF_E_NO_DEBUG_LINE);
- goto out;
- }
- uint8_t *linep = dbg->sectiondata[IDX_debug_line]->d_buf + offset;
- uint8_t *lineendp = (dbg->sectiondata[IDX_debug_line]->d_buf
- + dbg->sectiondata[IDX_debug_line]->d_size);
-
- /* Get the compilation directory. */
- Dwarf_Attribute compdir_attr_mem;
- Dwarf_Attribute *compdir_attr = dwarf_attr (cudie, DW_AT_comp_dir,
- &compdir_attr_mem);
- const char *comp_dir = dwarf_formstring (compdir_attr);
-
- if (unlikely (linep + 4 > lineendp))
- {
- invalid_data:
- __libdw_seterrno (DWARF_E_INVALID_DEBUG_LINE);
- goto out;
- }
- Dwarf_Word unit_length = read_4ubyte_unaligned_inc (dbg, linep);
- unsigned int length = 4;
- if (unlikely (unit_length == 0xffffffff))
- {
- if (unlikely (linep + 8 > lineendp))
- goto invalid_data;
- unit_length = read_8ubyte_unaligned_inc (dbg, linep);
- length = 8;
- }
-
- /* Check whether we have enough room in the section. */
- if (unit_length < 2 + length + 5 * 1
- || unlikely (linep + unit_length > lineendp))
- goto invalid_data;
- lineendp = linep + unit_length;
-
- /* The next element of the header is the version identifier. */
- uint_fast16_t version = read_2ubyte_unaligned_inc (dbg, linep);
- if (unlikely (version != DWARF_VERSION))
- {
- __libdw_seterrno (DWARF_E_VERSION);
- goto out;
- }
-
- /* Next comes the header length. */
- Dwarf_Word header_length;
- if (length == 4)
- header_length = read_4ubyte_unaligned_inc (dbg, linep);
- else
- header_length = read_8ubyte_unaligned_inc (dbg, linep);
- unsigned char *header_start = linep;
-
- /* Next the minimum instruction length. */
- uint_fast8_t minimum_instr_len = *linep++;
-
- /* Then the flag determining the default value of the is_stmt
- register. */
- uint_fast8_t default_is_stmt = *linep++;
-
- /* Now the line base. */
- int_fast8_t line_base = *((int_fast8_t *) linep);
- ++linep;
-
- /* And the line range. */
- uint_fast8_t line_range = *linep++;
-
- /* The opcode base. */
- uint_fast8_t opcode_base = *linep++;
-
- /* Remember array with the standard opcode length (-1 to account for
- the opcode with value zero not being mentioned). */
- uint8_t *standard_opcode_lengths = linep - 1;
- linep += opcode_base - 1;
- if (unlikely (linep >= lineendp))
- goto invalid_data;
-
- /* First comes the list of directories. Add the compilation
- directory first since the index zero is used for it. */
- struct dirlist
- {
- const char *dir;
- size_t len;
- struct dirlist *next;
- } comp_dir_elem =
- {
- .dir = comp_dir,
- .len = comp_dir ? strlen (comp_dir) : 0,
- .next = NULL
- };
- struct dirlist *dirlist = &comp_dir_elem;
- unsigned int ndirlist = 1;
-
- // XXX Directly construct array to conserve memory?
- while (*linep != 0)
- {
- struct dirlist *new_dir =
- (struct dirlist *) alloca (sizeof (*new_dir));
-
- new_dir->dir = (char *) linep;
- uint8_t *endp = memchr (linep, '\0', lineendp - linep);
- if (endp == NULL)
- goto invalid_data;
- new_dir->len = endp - linep;
- new_dir->next = dirlist;
- dirlist = new_dir;
- ++ndirlist;
- linep = endp + 1;
- }
- /* Skip the final NUL byte. */
- ++linep;
-
- /* Rearrange the list in array form. */
- struct dirlist **dirarray
- = (struct dirlist **) alloca (ndirlist * sizeof (*dirarray));
- while (ndirlist-- > 0)
- {
- dirarray[ndirlist] = dirlist;
- dirlist = dirlist->next;
- }
-
- /* Now read the files. */
- struct filelist null_file =
- {
- .info =
- {
- .name = "???",
- .mtime = 0,
- .length = 0
- },
- .next = NULL
- };
- struct filelist *filelist = &null_file;
- unsigned int nfilelist = 1;
-
- if (unlikely (linep >= lineendp))
- goto invalid_data;
- while (*linep != 0)
- {
- struct filelist *new_file =
- (struct filelist *) alloca (sizeof (*new_file));
-
- /* First comes the file name. */
- char *fname = (char *) linep;
- uint8_t *endp = memchr (fname, '\0', lineendp - linep);
- if (endp == NULL)
- goto invalid_data;
- size_t fnamelen = endp - (uint8_t *) fname;
- linep = endp + 1;
-
- /* Then the index. */
- Dwarf_Word diridx;
- get_uleb128 (diridx, linep);
- if (unlikely (diridx >= ndirlist))
- {
- __libdw_seterrno (DWARF_E_INVALID_DIR_IDX);
- goto out;
- }
-
- if (*fname == '/')
- /* It's an absolute path. */
- new_file->info.name = fname;
- else
- {
- new_file->info.name = libdw_alloc (dbg, char, 1,
- dirarray[diridx]->len + 1
- + fnamelen + 1);
- char *cp = new_file->info.name;
-
- if (dirarray[diridx]->dir != NULL)
- {
- /* This value could be NULL in case the DW_AT_comp_dir
- was not present. We cannot do much in this case.
- The easiest thing is to convert the path in an
- absolute path. */
- cp = stpcpy (cp, dirarray[diridx]->dir);
- }
- *cp++ = '/';
- strcpy (cp, fname);
- assert (strlen (new_file->info.name)
- < dirarray[diridx]->len + 1 + fnamelen + 1);
- }
-
- /* Next comes the modification time. */
- get_uleb128 (new_file->info.mtime, linep);
-
- /* Finally the length of the file. */
- get_uleb128 (new_file->info.length, linep);
-
- new_file->next = filelist;
- filelist = new_file;
- ++nfilelist;
- }
- /* Skip the final NUL byte. */
- ++linep;
-
- /* Consistency check. */
- if (unlikely (linep != header_start + header_length))
- {
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- goto out;
- }
-
- /* We are about to process the statement program. Initialize the
- state machine registers (see 6.2.2 in the v2.1 specification). */
- Dwarf_Word address = 0;
- size_t file = 1;
- size_t line = 1;
- size_t column = 0;
- uint_fast8_t is_stmt = default_is_stmt;
- int basic_block = 0;
- int prologue_end = 0;
- int epilogue_begin = 0;
-
- /* Process the instructions. */
- struct linelist *linelist = NULL;
- unsigned int nlinelist = 0;
- while (linep < lineendp)
- {
- struct linelist *new_line;
- unsigned int opcode;
- unsigned int u128;
- int s128;
-
- /* Read the opcode. */
- opcode = *linep++;
-
- /* Is this a special opcode? */
- if (likely (opcode >= opcode_base))
- {
- /* Yes. Handling this is quite easy since the opcode value
- is computed with
-
- opcode = (desired line increment - line_base)
- + (line_range * address advance) + opcode_base
- */
- int line_increment = (line_base
- + (opcode - opcode_base) % line_range);
- unsigned int address_increment = (minimum_instr_len
- * ((opcode - opcode_base)
- / line_range));
-
- /* Perform the increments. */
- line += line_increment;
- address += address_increment;
-
- /* Add a new line with the current state machine values. */
- NEW_LINE (0);
-
- /* Reset the flags. */
- basic_block = 0;
- prologue_end = 0;
- epilogue_begin = 0;
- }
- else if (opcode == 0)
- {
- /* This an extended opcode. */
- if (unlikely (linep + 2 > lineendp))
- goto invalid_data;
-
- /* The length. */
- unsigned int len = *linep++;
-
- if (unlikely (linep + len > lineendp))
- goto invalid_data;
-
- /* The sub-opcode. */
- opcode = *linep++;
-
- switch (opcode)
- {
- case DW_LNE_end_sequence:
- /* Add a new line with the current state machine values.
- The is the end of the sequence. */
- NEW_LINE (1);
-
- /* Reset the registers. */
- address = 0;
- file = 1;
- line = 1;
- column = 0;
- is_stmt = default_is_stmt;
- basic_block = 0;
- prologue_end = 0;
- epilogue_begin = 0;
- break;
-
- case DW_LNE_set_address:
- /* The value is an address. The size is defined as
- apporiate for the target machine. We use the
- address size field from the CU header. */
- if (cu->address_size == 4)
- address = read_4ubyte_unaligned_inc (dbg, linep);
- else
- address = read_8ubyte_unaligned_inc (dbg, linep);
- break;
-
- case DW_LNE_define_file:
- {
- char *fname = (char *) linep;
- uint8_t *endp = memchr (linep, '\0', lineendp - linep);
- if (endp == NULL)
- goto invalid_data;
- size_t fnamelen = endp - linep;
- linep = endp + 1;
-
- unsigned int diridx;
- get_uleb128 (diridx, linep);
- Dwarf_Word mtime;
- get_uleb128 (mtime, linep);
- Dwarf_Word filelength;
- get_uleb128 (filelength, linep);
-
- struct filelist *new_file =
- (struct filelist *) alloca (sizeof (*new_file));
- if (fname[0] == '/')
- new_file->info.name = fname;
- else
- {
- new_file->info.name =
- libdw_alloc (dbg, char, 1, (dirarray[diridx]->len + 1
- + fnamelen + 1));
- char *cp = new_file->info.name;
-
- if (dirarray[diridx]->dir != NULL)
- /* This value could be NULL in case the
- DW_AT_comp_dir was not present. We
- cannot do much in this case. The easiest
- thing is to convert the path in an
- absolute path. */
- cp = stpcpy (cp, dirarray[diridx]->dir);
- *cp++ = '/';
- strcpy (cp, fname);
- }
-
- new_file->info.mtime = mtime;
- new_file->info.length = filelength;
- new_file->next = filelist;
- filelist = new_file;
- ++nfilelist;
- }
- break;
-
- default:
- /* Unknown, ignore it. */
- linep += len - 1;
- break;
- }
- }
- else if (opcode <= DW_LNS_set_epilog_begin)
- {
- /* This is a known standard opcode. */
- switch (opcode)
- {
- case DW_LNS_copy:
- /* Takes no argument. */
- if (unlikely (standard_opcode_lengths[opcode] != 0))
- goto invalid_data;
-
- /* Add a new line with the current state machine values. */
- NEW_LINE (0);
-
- /* Reset the flags. */
- basic_block = 0;
- /* XXX Whether the following two lines are necessary is
- unclear. I guess the current v2.1 specification has
- a bug in that it says clearing these two registers is
- not necessary. */
- prologue_end = 0;
- epilogue_begin = 0;
- break;
-
- case DW_LNS_advance_pc:
- /* Takes one uleb128 parameter which is added to the
- address. */
- if (unlikely (standard_opcode_lengths[opcode] != 1))
- goto invalid_data;
-
- get_uleb128 (u128, linep);
- address += minimum_instr_len * u128;
- break;
-
- case DW_LNS_advance_line:
- /* Takes one sleb128 parameter which is added to the
- line. */
- if (unlikely (standard_opcode_lengths[opcode] != 1))
- goto invalid_data;
-
- get_sleb128 (s128, linep);
- line += s128;
- break;
-
- case DW_LNS_set_file:
- /* Takes one uleb128 parameter which is stored in file. */
- if (unlikely (standard_opcode_lengths[opcode] != 1))
- goto invalid_data;
-
- get_uleb128 (u128, linep);
- file = u128;
- break;
-
- case DW_LNS_set_column:
- /* Takes one uleb128 parameter which is stored in column. */
- if (unlikely (standard_opcode_lengths[opcode] != 1))
- goto invalid_data;
-
- get_uleb128 (u128, linep);
- column = u128;
- break;
-
- case DW_LNS_negate_stmt:
- /* Takes no argument. */
- if (unlikely (standard_opcode_lengths[opcode] != 0))
- goto invalid_data;
-
- is_stmt = 1 - is_stmt;
- break;
-
- case DW_LNS_set_basic_block:
- /* Takes no argument. */
- if (unlikely (standard_opcode_lengths[opcode] != 0))
- goto invalid_data;
-
- basic_block = 1;
- break;
-
- case DW_LNS_const_add_pc:
- /* Takes no argument. */
- if (unlikely (standard_opcode_lengths[opcode] != 0))
- goto invalid_data;
-
- address += (minimum_instr_len
- * ((255 - opcode_base) / line_range));
- break;
-
- case DW_LNS_fixed_advance_pc:
- /* Takes one 16 bit parameter which is added to the
- address. */
- if (unlikely (standard_opcode_lengths[opcode] != 1))
- goto invalid_data;
-
- address += read_2ubyte_unaligned_inc (dbg, linep);
- break;
-
- case DW_LNS_set_prologue_end:
- /* Takes no argument. */
- if (unlikely (standard_opcode_lengths[opcode] != 0))
- goto invalid_data;
-
- prologue_end = 1;
- break;
-
- case DW_LNS_set_epilog_begin:
- /* Takes no argument. */
- if (unlikely (standard_opcode_lengths[opcode] != 0))
- goto invalid_data;
-
- epilogue_begin = 1;
- break;
- }
- }
- else
- {
- /* This is a new opcode the generator but not we know about.
- Read the parameters associated with it but then discard
- everything. Read all the parameters for this opcode. */
- for (int n = standard_opcode_lengths[opcode]; n > 0; --n)
- get_uleb128 (u128, linep);
-
- /* Next round, ignore this opcode. */
- continue;
- }
- }
-
- /* Put all the files in an array. */
- Dwarf_Files *files = libdw_alloc (dbg, Dwarf_Files,
- sizeof (Dwarf_Files)
- + nfilelist * sizeof (Dwarf_Fileinfo),
- 1);
- files->nfiles = nfilelist;
- while (nfilelist-- > 0)
- {
- files->info[nfilelist] = filelist->info;
- filelist = filelist->next;
- }
- assert (filelist == NULL);
-
- /* Remember the debugging descriptor. */
- files->dbg = dbg;
-
- /* Make the file data structure available through the CU. */
- cu->files = files;
-
- cu->lines = libdw_alloc (dbg, Dwarf_Lines, (sizeof (Dwarf_Lines)
- + (sizeof (Dwarf_Line)
- * nlinelist)), 1);
- cu->lines->nlines = nlinelist;
- while (nlinelist-- > 0)
- {
- cu->lines->info[nlinelist] = linelist->line;
- cu->lines->info[nlinelist].files = files;
- linelist = linelist->next;
- }
- assert (linelist == NULL);
-
- /* Success. */
- res = 0;
- }
- else if (cu->lines != (void *) -1l)
- /* We already have the information. */
- res = 0;
-
- if (likely (res == 0))
- {
- *lines = cu->lines;
- *nlines = cu->lines->nlines;
- }
- out:
-
- // XXX Eventually: unlocking here.
-
- return res;
-}
diff --git a/libdw/dwarf_getstring.c b/libdw/dwarf_getstring.c
deleted file mode 100644
index e4abe8cb..00000000
--- a/libdw/dwarf_getstring.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Get string.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <string.h>
-#include "libdwP.h"
-
-
-const char *
-dwarf_getstring (dbg, offset, lenp)
- Dwarf *dbg;
- Dwarf_Off offset;
- size_t *lenp;
-{
- if (dbg == NULL)
- return NULL;
-
- if (dbg->sectiondata[IDX_debug_str] == NULL
- || offset >= dbg->sectiondata[IDX_debug_str]->d_size)
- {
- no_string:
- __libdw_seterrno (DWARF_E_NO_STRING);
- return NULL;
- }
-
- const char *result = ((const char *) dbg->sectiondata[IDX_debug_str]->d_buf
- + offset);
- const char *endp = memchr (result, '\0',
- dbg->sectiondata[IDX_debug_str]->d_size - offset);
- if (endp == NULL)
- goto no_string;
-
- if (lenp != NULL)
- *lenp = endp - result;
-
- return result;
-}
diff --git a/libdw/dwarf_hasattr.c b/libdw/dwarf_hasattr.c
deleted file mode 100644
index 15ad8daa..00000000
--- a/libdw/dwarf_hasattr.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Check whether given DIE has specific attribute.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_hasattr (die, search_name)
- Dwarf_Die *die;
- unsigned int search_name;
-{
- if (die == NULL)
- return 0;
-
- /* Search for the attribute with the given name. */
- unsigned int code;
- (void) __libdw_find_attr (die, search_name, &code, NULL);
-
- return code == search_name;
-}
diff --git a/libdw/dwarf_haschildren.c b/libdw/dwarf_haschildren.c
deleted file mode 100644
index 2a9fe5ff..00000000
--- a/libdw/dwarf_haschildren.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Return string associated with given attribute.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-#include <string.h>
-
-
-int
-dwarf_haschildren (die)
- Dwarf_Die *die;
-{
- /* Find the abbreviation entry. */
- Dwarf_Abbrev *abbrevp = die->abbrev;
- if (abbrevp != (Dwarf_Abbrev *) -1l)
- {
- unsigned char *readp = (unsigned char *) die->addr;
-
- /* First we have to get the abbreviation code so that we can decode
- the data in the DIE. */
- unsigned int abbrev_code;
- get_uleb128 (abbrev_code, readp);
-
- abbrevp = __libdw_findabbrev (die->cu, abbrev_code);
- die->abbrev = abbrevp ?: (Dwarf_Abbrev *) -1l;
- }
- if (unlikely (die->abbrev == (Dwarf_Abbrev *) -1l))
- {
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- return 0;
- }
-
- return die->abbrev->has_children;
-}
diff --git a/libdw/dwarf_hasform.c b/libdw/dwarf_hasform.c
deleted file mode 100644
index 392b1f13..00000000
--- a/libdw/dwarf_hasform.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Check whether given attribute has specific form.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_hasform (attr, search_form)
- Dwarf_Attribute *attr;
- unsigned int search_form;
-{
- if (attr == NULL)
- return 0;
-
- return attr->form == search_form;
-}
diff --git a/libdw/dwarf_highpc.c b/libdw/dwarf_highpc.c
deleted file mode 100644
index 019cf141..00000000
--- a/libdw/dwarf_highpc.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Return high PC attribute of DIE.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_highpc (die, return_addr)
- Dwarf_Die *die;
- Dwarf_Addr *return_addr;
-{
- Dwarf_Attribute attr_mem;
-
- return dwarf_formaddr (dwarf_attr (die, DW_AT_high_pc, &attr_mem),
- return_addr);
-}
diff --git a/libdw/dwarf_lineaddr.c b/libdw/dwarf_lineaddr.c
deleted file mode 100644
index ddfc01ba..00000000
--- a/libdw/dwarf_lineaddr.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Return line address.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-int
-dwarf_lineaddr (Dwarf_Line *line, Dwarf_Addr *addrp)
-{
- if (line == NULL)
- return -1;
-
- *addrp = line->addr;
-
- return 0;
-}
diff --git a/libdw/dwarf_linebeginstatement.c b/libdw/dwarf_linebeginstatement.c
deleted file mode 100644
index d974d8f4..00000000
--- a/libdw/dwarf_linebeginstatement.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Return true if record is for beginning of a statement.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-int
-dwarf_linebeginstatement (Dwarf_Line *line, bool *flagp)
-{
- if (line == NULL)
- return -1;
-
- *flagp = line->is_stmt;
-
- return 0;
-}
diff --git a/libdw/dwarf_lineblock.c b/libdw/dwarf_lineblock.c
deleted file mode 100644
index a6b8e0c2..00000000
--- a/libdw/dwarf_lineblock.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Return true if record is for beginning of a basic block.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-int
-dwarf_lineblock (Dwarf_Line *line, bool *flagp)
-{
- if (line == NULL)
- return -1;
-
- *flagp = line->basic_block;
-
- return 0;
-}
diff --git a/libdw/dwarf_linecol.c b/libdw/dwarf_linecol.c
deleted file mode 100644
index 2430d372..00000000
--- a/libdw/dwarf_linecol.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Return column in line.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-int
-dwarf_linecol (Dwarf_Line *line, int *colp)
-{
- if (line == NULL)
- return -1;
-
- *colp = line->column;
-
- return 0;
-}
diff --git a/libdw/dwarf_lineendsequence.c b/libdw/dwarf_lineendsequence.c
deleted file mode 100644
index c49fabe2..00000000
--- a/libdw/dwarf_lineendsequence.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Return true if record is for end of sequence.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-int
-dwarf_lineendsequence (Dwarf_Line *line, bool *flagp)
-{
- if (line == NULL)
- return -1;
-
- *flagp = line->end_sequence;
-
- return 0;
-}
diff --git a/libdw/dwarf_lineepiloguebegin.c b/libdw/dwarf_lineepiloguebegin.c
deleted file mode 100644
index ee4f5bb7..00000000
--- a/libdw/dwarf_lineepiloguebegin.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Return true if record is for beginning of epilogue.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-int
-dwarf_lineepiloguebegin (Dwarf_Line *line, bool *flagp)
-{
- if (line == NULL)
- return -1;
-
- *flagp = line->epilogue_begin;
-
- return 0;
-}
diff --git a/libdw/dwarf_lineno.c b/libdw/dwarf_lineno.c
deleted file mode 100644
index 5ad24067..00000000
--- a/libdw/dwarf_lineno.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Return line number.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-int
-dwarf_lineno (Dwarf_Line *line, int *linep)
-{
- if (line == NULL)
- return -1;
-
- *linep = line->line;
-
- return 0;
-}
diff --git a/libdw/dwarf_lineprologueend.c b/libdw/dwarf_lineprologueend.c
deleted file mode 100644
index e869025c..00000000
--- a/libdw/dwarf_lineprologueend.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Return true if record is for end of prologue.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-int
-dwarf_lineprologueend (Dwarf_Line *line, bool *flagp)
-{
- if (line == NULL)
- return -1;
-
- *flagp = line->prologue_end;
-
- return 0;
-}
diff --git a/libdw/dwarf_linesrc.c b/libdw/dwarf_linesrc.c
deleted file mode 100644
index 0aca1d6f..00000000
--- a/libdw/dwarf_linesrc.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Find line information for address.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-const char *
-dwarf_linesrc (Dwarf_Line *line, Dwarf_Word *mtime, Dwarf_Word *length)
-{
- if (line == NULL)
- return NULL;
-
- if (line->file >= line->files->nfiles)
- {
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- return NULL;
- }
-
- if (mtime != NULL)
- *mtime = line->files->info[line->file].mtime;
-
- if (length != NULL)
- *length = line->files->info[line->file].length;
-
- return line->files->info[line->file].name;
-}
diff --git a/libdw/dwarf_lowpc.c b/libdw/dwarf_lowpc.c
deleted file mode 100644
index 95d29120..00000000
--- a/libdw/dwarf_lowpc.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Return low PC attribute of DIE.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_lowpc (die, return_addr)
- Dwarf_Die *die;
- Dwarf_Addr *return_addr;
-{
- Dwarf_Attribute attr_mem;
-
- return dwarf_formaddr (dwarf_attr (die, DW_AT_low_pc, &attr_mem),
- return_addr);
-}
diff --git a/libdw/dwarf_nextcu.c b/libdw/dwarf_nextcu.c
deleted file mode 100644
index e674a66e..00000000
--- a/libdw/dwarf_nextcu.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Advance to next CU header.
- Copyright (C) 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libdwP.h>
-
-
-int
-dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp,
- address_sizep, offset_sizep)
- Dwarf *dwarf;
- Dwarf_Off off;
- Dwarf_Off *next_off;
- size_t *header_sizep;
- Dwarf_Off *abbrev_offsetp;
- uint8_t *address_sizep;
- uint8_t *offset_sizep;
-{
- /* Maybe there has been an error before. */
- if (dwarf == NULL)
- return -1;
-
- /* If we reached the end before don't do anything. */
- if (off == (Dwarf_Off) -1l
- /* Make sure there is enough space in the .debug_info section
- for at least the initial word. We cannot test the rest since
- we don't know yet whether this is a 64-bit object or not. */
- || unlikely (off + 4 >= dwarf->sectiondata[IDX_debug_info]->d_size))
- {
- *next_off = (Dwarf_Off) -1l;
- return 1;
- }
-
- /* This points into the .debug_info section to the beginning of the
- CU entry. */
- char *bytes = (char *) dwarf->sectiondata[IDX_debug_info]->d_buf + off;
-
- /* The format of the CU header is described in dwarf2p1 7.5.1:
-
- 1. A 4-byte or 12-byte unsigned integer representing the length
- of the .debug_info contribution for that compilation unit, not
- including the length field itself. In the 32-bit DWARF format,
- this is a 4-byte unsigned integer (which must be less than
- 0xffffff00); in the 64-bit DWARF format, this consists of the
- 4-byte value 0xffffffff followed by an 8-byte unsigned integer
- that gives the actual length (see Section 7.4).
-
- 2. A 2-byte unsigned integer representing the version of the
- DWARF information for that compilation unit. For DWARF Version
- 2.1, the value in this field is 2.
-
- 3. A 4-byte or 8-byte unsigned offset into the .debug_abbrev
- section. This offset associates the compilation unit with a
- particular set of debugging information entry abbreviations. In
- the 32-bit DWARF format, this is a 4-byte unsigned length; in
- the 64-bit DWARF format, this is an 8-byte unsigned length (see
- Section 7.4).
-
- 4. A 1-byte unsigned integer representing the size in bytes of
- an address on the target architecture. If the system uses
- segmented addressing, this value represents the size of the
- offset portion of an address. */
- uint64_t length = read_4ubyte_unaligned_inc (dwarf, bytes);
- size_t offset_size = 4;
- if (length == 0xffffffffu)
- offset_size = 8;
-
- /* Now we know how large the header is. Note the trick in the
- computation. If the offset_size is 4 the '- 4' term undoes the
- '2 *'. If offset_size is 8 this term computes the size of the
- escape value plus the 8 byte offset. */
- if (unlikely (off + 2 * offset_size - 4 + sizeof (uint16_t)
- + offset_size + sizeof (uint8_t)
- >= dwarf->sectiondata[IDX_debug_info]->d_size))
- {
- *next_off = -1;
- return 1;
- }
-
- if (length == 0xffffffffu)
- /* This is a 64-bit DWARF format. */
- length = read_8ubyte_unaligned_inc (dwarf, bytes);
-
- /* Read the version stamp. Always a 16-bit value.
- XXX Do we need the value? */
- read_2ubyte_unaligned_inc (dwarf, bytes);
-
- /* Get offset in .debug_abbrev. Note that the size of the entry
- depends on whether this is a 32-bit or 64-bit DWARF definition. */
- uint64_t abbrev_offset;
- if (offset_size == 4)
- abbrev_offset = read_4ubyte_unaligned_inc (dwarf, bytes);
- else
- abbrev_offset = read_8ubyte_unaligned_inc (dwarf, bytes);
- if (abbrev_offsetp != NULL)
- *abbrev_offsetp = abbrev_offset;
-
- /* The address size. Always an 8-bit value. */
- uint8_t address_size = *bytes++;
- if (address_sizep != NULL)
- *address_sizep = address_size;
-
- /* Store the offset size. */
- if (offset_sizep != NULL)
- *offset_sizep = offset_size;
-
- /* Store the header length. */
- if (header_sizep != NULL)
- *header_sizep = (bytes
- - ((char *) dwarf->sectiondata[IDX_debug_info]->d_buf
- + off));
-
- /* See above for an explanation of the trick in this formula. */
- *next_off = off + 2 * offset_size - 4 + length;
-
- return 0;
-}
diff --git a/libdw/dwarf_offabbrev.c b/libdw/dwarf_offabbrev.c
deleted file mode 100644
index 17978fbc..00000000
--- a/libdw/dwarf_offabbrev.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Get abbreviation at given offset.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-int
-dwarf_offabbrev (Dwarf *dbg, Dwarf_Off offset, size_t *lengthp,
- Dwarf_Abbrev *abbrevp)
-{
- if (dbg == NULL)
- return -1;
-
- return __libdw_getabbrev (dbg, NULL, offset, lengthp, abbrevp) == NULL;
-}
diff --git a/libdw/dwarf_offdie.c b/libdw/dwarf_offdie.c
deleted file mode 100644
index 6ef5595c..00000000
--- a/libdw/dwarf_offdie.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Return DIE at given offset.
- Copyright (C) 2002, 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <string.h>
-#include "libdwP.h"
-
-
-Dwarf_Die *
-dwarf_offdie (dbg, offset, result)
- Dwarf *dbg;
- Dwarf_Off offset;
- Dwarf_Die *result;
-{
- if (dbg == NULL)
- return NULL;
-
- if (offset >= dbg->sectiondata[IDX_debug_info]->d_size)
- {
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- return NULL;
- }
-
- /* Clear the entire DIE structure. This signals we have not yet
- determined any of the information. */
- memset (result, '\0', sizeof (Dwarf_Die));
-
- result->addr = (char *) dbg->sectiondata[IDX_debug_info]->d_buf + offset;
-
- /* Get the CU. */
- result->cu = __libdw_findcu (dbg, offset);
- if (result->cu == NULL)
- {
- /* This should never happen. The input file is malformed. */
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- result = NULL;
- }
-
- return result;
-}
diff --git a/libdw/dwarf_onearange.c b/libdw/dwarf_onearange.c
deleted file mode 100644
index 0c372526..00000000
--- a/libdw/dwarf_onearange.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Return one of the address range entries.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-Dwarf_Arange *
-dwarf_onearange (Dwarf_Aranges *aranges, size_t idx)
-{
- if (aranges == NULL)
- return NULL;
-
- if (idx >= aranges->naranges)
- {
- __libdw_seterrno (DWARF_E_INVALID_ARANGE_IDX);
- return NULL;
- }
-
- return &aranges->info[idx];
-}
diff --git a/libdw/dwarf_onesrcline.c b/libdw/dwarf_onesrcline.c
deleted file mode 100644
index 9234ef9a..00000000
--- a/libdw/dwarf_onesrcline.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Return one of the sources lines of a CU.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-Dwarf_Line *
-dwarf_onesrcline (Dwarf_Lines *lines, size_t idx)
-{
- if (lines == NULL)
- return NULL;
-
- if (idx >= lines->nlines)
- {
- __libdw_seterrno (DWARF_E_INVALID_LINE_IDX);
- return NULL;
- }
-
- return &lines->info[idx];
-}
diff --git a/libdw/dwarf_siblingof.c b/libdw/dwarf_siblingof.c
deleted file mode 100644
index 90081c64..00000000
--- a/libdw/dwarf_siblingof.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Return sibling of given DIE.
- Copyright (C) 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-#include <dwarf.h>
-#include <string.h>
-
-
-int
-dwarf_siblingof (die, result)
- Dwarf_Die *die;
- Dwarf_Die *result;
-{
- /* Ignore previous errors. */
- if (die == NULL)
- return -1;
-
- unsigned int level = 0;
-
- /* Copy of the current DIE. */
- Dwarf_Die this_die = *die;
- /* Temporary attributes we create. */
- Dwarf_Attribute sibattr;
- /* Copy of the CU in the request. */
- sibattr.cu = this_die.cu;
- /* That's the address we start looking. */
- unsigned char *addr = this_die.addr;
-
- /* Search for the beginning of the next die on this level. We
- must not return the dies for children of the given die. */
- do
- {
- /* Find the end of the DIE or the sibling attribute. */
- addr = __libdw_find_attr (&this_die, DW_AT_sibling, &sibattr.code,
- &sibattr.form);
- if (sibattr.code == DW_AT_sibling)
- {
- Dwarf_Off offset;
- sibattr.valp = addr;
- if (dwarf_formref (&sibattr, &offset) != 0)
- /* Something went wrong. */
- return -1;
-
- /* Compute the next address. */
- addr = ((unsigned char *)
- sibattr.cu->dbg->sectiondata[IDX_debug_info]->d_buf
- + sibattr.cu->start + offset);
- }
- else if (unlikely (addr == NULL)
- || unlikely (this_die.abbrev == (Dwarf_Abbrev *) -1l))
- return -1;
- else if (this_die.abbrev->has_children)
- /* This abbreviation has children. */
- ++level;
-
- /* Check that we are not yet at the end. */
- while (*addr == '\0')
- {
- if (level-- == 0)
- /* No more sibling at all. */
- return 1;
-
- ++addr;
- }
-
- /* Initialize the 'current DIE'. */
- this_die.addr = addr;
- this_die.abbrev = NULL;
- }
- while (level > 0);
-
- /* Maybe we reached the end of the CU. */
- if (addr
- >= ((unsigned char *) sibattr.cu->dbg->sectiondata[IDX_debug_info]->d_buf
- + sibattr.cu->end))
- return 1;
-
- /* Clear the entire DIE structure. This signals we have not yet
- determined any of the information. */
- memset (result, '\0', sizeof (Dwarf_Die));
-
- /* We have the address. */
- result->addr = addr;
-
- /* Same CU as the parent. */
- result->cu = sibattr.cu;
-
- return 0;
-}
diff --git a/libdw/dwarf_srclang.c b/libdw/dwarf_srclang.c
deleted file mode 100644
index fc256321..00000000
--- a/libdw/dwarf_srclang.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Return source language attribute of DIE.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_srclang (die)
- Dwarf_Die *die;
-{
- Dwarf_Attribute attr_mem;
- Dwarf_Word value;
-
- return dwarf_formudata (dwarf_attr (die, DW_AT_language, &attr_mem),
- &value) == 0 ? (int) value : -1;
-}
diff --git a/libdw/dwarf_tag.c b/libdw/dwarf_tag.c
deleted file mode 100644
index 23814cbc..00000000
--- a/libdw/dwarf_tag.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Return tag of given DIE.
- Copyright (C) 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libdwP.h"
-
-
-Dwarf_Abbrev *
-internal_function_def
-__libdw_findabbrev (struct Dwarf_CU *cu, unsigned int code)
-{
- Dwarf_Abbrev *abb;
-
- /* See whether the entry is already in the hash table. */
- abb = Dwarf_Abbrev_Hash_find (&cu->abbrev_hash, code, NULL);
- if (abb == NULL)
- while (cu->last_abbrev_offset != (size_t) -1l)
- {
- size_t length;
-
- /* Find the next entry. It gets automatically added to the
- hash table. */
- abb = __libdw_getabbrev (cu->dbg, cu, cu->last_abbrev_offset, &length,
- NULL);
- if (abb == NULL)
- {
- /* Make sure we do not try to search for it again. */
- cu->last_abbrev_offset = (size_t) -1l;
- abb = (void *) -1l;
- break;
- }
-
- cu->last_abbrev_offset += length;
-
- /* Is this the code we are looking for? */
- if (abb->code == code)
- break;
- }
-
- return abb;
-}
-
-
-int
-dwarf_tag (die)
- Dwarf_Die *die;
-{
- /* Do we already know the abbreviation? */
- if (die->abbrev == NULL)
- {
- /* Get the abbreviation code. */
- unsigned int u128;
- unsigned char *addr = die->addr;
- get_uleb128 (u128, addr);
-
- /* Find the abbreviation. */
- die->abbrev = __libdw_findabbrev (die->cu, u128);
- }
-
- if (die->abbrev == (Dwarf_Abbrev *) -1l)
- {
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- return DW_TAG_invalid;
- }
-
- return die->abbrev->tag;
-}
diff --git a/libdw/dwarf_whatattr.c b/libdw/dwarf_whatattr.c
deleted file mode 100644
index ad5d868f..00000000
--- a/libdw/dwarf_whatattr.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Return attribute code of given attribute.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-unsigned int
-dwarf_whatattr (attr)
- Dwarf_Attribute *attr;
-{
- return attr == NULL ? 0 : attr->code;
-}
diff --git a/libdw/dwarf_whatform.c b/libdw/dwarf_whatform.c
deleted file mode 100644
index 99da1c97..00000000
--- a/libdw/dwarf_whatform.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Return form code of given attribute.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-unsigned int
-dwarf_whatform (attr)
- Dwarf_Attribute *attr;
-{
- return attr == NULL ? 0 : attr->form;
-}
diff --git a/libdw/libdw.h b/libdw/libdw.h
deleted file mode 100644
index eee986ff..00000000
--- a/libdw/libdw.h
+++ /dev/null
@@ -1,453 +0,0 @@
-/* Interfaces for libdw.
- Copyright (C) 2002, 2004 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBDW_H
-#define _LIBDW_H 1
-
-#include <gelf.h>
-#include <stdbool.h>
-#include <stddef.h>
-
-
-#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
-# define __nonnull_attribute__(...) __attribute__ ((__nonnull__ (__VA_ARGS__)))
-#else
-# define __nonnull_attribute__(args...)
-#endif
-
-
-/* Mode for the session. */
-typedef enum
- {
- DWARF_C_READ, /* Read .. */
- DWARF_C_RDWR, /* Read and write .. */
- DWARF_C_WRITE, /* Write .. */
- }
-Dwarf_Cmd;
-
-
-/* Callback results. */
-enum
-{
- DWARF_CB_OK = 0,
- DWARF_CB_ABORT
-};
-
-
-/* Error values. */
-enum
- {
- DW_TAG_invalid = 0
-#define DW_TAG_invalid DW_TAG_invalid
- };
-
-
-/* Type for offset in DWARF file. */
-typedef GElf_Off Dwarf_Off;
-
-/* Type for address in DWARF file. */
-typedef GElf_Addr Dwarf_Addr;
-
-/* Integer types. Big enough to hold any numeric value. */
-typedef GElf_Xword Dwarf_Word;
-typedef GElf_Sxword Dwarf_Sword;
-/* For the times we know we do not need that much. */
-typedef GElf_Half Dwarf_Half;
-
-
-/* DWARF abbreviation record. */
-typedef struct Dwarf_Abbrev Dwarf_Abbrev;
-
-/* Source code line information for CU. */
-typedef struct Dwarf_Lines_s Dwarf_Lines;
-
-/* One source code line information. */
-typedef struct Dwarf_Line_s Dwarf_Line;
-
-/* Source file information. */
-typedef struct Dwarf_Files_s Dwarf_Files;
-
-/* One address range record. */
-typedef struct Dwarf_Arange_s Dwarf_Arange;
-
-/* Address ranges of a file. */
-typedef struct Dwarf_Aranges_s Dwarf_Aranges;
-
-/* CU representation. */
-struct Dwarf_CU;
-
-/* Attribute representation. */
-typedef struct
-{
- unsigned int code;
- unsigned int form;
- unsigned char *valp;
- struct Dwarf_CU *cu;
-} Dwarf_Attribute;
-
-
-/* Data block representation. */
-typedef struct
-{
- Dwarf_Word length;
- unsigned char *data;
-} Dwarf_Block;
-
-
-/* Macro information. */
-typedef struct
-{
- unsigned int opcode;
- Dwarf_Word param1;
- union
- {
- Dwarf_Word u;
- const char *s;
- } param2;
-} Dwarf_Macro;
-
-
-/* DIE information. */
-typedef struct
-{
- /* The offset can be computed from the address. */
- void *addr;
- struct Dwarf_CU *cu;
- Dwarf_Abbrev *abbrev;
- // XXX We'll see what other information will be needed.
-} Dwarf_Die;
-
-/* Returned to show the last DIE has be returned. */
-#define DWARF_END_DIE ((Dwarf_Die *) -1l)
-
-
-/* Global symbol information. */
-typedef struct
-{
- Dwarf_Off cu_offset;
- Dwarf_Off die_offset;
- const char *name;
-} Dwarf_Global;
-
-
-// XXX It remains to be seen whether the next two need to be exported.
-/* Location record. */
-typedef struct
-{
- uint8_t atom; /* Operation */
- Dwarf_Word number; /* Operand */
- Dwarf_Word number2; /* Possible second operand */
- Dwarf_Word offset; /* Offset in location expression */
-} Dwarf_Loc;
-
-
-/* Handle for debug sessions. */
-typedef struct Dwarf Dwarf;
-
-
-/* Out-Of-Memory handler. */
-typedef void (*__attribute__ ((noreturn)) Dwarf_OOM) (void);
-
-
-/* Create a handle for a new debug session. */
-extern Dwarf *dwarf_begin (int fildes, Dwarf_Cmd cmd);
-
-/* Create a handle for a new debug session for an ELF file. */
-extern Dwarf *dwarf_begin_elf (Elf *elf, Dwarf_Cmd cmd, Elf_Scn *scngrp);
-
-/* Retrieve ELF descriptor used for DWARF access. */
-extern Elf *dwarf_getelf (Dwarf *dwarf);
-
-/* Release debugging handling context. */
-extern int dwarf_end (Dwarf *dwarf);
-
-
-/* Get the data block for the .debug_info section. */
-extern Elf_Data *dwarf_getscn_info (Dwarf *dwarf);
-
-/* Read the header for the DWARF CU header. */
-extern int dwarf_nextcu (Dwarf *dwarf, Dwarf_Off off, Dwarf_Off *next_off,
- size_t *header_sizep, Dwarf_Off *abbrev_offsetp,
- uint8_t *address_sizep, uint8_t *offset_sizep)
- __nonnull_attribute__ (3);
-
-
-/* Return DIE at given offset. */
-extern Dwarf_Die *dwarf_offdie (Dwarf *dbg, Dwarf_Off offset,
- Dwarf_Die *result) __nonnull_attribute__ (3);
-
-/* Return offset of DIE. */
-extern Dwarf_Off dwarf_dieoffset (Dwarf_Die *die);
-
-/* Return offset of DIE in CU. */
-extern Dwarf_Off dwarf_cuoffset (Dwarf_Die *die);
-
-/* Return vhild of current DIE. */
-extern int dwarf_child (Dwarf_Die *die, Dwarf_Die *result)
- __nonnull_attribute__ (2);
-
-/* Return sibling of given DIE. */
-extern int dwarf_siblingof (Dwarf_Die *die, Dwarf_Die *result)
- __nonnull_attribute__ (2);
-
-/* Check whether the DIE has children. */
-extern int dwarf_haschildren (Dwarf_Die *die);
-
-/* Get attributes of the DIE. */
-extern ptrdiff_t dwarf_getattrs (Dwarf_Die *die,
- int (*callback) (Dwarf_Attribute *, void *),
- void *arg, ptrdiff_t offset);
-
-/* Return tag of given DIE. */
-extern int dwarf_tag (Dwarf_Die *die);
-
-
-/* Return specific attribute of DIE. */
-extern Dwarf_Attribute *dwarf_attr (Dwarf_Die *die, unsigned int search_name,
- Dwarf_Attribute *result)
- __nonnull_attribute__ (3);
-
-/* Check whether given DIE has specific attribute. */
-extern int dwarf_hasattr (Dwarf_Die *die, unsigned int search_name);
-
-
-/* Check whether given attribute has specific form. */
-extern int dwarf_hasform (Dwarf_Attribute *attr, unsigned int search_form);
-
-/* Return attribute code of given attribute. */
-extern unsigned int dwarf_whatattr (Dwarf_Attribute *attr);
-
-/* Return form code of given attribute. */
-extern unsigned int dwarf_whatform (Dwarf_Attribute *attr);
-
-
-/* Return string associated with given attribute. */
-extern const char *dwarf_formstring (Dwarf_Attribute *attrp);
-
-/* Return unsigned constant represented by attribute. */
-extern int dwarf_formudata (Dwarf_Attribute *attr, Dwarf_Word *return_uval)
- __nonnull_attribute__ (2);
-
-/* Return signed constant represented by attribute. */
-extern int dwarf_formsdata (Dwarf_Attribute *attr, Dwarf_Sword *return_uval)
- __nonnull_attribute__ (2);
-
-/* Return address represented by attribute. */
-extern int dwarf_formaddr (Dwarf_Attribute *attr, Dwarf_Addr *return_addr)
- __nonnull_attribute__ (2);
-
-/* Return reference offset represented by attribute. */
-extern int dwarf_formref (Dwarf_Attribute *attr, Dwarf_Off *return_offset)
- __nonnull_attribute__ (2);
-
-/* Return block represented by attribute. */
-extern int dwarf_formblock (Dwarf_Attribute *attr, Dwarf_Block *return_block)
- __nonnull_attribute__ (2);
-
-/* Return flag represented by attribute. */
-extern int dwarf_formflag (Dwarf_Attribute *attr, bool *return_bool)
- __nonnull_attribute__ (2);
-
-
-/* Simplified attribute value access functions. */
-
-/* Return string in name attribute of DIE. */
-extern const char *dwarf_diename (Dwarf_Die *die);
-
-/* Return high PC attribute of DIE. */
-extern int dwarf_highpc (Dwarf_Die *die, Dwarf_Addr *return_addr)
- __nonnull_attribute__ (2);
-
-/* Return low PC attribute of DIE. */
-extern int dwarf_lowpc (Dwarf_Die *die, Dwarf_Addr *return_addr)
- __nonnull_attribute__ (2);
-
-/* Return byte size attribute of DIE. */
-extern int dwarf_bytesize (Dwarf_Die *die);
-
-/* Return bit size attribute of DIE. */
-extern int dwarf_bitsize (Dwarf_Die *die);
-
-/* Return bit offset attribute of DIE. */
-extern int dwarf_bitoffset (Dwarf_Die *die);
-
-/* Return array order attribute of DIE. */
-extern int dwarf_arrayorder (Dwarf_Die *die);
-
-/* Return source language attribute of DIE. */
-extern int dwarf_srclang (Dwarf_Die *die);
-
-
-/* Get abbreviation at given offset for given DIE. */
-extern Dwarf_Abbrev *dwarf_getabbrev (Dwarf_Die *die, Dwarf_Off offset,
- size_t *lengthp);
-
-/* Get abbreviation at given offset in .debug_abbrev section. */
-extern int dwarf_offabbrev (Dwarf *dbg, Dwarf_Off offset, size_t *lengthp,
- Dwarf_Abbrev *abbrevp)
- __nonnull_attribute__ (4);
-
-/* Get abbreviation code. */
-extern unsigned int dwarf_getabbrevcode (Dwarf_Abbrev *abbrev);
-
-/* Get abbreviation tag. */
-extern unsigned int dwarf_getabbrevtag (Dwarf_Abbrev *abbrev);
-
-/* Return true if abbreviation is children flag set. */
-extern int dwarf_abbrevhaschildren (Dwarf_Abbrev *abbrev);
-
-/* Get number of attributes of abbreviation. */
-extern int dwarf_getattrcnt (Dwarf_Abbrev *abbrev, size_t *attrcntp)
- __nonnull_attribute__ (2);
-
-/* Get specific attribute of abbreviation. */
-extern int dwarf_getabbrevattr (Dwarf_Abbrev *abbrev, size_t idx,
- unsigned int *namep, unsigned int *formp,
- Dwarf_Off *offset);
-
-
-/* Get string from-debug_str section. */
-extern const char *dwarf_getstring (Dwarf *dbg, Dwarf_Off offset,
- size_t *lenp);
-
-
-/* Get public symbol information. */
-extern ptrdiff_t dwarf_getpubnames (Dwarf *dbg,
- int (*callback) (Dwarf *, Dwarf_Global *,
- void *),
- void *arg, ptrdiff_t offset)
- __nonnull_attribute__ (2);
-
-
-/* Get source file information for CU. */
-extern int dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines,
- size_t *nlines) __nonnull_attribute__ (2, 3);
-
-/* Return one of the source lines of the CU. */
-extern Dwarf_Line *dwarf_onesrcline (Dwarf_Lines *lines, size_t idx);
-
-/* Get the file source files used in the CU. */
-extern int dwarf_getsrcfiles (Dwarf_Die *cudie, Dwarf_Files **files,
- size_t *nfiles)
- __nonnull_attribute__ (2);
-
-
-/* Get source for address in CU. */
-extern Dwarf_Line *dwarf_getsrc_die (Dwarf_Die *cudie, Dwarf_Addr addr);
-
-/* Return line address. */
-extern int dwarf_lineaddr (Dwarf_Line *line, Dwarf_Addr *addrp);
-
-/* Return line number. */
-extern int dwarf_lineno (Dwarf_Line *line, int *linep)
- __nonnull_attribute__ (2);
-
-/* Return column in line. */
-extern int dwarf_linecol (Dwarf_Line *line, int *colp)
- __nonnull_attribute__ (2);
-
-/* Return true if record is for beginning of a statement. */
-extern int dwarf_linebeginstatement (Dwarf_Line *line, bool *flagp)
- __nonnull_attribute__ (2);
-
-/* Return true if record is for end of sequence. */
-extern int dwarf_lineendsequence (Dwarf_Line *line, bool *flagp)
- __nonnull_attribute__ (2);
-
-/* Return true if record is for beginning of a basic block. */
-extern int dwarf_lineblock (Dwarf_Line *line, bool *flagp)
- __nonnull_attribute__ (2);
-
-/* Return true if record is for end of prologue. */
-extern int dwarf_lineprologueend (Dwarf_Line *line, bool *flagp)
- __nonnull_attribute__ (2);
-
-/* Return true if record is for beginning of epilogue. */
-extern int dwarf_lineepiloguebegin (Dwarf_Line *line, bool *flagp)
- __nonnull_attribute__ (2);
-
-
-/* Find line information for address. */
-extern const char *dwarf_linesrc (Dwarf_Line *line,
- Dwarf_Word *mtime, Dwarf_Word *length);
-
-/* Return file information. */
-extern const char *dwarf_filesrc (Dwarf_Files *file, size_t idx,
- Dwarf_Word *mtime, Dwarf_Word *length);
-
-
-/* Return location expression list. */
-extern int dwarf_getloclist (Dwarf_Attribute *attr, Dwarf_Loc **llbuf,
- size_t *listlen) __nonnull_attribute__ (2, 3);
-
-
-
-/* Return list address ranges. */
-extern int dwarf_getaranges (Dwarf *dbg, Dwarf_Aranges **aranges,
- size_t *naranges)
- __nonnull_attribute__ (2);
-
-/* Return one of the address range entries. */
-extern Dwarf_Arange *dwarf_onearange (Dwarf_Aranges *aranges, size_t idx);
-
-/* Return information in address range record. */
-extern int dwarf_getarangeinfo (Dwarf_Arange *arange, Dwarf_Addr *addrp,
- Dwarf_Word *lengthp, Dwarf_Off *offsetp);
-
-/* Get address range which includes given address. */
-extern Dwarf_Arange *dwarf_getarange_addr (Dwarf_Aranges *aranges,
- Dwarf_Addr addr);
-
-
-/* Call callback function for each of the macro information entry for
- the CU. */
-extern ptrdiff_t dwarf_getmacros (Dwarf_Die *cudie,
- int (*callback) (Dwarf_Macro *, void *),
- void *arg, ptrdiff_t offset)
- __nonnull_attribute__ (2);
-
-
-/* Return error code of last failing function call. This value is kept
- separately for each thread. */
-extern int dwarf_errno (void);
-
-/* Return error string for ERROR. If ERROR is zero, return error string
- for most recent error or NULL is none occurred. If ERROR is -1 the
- behaviour is similar to the last case except that not NULL but a legal
- string is returned. */
-extern const char *dwarf_errmsg (int err);
-
-
-/* Register new Out-Of-Memory handler. The old handler is returned. */
-extern Dwarf_OOM dwarf_new_oom_handler (Dwarf *dbg, Dwarf_OOM handler);
-
-
-/* Inline optimizations. */
-#ifdef __OPTIMIZE__
-/* Return attribute code of given attribute. */
-extern inline unsigned int
-dwarf_whatattr (Dwarf_Attribute *attr)
-{
- return attr == NULL ? 0 : attr->code;
-}
-
-/* Return attribute code of given attribute. */
-extern inline unsigned int
-dwarf_whatform (Dwarf_Attribute *attr)
-{
- return attr == NULL ? 0 : attr->form;
-}
-#endif /* Optimize. */
-
-#endif /* libdw.h */
diff --git a/libdw/libdw.map b/libdw/libdw.map
deleted file mode 100644
index e9ae2b9b..00000000
--- a/libdw/libdw.map
+++ /dev/null
@@ -1,72 +0,0 @@
-ELFUTILS_1.0 {
- global:
- dwarf_abbrevhaschildren;
- dwarf_attr;
- dwarf_arrayorder;
- dwarf_begin;
- dwarf_begin_elf;
- dwarf_bitoffset;
- dwarf_bitsize;
- dwarf_bytesize;
- dwarf_child;
- dwarf_cuoffset;
- dwarf_diename;
- dwarf_dieoffset;
- dwarf_end;
- dwarf_errmsg;
- dwarf_errno;
- dwarf_filesrc;
- dwarf_formaddr;
- dwarf_formblock;
- dwarf_formflag;
- dwarf_formref;
- dwarf_formsdata;
- dwarf_formstring;
- dwarf_formudata;
- dwarf_getabbrev;
- dwarf_getabbrevattr;
- dwarf_getabbrevcode;
- dwarf_getabbrevtag;
- dwarf_getarange_addr;
- dwarf_getarangeinfo;
- dwarf_getaranges;
- dwarf_getattrcnt;
- dwarf_getattrs;
- dwarf_getelf;
- dwarf_getloclist;
- dwarf_getmacros;
- dwarf_getpubnames;
- dwarf_getscn_info;
- dwarf_getsrc_die;
- dwarf_getsrcfiles;
- dwarf_getsrclines;
- dwarf_getstring;
- dwarf_hasattr;
- dwarf_haschildren;
- dwarf_hasform;
- dwarf_highpc;
- dwarf_lineaddr;
- dwarf_linebeginstatement;
- dwarf_lineblock;
- dwarf_linecol;
- dwarf_lineendsequence;
- dwarf_lineepiloguebegin;
- dwarf_lineno;
- dwarf_lineprologueend;
- dwarf_linesrc;
- dwarf_lowpc;
- dwarf_offabbrev;
- dwarf_offdie;
- dwarf_onearange;
- dwarf_onesrcline;
- dwarf_nextcu;
- dwarf_new_oom_handler;
- dwarf_siblingof;
- dwarf_srclang;
- dwarf_tag;
- dwarf_whatattr;
- dwarf_whatform;
-
- local:
- *;
-};
diff --git a/libdw/libdwP.h b/libdw/libdwP.h
deleted file mode 100644
index 892ad513..00000000
--- a/libdw/libdwP.h
+++ /dev/null
@@ -1,315 +0,0 @@
-/* Internal definitions for libdwarf.
- Copyright (C) 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBDWP_H
-#define _LIBDWP_H 1
-
-#include <libintl.h>
-#include <stdbool.h>
-
-#include <libdw.h>
-
-
-/* gettext helper macros. */
-#define _(Str) dgettext ("elfutils", Str)
-
-
-/* Version of the DWARF specification we support. */
-#define DWARF_VERSION 2
-
-/* Version of the CIE format. */
-#define CIE_VERSION 1
-
-
-/* Known location lists. */
-struct loc_s
-{
- void *addr;
- Dwarf_Loc *loc;
- size_t nloc;
-};
-
-/* Valid indeces for the section data. */
-enum
- {
- IDX_debug_info = 0,
- IDX_debug_abbrev,
- IDX_debug_aranges,
- IDX_debug_line,
- IDX_debug_frame,
- IDX_eh_frame,
- IDX_debug_loc,
- IDX_debug_pubnames,
- IDX_debug_str,
- IDX_debug_funcnames,
- IDX_debug_typenames,
- IDX_debug_varnames,
- IDX_debug_weaknames,
- IDX_debug_macinfo,
- IDX_last
- };
-
-
-/* Error values. */
-enum
-{
- DWARF_E_NOERROR = 0,
- DWARF_E_UNKNOWN_ERROR,
- DWARF_E_INVALID_ACCESS,
- DWARF_E_NO_REGFILE,
- DWARF_E_IO_ERROR,
- DWARF_E_INVALID_ELF,
- DWARF_E_NO_DWARF,
- DWARF_E_NOELF,
- DWARF_E_GETEHDR_ERROR,
- DWARF_E_NOMEM,
- DWARF_E_UNIMPL,
- DWARF_E_INVALID_CMD,
- DWARF_E_INVALID_VERSION,
- DWARF_E_INVALID_FILE,
- DWARF_E_NO_ENTRY,
- DWARF_E_INVALID_DWARF,
- DWARF_E_NO_STRING,
- DWARF_E_NO_ADDR,
- DWARF_E_NO_CONSTANT,
- DWARF_E_NO_REFERENCE,
- DWARF_E_INVALID_REFERENCE,
- DWARF_E_NO_DEBUG_LINE,
- DWARF_E_INVALID_DEBUG_LINE,
- DWARF_E_TOO_BIG,
- DWARF_E_VERSION,
- DWARF_E_INVALID_DIR_IDX,
- DWARF_E_ADDR_OUTOFRANGE,
- DWARF_E_NO_LOCLIST,
- DWARF_E_NO_BLOCK,
- DWARF_E_INVALID_LINE_IDX,
- DWARF_E_INVALID_ARANGE_IDX,
- DWARF_E_NO_MATCH,
- DWARF_E_NO_FLAG,
-};
-
-
-/* This is the structure representing the debugging state. */
-struct Dwarf
-{
- /* The underlying ELF file. */
- Elf *elf;
-
- /* The section data. */
- Elf_Data *sectiondata[IDX_last];
-
- /* True if the file has a byte order different from the host. */
- bool other_byte_order;
-
- /* If true, we allocated the ELF descriptor ourselves. */
- bool free_elf;
-
- /* Information for traversing the .debug_pubnames section. This is
- an array and separately allocated with malloc. */
- struct pubnames_s
- {
- Dwarf_Off cu_offset;
- Dwarf_Off set_start;
- unsigned int cu_header_size;
- int address_len;
- } *pubnames_sets;
- size_t pubnames_nsets;
-
- /* Search tree for the CUs. */
- void *cu_tree;
- Dwarf_Off next_cu_offset;
-
- /* Address ranges. */
- Dwarf_Aranges *aranges;
-
- /* Internal memory handling. This is basically a simplified
- reimplementation of obstacks. Unfortunately the standard obstack
- implementation is not usable in libraries. */
- struct libdw_memblock
- {
- size_t size;
- size_t remaining;
- struct libdw_memblock *prev;
- char mem[0];
- } *mem_tail;
-
- /* Default size of allocated memory blocks. */
- size_t mem_default_size;
-
- /* Registered OOM handler. */
- Dwarf_OOM oom_handler;
-};
-
-
-/* Abbreviation representation. */
-struct Dwarf_Abbrev
-{
- unsigned int code;
- unsigned int tag;
- int has_children;
- unsigned int attrcnt;
- unsigned char *attrp;
- Dwarf_Off offset;
-};
-
-#include "dwarf_abbrev_hash.h"
-
-
-/* Files in line information records. */
-struct Dwarf_Files_s
- {
- Dwarf *dbg;
- unsigned int nfiles;
- struct Dwarf_Fileinfo_s
- {
- char *name;
- Dwarf_Word mtime;
- Dwarf_Word length;
- } info[0];
- };
-typedef struct Dwarf_Fileinfo_s Dwarf_Fileinfo;
-
-
-/* Representation of a row in the line table. */
-struct Dwarf_Lines_s
- {
- size_t nlines;
-
- struct Dwarf_Line_s
- {
- Dwarf_Addr addr;
- unsigned int file;
- int line;
- unsigned short int column;
- unsigned int is_stmt:1;
- unsigned int basic_block:1;
- unsigned int end_sequence:1;
- unsigned int prologue_end:1;
- unsigned int epilogue_begin:1;
-
- Dwarf_Files *files;
- } info[0];
- };
-
-
-/* Representation of address ranges. */
-struct Dwarf_Aranges_s
-{
- Dwarf *dbg;
- size_t naranges;
-
- struct Dwarf_Arange_s
- {
- Dwarf_Addr addr;
- Dwarf_Word length;
- Dwarf_Off offset;
- } info[0];
-};
-
-
-/* CU representation. */
-struct Dwarf_CU
-{
- Dwarf *dbg;
- Dwarf_Off start;
- Dwarf_Off end;
- uint8_t address_size;
- uint8_t offset_size;
-
- /* Hash table for the abbreviations. */
- Dwarf_Abbrev_Hash abbrev_hash;
- /* Offset of the first abbreviation. */
- size_t orig_abbrev_offset;
- /* Offset past last read abbreviation. */
- size_t last_abbrev_offset;
-
- /* The srcline information. */
- Dwarf_Lines *lines;
-
- /* The source file information. */
- Dwarf_Files *files;
-
- /* Known location lists. */
- void *locs;
-};
-
-
-/* We have to include the file at this point because the inline
- functions access internals of the Dwarf structure. */
-#include "memory-access.h"
-
-
-/* Set error value. */
-extern void __libdw_seterrno (int value) internal_function;
-
-
-/* Memory handling, the easy parts. This macro does not do any locking. */
-#define libdw_alloc(dbg, type, tsize, cnt) \
- ({ struct libdw_memblock *_tail = (dbg)->mem_tail; \
- size_t _required = (tsize) * (cnt); \
- type *_result = (type *) (_tail->mem + (_tail->size - _tail->remaining));\
- size_t _padding = ((__alignof (type) \
- - ((uintptr_t) _result & (__alignof (type) - 1))) \
- & (__alignof (type) - 1)); \
- if (unlikely (_tail->remaining < _required + _padding)) \
- { \
- _result = (type *) __libdw_allocate (dbg, _required); \
- _tail = (dbg)->mem_tail; \
- } \
- else \
- { \
- _required += _padding; \
- _result = (type *) ((char *) _result + _padding); \
- } \
- _tail->remaining -= _required; \
- _result; })
-
-#define libdw_typed_alloc(dbg, type) \
- libdw_alloc (dbg, type, sizeof (type), 1)
-
-/* Callback to allocate more. */
-extern void *__libdw_allocate (Dwarf *dbg, size_t minsize)
- __attribute__ ((__malloc__)) __nonnull_attribute__ (1);
-
-/* Default OOM handler. */
-extern void __libdw_oom (void) __attribute ((noreturn, visibility ("hidden")));
-
-/* Find CU for given offset. */
-extern struct Dwarf_CU *__libdw_findcu (Dwarf *dbg, Dwarf_Off offset)
- __nonnull_attribute__ (1) internal_function;
-
-/* Return tag of given DIE. */
-extern Dwarf_Abbrev *__libdw_findabbrev (struct Dwarf_CU *cu,
- unsigned int code)
- __nonnull_attribute__ (1) internal_function;
-
-/* Get abbreviation at given offset. */
-extern Dwarf_Abbrev *__libdw_getabbrev (Dwarf *dbg, struct Dwarf_CU *cu,
- Dwarf_Off offset, size_t *lengthp,
- Dwarf_Abbrev *result)
- __nonnull_attribute__ (1) internal_function;
-
-/* Helper functions for form handling. */
-extern size_t __libdw_form_val_len (Dwarf *dbg, struct Dwarf_CU *cu,
- unsigned int form, unsigned char *valp)
- __nonnull_attribute__ (1, 2, 4) internal_function;
-
-/* Helper function to locate attribute. */
-extern unsigned char *__libdw_find_attr (Dwarf_Die *die,
- unsigned int search_name,
- unsigned int *codep,
- unsigned int *formp)
- __nonnull_attribute__ (1) internal_function;
-
-#endif /* libdwP.h */
diff --git a/libdw/libdw_alloc.c b/libdw/libdw_alloc.c
deleted file mode 100644
index 1c53d366..00000000
--- a/libdw/libdw_alloc.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Memory handling for libdw.
- Copyright (C) 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <error.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <sys/param.h>
-#include "libdwP.h"
-
-
-void *
-__libdw_allocate (Dwarf *dbg, size_t minsize)
-{
- size_t size = MAX (dbg->mem_default_size,
- 2 * minsize + offsetof (struct libdw_memblock, mem));
- struct libdw_memblock *newp = malloc (size);
- if (newp == NULL)
- dbg->oom_handler ();
-
- newp->size = newp->remaining = size - offsetof (struct libdw_memblock, mem);
-
- newp->prev = dbg->mem_tail;
- dbg->mem_tail = newp;
-
- return newp->mem;
-}
-
-
-Dwarf_OOM
-dwarf_new_oom_handler (Dwarf *dbg, Dwarf_OOM handler)
-{
- Dwarf_OOM old = dbg->oom_handler;
- dbg->oom_handler = handler;
- return old;
-}
-
-
-void
-__attribute ((noreturn, visibility ("hidden")))
-__libdw_oom (void)
-{
- while (1)
- error (EXIT_FAILURE, ENOMEM, "libdw");
-}
diff --git a/libdw/libdw_findcu.c b/libdw/libdw_findcu.c
deleted file mode 100644
index b8166572..00000000
--- a/libdw/libdw_findcu.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Find CU for given offset.
- Copyright (C) 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <search.h>
-#include "libdwP.h"
-
-
-static int
-findcu_cb (const void *arg1, const void *arg2)
-{
- struct Dwarf_CU *cu1 = (struct Dwarf_CU *) arg1;
- struct Dwarf_CU *cu2 = (struct Dwarf_CU *) arg2;
-
- /* Find out which of the two arguments is the search value. It has
- end offset 0. */
- if (cu1->end == 0)
- {
- if (cu1->start < cu2->start)
- return -1;
- if (cu1->start >= cu2->end)
- return 1;
- }
- else
- {
- if (cu2->start < cu1->start)
- return 1;
- if (cu2->start >= cu1->end)
- return -1;
- }
-
- return 0;
-}
-
-
-struct Dwarf_CU *
-__libdw_findcu (dbg, start)
- Dwarf *dbg;
- Dwarf_Off start;
-{
- /* Maybe we already know that CU. */
- struct Dwarf_CU fake = { .start = start, .end = 0 };
- struct Dwarf_CU **found = tfind (&fake, &dbg->cu_tree, findcu_cb);
- if (found != NULL)
- return *found;
-
- if (start < dbg->next_cu_offset)
- {
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- return NULL;
- }
-
- /* No. Then read more CUs. */
- while (1)
- {
- Dwarf_Off oldoff = dbg->next_cu_offset;
- uint8_t address_size;
- uint8_t offset_size;
- Dwarf_Off abbrev_offset;
-
- if (dwarf_nextcu (dbg, oldoff, &dbg->next_cu_offset, NULL,
- &abbrev_offset, &address_size, &offset_size) != 0)
- /* No more entries. */
- return NULL;
-
- /* Create an entry for this CU. */
- struct Dwarf_CU *newp = libdw_typed_alloc (dbg, struct Dwarf_CU);
-
- newp->dbg = dbg;
- newp->start = oldoff;
- newp->end = dbg->next_cu_offset;
- newp->address_size = address_size;
- newp->offset_size = offset_size;
- Dwarf_Abbrev_Hash_init (&newp->abbrev_hash, 41);
- newp->orig_abbrev_offset = newp->last_abbrev_offset = abbrev_offset;
- newp->lines = NULL;
- newp->locs = NULL;
-
- /* Add the new entry to the search tree. */
- if (tsearch (newp, &dbg->cu_tree, findcu_cb) == NULL)
- {
- /* Something went wrong. Unfo the operation. */
- dbg->next_cu_offset = oldoff;
- __libdw_seterrno (DWARF_E_NOMEM);
- return NULL;
- }
-
- /* Is this the one we are looking for? */
- if (start < dbg->next_cu_offset)
- // XXX Match exact offset.
- return newp;
- }
- /* NOTREACHED */
-}
diff --git a/libdw/libdw_form.c b/libdw/libdw_form.c
deleted file mode 100644
index 2543f5a2..00000000
--- a/libdw/libdw_form.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Helper functions for form handling.
- Copyright (C) 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include <string.h>
-
-#include "libdwP.h"
-
-
-size_t
-internal_function_def
-__libdw_form_val_len (Dwarf *dbg, struct Dwarf_CU *cu, unsigned int form,
- unsigned char *valp)
-{
- unsigned char *saved;
- unsigned int u128;
- size_t result;
-
- switch (form)
- {
- case DW_FORM_addr:
- result = cu->address_size;
- break;
-
- case DW_FORM_strp:
- case DW_FORM_ref_addr:
- result = cu->offset_size;
- break;
-
- case DW_FORM_block1:
- result = *valp + 1;
- break;
-
- case DW_FORM_block2:
- result = read_2ubyte_unaligned (dbg, valp) + 2;
- break;
-
- case DW_FORM_block4:
- result = read_4ubyte_unaligned (dbg, valp) + 4;
- break;
-
- case DW_FORM_block:
- saved = valp;
- get_uleb128 (u128, valp);
- result = u128 + (valp - saved);
- break;
-
- case DW_FORM_ref1:
- case DW_FORM_data1:
- case DW_FORM_flag:
- result = 1;
- break;
-
- case DW_FORM_data2:
- case DW_FORM_ref2:
- result = 2;
- break;
-
- case DW_FORM_data4:
- case DW_FORM_ref4:
- result = 4;
- break;
-
- case DW_FORM_data8:
- case DW_FORM_ref8:
- result = 8;
- break;
-
- case DW_FORM_string:
- result = strlen ((char *) valp) + 1;
- break;
-
- case DW_FORM_sdata:
- case DW_FORM_udata:
- case DW_FORM_ref_udata:
- saved = valp;
- get_uleb128 (u128, valp);
- result = valp - saved;
- break;
-
- case DW_FORM_indirect:
- saved = valp;
- get_uleb128 (u128, valp);
- // XXX Is this really correct?
- result = __libdw_form_val_len (dbg, cu, u128, valp);
- if (result != (size_t) -1)
- result += valp - saved;
- break;
-
- default:
- __libdw_seterrno (DWARF_E_INVALID_DWARF);
- result = (size_t) -1l;
- break;
- }
-
- return result;
-}
diff --git a/libdw/memory-access.h b/libdw/memory-access.h
deleted file mode 100644
index babe976f..00000000
--- a/libdw/memory-access.h
+++ /dev/null
@@ -1,238 +0,0 @@
-/* Unaligned memory access functionality.
- Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _MEMORY_ACCESS_H
-#define _MEMORY_ACCESS_H 1
-
-#include <byteswap.h>
-#include <limits.h>
-#include <stdint.h>
-
-
-/* Number decoding macros. See 7.6 Variable Length Data. */
-#define get_uleb128(var, addr) \
- do { \
- unsigned char __b = *((const unsigned char *) addr); \
- addr = (__typeof (addr)) (((uintptr_t) (addr)) + 1); \
- var = __b & 0x7f; \
- if (__b & 0x80) \
- { \
- __b = *((const unsigned char *) addr); \
- addr = (__typeof (addr)) (((uintptr_t) (addr)) + 1); \
- var |= (__b & 0x7f) << 7; \
- if (__b & 0x80) \
- { \
- __b = *((const unsigned char *) addr); \
- addr = (__typeof (addr)) (((uintptr_t) (addr)) + 1); \
- var |= (__b & 0x7f) << 14; \
- if (__b & 0x80) \
- { \
- __b = *((const unsigned char *) addr); \
- addr = (__typeof (addr)) (((uintptr_t) (addr)) + 1); \
- var |= (__b & 0x7f) << 21; \
- if (__b & 0x80) \
- /* Other implementation set VALUE to UINT_MAX in this \
- case. So we better do this as well. */ \
- var = UINT_MAX; \
- } \
- } \
- } \
- } while (0)
-
-/* The signed case is a big more complicated. */
-#define get_sleb128(var, addr) \
- do { \
- unsigned char __b = *((const unsigned char *) addr); \
- addr = (__typeof (addr)) (((uintptr_t) (addr)) + 1); \
- int32_t __res = __b & 0x7f; \
- if ((__b & 0x80) == 0) \
- { \
- if (__b & 0x40) \
- __res |= 0xffffff80; \
- } \
- else \
- { \
- __b = *((const unsigned char *) addr); \
- addr = (__typeof (addr)) (((uintptr_t) (addr)) + 1); \
- __res |= (__b & 0x7f) << 7; \
- if ((__b & 0x80) == 0) \
- { \
- if (__b & 0x40) \
- __res |= 0xffffc000; \
- } \
- else \
- { \
- __b = *((const unsigned char *) addr); \
- addr = (__typeof (addr)) (((uintptr_t) (addr)) + 1); \
- __res |= (__b & 0x7f) << 14; \
- if ((__b & 0x80) == 0) \
- { \
- if (__b & 0x40) \
- __res |= 0xffe00000; \
- } \
- else \
- { \
- __b = *((const unsigned char *) addr); \
- addr = (__typeof (addr)) (((uintptr_t) (addr)) + 1); \
- __res |= (__b & 0x7f) << 21; \
- if ((__b & 0x80) == 0) \
- { \
- if (__b & 0x40) \
- __res |= 0xf0000000; \
- } \
- else \
- /* Other implementation set VALUE to INT_MAX in this \
- case. So we better do this as well. */ \
- __res = INT_MAX; \
- } \
- } \
- } \
- var = __res; \
- } while (0)
-
-
-/* We use simple memory access functions in case the hardware allows it.
- The caller has to make sure we don't have alias problems. */
-#if ALLOW_UNALIGNED
-
-# define read_2ubyte_unaligned(Dbg, Addr) \
- (unlikely ((Dbg)->other_byte_order) \
- ? bswap_16 (*((const uint16_t *) (Addr))) \
- : *((const uint16_t *) (Addr)))
-# define read_2sbyte_unaligned(Dbg, Addr) \
- (unlikely ((Dbg)->other_byte_order) \
- ? (int16_t) bswap_16 (*((const int16_t *) (Addr))) \
- : *((const int16_t *) (Addr)))
-
-# define read_4ubyte_unaligned_noncvt(Addr) \
- *((const uint32_t *) (Addr))
-# define read_4ubyte_unaligned(Dbg, Addr) \
- (unlikely ((Dbg)->other_byte_order) \
- ? bswap_32 (*((const uint32_t *) (Addr))) \
- : *((const uint32_t *) (Addr)))
-# define read_4sbyte_unaligned(Dbg, Addr) \
- (unlikely ((Dbg)->other_byte_order) \
- ? (int32_t) bswap_32 (*((const int32_t *) (Addr))) \
- : *((const int32_t *) (Addr)))
-
-# define read_8ubyte_unaligned(Dbg, Addr) \
- (unlikely ((Dbg)->other_byte_order) \
- ? bswap_64 (*((const uint64_t *) (Addr))) \
- : *((const uint64_t *) (Addr)))
-# define read_8sbyte_unaligned(Dbg, Addr) \
- (unlikely ((Dbg)->other_byte_order) \
- ? (int64_t) bswap_64 (*((const int64_t *) (Addr))) \
- : *((const int64_t *) (Addr)))
-
-#else
-
-union unaligned
- {
- void *p;
- uint16_t u2;
- uint32_t u4;
- uint64_t u8;
- int16_t s2;
- int32_t s4;
- int64_t s8;
- } __attribute__ ((packed));
-
-static inline uint16_t
-read_2ubyte_unaligned (Dwarf *dbg, const void *p)
-{
- const union unaligned *up = p;
- if (dbg->other_byte_order)
- return bswap_16 (up->u2);
- return up->u2;
-}
-static inline int16_t
-read_2sbyte_unaligned (Dwarf *dbg, const void *p)
-{
- const union unaligned *up = p;
- if (dbg->other_byte_order)
- return (int16_t) bswap_16 (up->u2);
- return up->s2;
-}
-
-static inline uint32_t
-read_4ubyte_unaligned_noncvt (const void *p)
-{
- const union unaligned *up = p;
- return up->u4;
-}
-static inline uint32_t
-read_4ubyte_unaligned (Dwarf *dbg, const void *p)
-{
- const union unaligned *up = p;
- if (dbg->other_byte_order)
- return bswap_32 (up->u4);
- return up->u4;
-}
-static inline int32_t
-read_4sbyte_unaligned (Dwarf *dbg, const void *p)
-{
- const union unaligned *up = p;
- if (dbg->other_byte_order)
- return (int32_t) bswap_32 (up->u4);
- return up->s4;
-}
-
-static inline uint64_t
-read_8ubyte_unaligned (Dwarf *dbg, const void *p)
-{
- const union unaligned *up = p;
- if (dbg->other_byte_order)
- return bswap_64 (up->u8);
- return up->u8;
-}
-static inline int64_t
-read_8sbyte_unaligned (Dwarf *dbg, const void *p)
-{
- const union unaligned *up = p;
- if (dbg->other_byte_order)
- return (int64_t) bswap_64 (up->u8);
- return up->s8;
-}
-
-#endif /* allow unaligned */
-
-
-#define read_2ubyte_unaligned_inc(Dbg, Addr) \
- ({ uint16_t t_ = read_2ubyte_unaligned (Dbg, Addr); \
- Addr = (__typeof (Addr)) (((uintptr_t) (Addr)) + 2); \
- t_; })
-#define read_2sbyte_unaligned_inc(Dbg, Addr) \
- ({ int16_t t_ = read_2sbyte_unaligned (Dbg, Addr); \
- Addr = (__typeof (Addr)) (((uintptr_t) (Addr)) + 2); \
- t_; })
-
-#define read_4ubyte_unaligned_inc(Dbg, Addr) \
- ({ uint32_t t_ = read_4ubyte_unaligned (Dbg, Addr); \
- Addr = (__typeof (Addr)) (((uintptr_t) (Addr)) + 4); \
- t_; })
-#define read_4sbyte_unaligned_inc(Dbg, Addr) \
- ({ int32_t t_ = read_4sbyte_unaligned (Dbg, Addr); \
- Addr = (__typeof (Addr)) (((uintptr_t) (Addr)) + 4); \
- t_; })
-
-#define read_8ubyte_unaligned_inc(Dbg, Addr) \
- ({ uint64_t t_ = read_8ubyte_unaligned (Dbg, Addr); \
- Addr = (__typeof (Addr)) (((uintptr_t) (Addr)) + 8); \
- t_; })
-#define read_8sbyte_unaligned_inc(Dbg, Addr) \
- ({ int64_t t_ = read_8sbyte_unaligned (Dbg, Addr); \
- Addr = (__typeof (Addr)) (((uintptr_t) (Addr)) + 8); \
- t_; })
-
-#endif /* memory-access.h */
diff --git a/libebl/ChangeLog b/libebl/ChangeLog
deleted file mode 100644
index e749c226..00000000
--- a/libebl/ChangeLog
+++ /dev/null
@@ -1,84 +0,0 @@
-2004-08-16 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am (AM_CFLAGS): Add LIBSTR definition with base name of
- the lib directory.
- * eblopenbackend.c (openbackend): Use LIBSTR instead of hardcoded
- lib in path to ebl modules.
-
-2004-04-01 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am: Add rules for ppc and ppc64 ebl module.
- * ppc_init..c: New file.
- * ppc_destr.c: New file.
- * ppc_symbol.c: New file.
- * libebl_ppc.h: New file.
- * libebl_ppc.map: New file.
- * ppc64_init..c: New file.
- * ppc64_destr.c: New file.
- * ppc64_symbol.c: New file.
- * libebl_ppc64.h: New file.
- * libebl_ppc64.map: New file.
-
-2004-01-20 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am: Support building with mudflap.
-
-2004-01-18 Ulrich Drepper <drepper@redhat.com>
-
- * libeblP.h (_): Use elfutils domain.
-
-2004-01-16 Ulrich Drepper <drepper@redhat.com>
-
- * eblsectionname.c: Add support for SHN_BEFORE and SHN_AFTER.
-
-2004-01-13 Ulrich Drepper <drepper@redhat.com>
-
- * eblsegmenttypename.c ((ebl_segment_type_name): Add support for
- PT_GNU_RELRO.
-
-2004-01-08 Ulrich Drepper <drepper@redhat.com>
-
- * libebl.h: Remove last traces of libtool.
-
-2004-01-05 Ulrich Drepper <drepper@redhat.com>
-
- * elf-knowledge.h: Move to libelf subdir.
-
- * Makefile.am (EXTRA_DIST): Remove libebl.map.
- * libebl.map: Removed.
-
-2003-12-08 Ulrich Drepper <drepper@redhat.com>
-
- * eblsectiontypename.c (ebl_section_type_name): Add support for
- SHT_SUNW_move, SHT_CHECKSUM, and SHT_GNU_LIBLIST.
-
-2003-11-19 Ulrich Drepper <drepper@redhat.com>
-
- * ia64_symbol.c (ia64_dynamic_tag_name): New function.
- * libebl_ia64.h (ia64_dynamic_tag_name): Declare.
- * ia64_init.c (ia64_init): Register i164_dynamic_tag_name.
-
-2003-09-24 Ulrich Drepper <drepper@redhat.com>
-
- * ia64_init.c (ia64_init): Initialize segment_type_name callback.
- * ia64_symbol.c (ia64_segment_type_name): Define.
- * libebl_ia64.h (ia64_segment_type_name): Declare.
-
-2003-09-22 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am (AM_CFLAGS): Add -fpic.
-
-2003-08-14 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am (install): Remove dependency on libebl.so.
-
-2003-08-13 Ulrich Drepper <drepper@redhat.com>
-
- * eblopenbackend.c: Adjust relative path to arch-specific DSOs
- assuming the code ends up in the application. Add second dlopen()
- try without any path, just the filename.
- * Makefile.in: Remove rules to build and install libebl.so.
-
-2003-08-11 Ulrich Drepper <drepper@redhat.com>
-
- * Moved to CVS archive.
diff --git a/libebl/Makefile b/libebl/Makefile
deleted file mode 100644
index a425eb04..00000000
--- a/libebl/Makefile
+++ /dev/null
@@ -1,787 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# libebl/Makefile. Generated from Makefile.in by configure.
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-
-
-SOURCES = $(libebl_a_SOURCES) $(libebl_alpha_pic_a_SOURCES) $(libebl_arm_pic_a_SOURCES) $(libebl_i386_pic_a_SOURCES) $(libebl_ia64_pic_a_SOURCES) $(libebl_mips_pic_a_SOURCES) $(libebl_ppc64_pic_a_SOURCES) $(libebl_ppc_pic_a_SOURCES) $(libebl_sh_pic_a_SOURCES) $(libebl_sparc_pic_a_SOURCES) $(libebl_x86_64_pic_a_SOURCES) $(libebl_alpha_so_SOURCES) $(libebl_arm_so_SOURCES) $(libebl_i386_so_SOURCES) $(libebl_ia64_so_SOURCES) $(libebl_mips_so_SOURCES) $(libebl_ppc_so_SOURCES) $(libebl_ppc64_so_SOURCES) $(libebl_sh_so_SOURCES) $(libebl_sparc_so_SOURCES) $(libebl_x86_64_so_SOURCES)
-
-srcdir = .
-top_srcdir = ..
-
-pkgdatadir = $(datadir)/elfutils
-pkglibdir = $(libdir)/elfutils
-pkgincludedir = $(includedir)/elfutils
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = /usr/bin/install -c
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = i686-pc-linux-gnu
-host_triplet = i686-pc-linux-gnu
-noinst_PROGRAMS = $(am__EXEEXT_1)
-subdir = libebl
-DIST_COMMON = $(euinclude_HEADERS) $(noinst_HEADERS) \
- $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)"
-libLIBRARIES_INSTALL = $(INSTALL_DATA)
-LIBRARIES = $(lib_LIBRARIES) $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libebl_a_AR = $(AR) $(ARFLAGS)
-libebl_a_LIBADD =
-am__objects_1 = eblopenbackend.$(OBJEXT) eblclosebackend.$(OBJEXT) \
- eblstrtab.$(OBJEXT) eblreloctypename.$(OBJEXT) \
- eblsegmenttypename.$(OBJEXT) eblsectiontypename.$(OBJEXT) \
- eblmachineflagname.$(OBJEXT) eblsymboltypename.$(OBJEXT) \
- ebldynamictagname.$(OBJEXT) eblsectionname.$(OBJEXT) \
- eblobjecttypename.$(OBJEXT) eblsymbolbindingname.$(OBJEXT) \
- eblbackendname.$(OBJEXT) eblshflagscombine.$(OBJEXT) \
- eblwstrtab.$(OBJEXT) eblgstrtab.$(OBJEXT) \
- eblosabiname.$(OBJEXT) eblmachineflagcheck.$(OBJEXT) \
- eblreloctypecheck.$(OBJEXT) eblrelocvaliduse.$(OBJEXT) \
- ebldynamictagcheck.$(OBJEXT) eblcorenotetypename.$(OBJEXT) \
- eblobjnotetypename.$(OBJEXT) eblcorenote.$(OBJEXT) \
- eblobjnote.$(OBJEXT) ebldebugscnp.$(OBJEXT) \
- eblgotpcreloccheck.$(OBJEXT)
-am_libebl_a_OBJECTS = $(am__objects_1)
-libebl_a_OBJECTS = $(am_libebl_a_OBJECTS)
-libebl_alpha_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_alpha_pic_a_LIBADD =
-libebl_alpha_pic_a_OBJECTS = $(am_libebl_alpha_pic_a_OBJECTS)
-libebl_arm_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_arm_pic_a_LIBADD =
-libebl_arm_pic_a_OBJECTS = $(am_libebl_arm_pic_a_OBJECTS)
-libebl_i386_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_i386_pic_a_LIBADD =
-libebl_i386_pic_a_OBJECTS = $(am_libebl_i386_pic_a_OBJECTS)
-libebl_ia64_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_ia64_pic_a_LIBADD =
-libebl_ia64_pic_a_OBJECTS = $(am_libebl_ia64_pic_a_OBJECTS)
-libebl_mips_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_mips_pic_a_LIBADD =
-libebl_mips_pic_a_OBJECTS = $(am_libebl_mips_pic_a_OBJECTS)
-libebl_ppc64_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_ppc64_pic_a_LIBADD =
-libebl_ppc64_pic_a_OBJECTS = $(am_libebl_ppc64_pic_a_OBJECTS)
-libebl_ppc_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_ppc_pic_a_LIBADD =
-libebl_ppc_pic_a_OBJECTS = $(am_libebl_ppc_pic_a_OBJECTS)
-libebl_sh_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_sh_pic_a_LIBADD =
-libebl_sh_pic_a_OBJECTS = $(am_libebl_sh_pic_a_OBJECTS)
-libebl_sparc_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_sparc_pic_a_LIBADD =
-libebl_sparc_pic_a_OBJECTS = $(am_libebl_sparc_pic_a_OBJECTS)
-libebl_x86_64_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_x86_64_pic_a_LIBADD =
-libebl_x86_64_pic_a_OBJECTS = $(am_libebl_x86_64_pic_a_OBJECTS)
-am__EXEEXT_1 = libebl_i386.so$(EXEEXT) libebl_sh.so$(EXEEXT) \
- libebl_mips.so$(EXEEXT) libebl_x86_64.so$(EXEEXT) \
- libebl_ia64.so$(EXEEXT) libebl_alpha.so$(EXEEXT) \
- libebl_arm.so$(EXEEXT) libebl_sparc.so$(EXEEXT) \
- libebl_ppc.so$(EXEEXT) libebl_ppc64.so$(EXEEXT)
-PROGRAMS = $(noinst_PROGRAMS)
-am_libebl_alpha_so_OBJECTS =
-libebl_alpha_so_OBJECTS = $(am_libebl_alpha_so_OBJECTS)
-libebl_alpha_so_LDADD = $(LDADD)
-am_libebl_arm_so_OBJECTS =
-libebl_arm_so_OBJECTS = $(am_libebl_arm_so_OBJECTS)
-libebl_arm_so_LDADD = $(LDADD)
-am_libebl_i386_so_OBJECTS =
-libebl_i386_so_OBJECTS = $(am_libebl_i386_so_OBJECTS)
-libebl_i386_so_LDADD = $(LDADD)
-am_libebl_ia64_so_OBJECTS =
-libebl_ia64_so_OBJECTS = $(am_libebl_ia64_so_OBJECTS)
-libebl_ia64_so_LDADD = $(LDADD)
-am_libebl_mips_so_OBJECTS =
-libebl_mips_so_OBJECTS = $(am_libebl_mips_so_OBJECTS)
-libebl_mips_so_LDADD = $(LDADD)
-am_libebl_ppc_so_OBJECTS =
-libebl_ppc_so_OBJECTS = $(am_libebl_ppc_so_OBJECTS)
-libebl_ppc_so_LDADD = $(LDADD)
-am_libebl_ppc64_so_OBJECTS =
-libebl_ppc64_so_OBJECTS = $(am_libebl_ppc64_so_OBJECTS)
-libebl_ppc64_so_LDADD = $(LDADD)
-am_libebl_sh_so_OBJECTS =
-libebl_sh_so_OBJECTS = $(am_libebl_sh_so_OBJECTS)
-libebl_sh_so_LDADD = $(LDADD)
-am_libebl_sparc_so_OBJECTS =
-libebl_sparc_so_OBJECTS = $(am_libebl_sparc_so_OBJECTS)
-libebl_sparc_so_LDADD = $(LDADD)
-am_libebl_x86_64_so_OBJECTS =
-libebl_x86_64_so_OBJECTS = $(am_libebl_x86_64_so_OBJECTS)
-libebl_x86_64_so_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libebl_a_SOURCES) $(libebl_alpha_pic_a_SOURCES) \
- $(libebl_arm_pic_a_SOURCES) $(libebl_i386_pic_a_SOURCES) \
- $(libebl_ia64_pic_a_SOURCES) $(libebl_mips_pic_a_SOURCES) \
- $(libebl_ppc64_pic_a_SOURCES) $(libebl_ppc_pic_a_SOURCES) \
- $(libebl_sh_pic_a_SOURCES) $(libebl_sparc_pic_a_SOURCES) \
- $(libebl_x86_64_pic_a_SOURCES) $(libebl_alpha_so_SOURCES) \
- $(libebl_arm_so_SOURCES) $(libebl_i386_so_SOURCES) \
- $(libebl_ia64_so_SOURCES) $(libebl_mips_so_SOURCES) \
- $(libebl_ppc_so_SOURCES) $(libebl_ppc64_so_SOURCES) \
- $(libebl_sh_so_SOURCES) $(libebl_sparc_so_SOURCES) \
- $(libebl_x86_64_so_SOURCES)
-DIST_SOURCES = $(libebl_a_SOURCES) $(libebl_alpha_pic_a_SOURCES) \
- $(libebl_arm_pic_a_SOURCES) $(libebl_i386_pic_a_SOURCES) \
- $(libebl_ia64_pic_a_SOURCES) $(libebl_mips_pic_a_SOURCES) \
- $(libebl_ppc64_pic_a_SOURCES) $(libebl_ppc_pic_a_SOURCES) \
- $(libebl_sh_pic_a_SOURCES) $(libebl_sparc_pic_a_SOURCES) \
- $(libebl_x86_64_pic_a_SOURCES) $(libebl_alpha_so_SOURCES) \
- $(libebl_arm_so_SOURCES) $(libebl_i386_so_SOURCES) \
- $(libebl_ia64_so_SOURCES) $(libebl_mips_so_SOURCES) \
- $(libebl_ppc_so_SOURCES) $(libebl_ppc64_so_SOURCES) \
- $(libebl_sh_so_SOURCES) $(libebl_sparc_so_SOURCES) \
- $(libebl_x86_64_so_SOURCES)
-euincludeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(euinclude_HEADERS) $(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run aclocal-1.9
-AMDEP_FALSE = #
-AMDEP_TRUE =
-AMTAR = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run tar
-AUTOCONF = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoconf
-AUTOHEADER = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoheader
-AUTOMAKE = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run automake-1.9
-AWK = gawk
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CFLAGS = -g -O2
-CPP = gcc -E
-CPPFLAGS =
-CYGPATH_W = echo
-DATADIRNAME = ${prefix}/share
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DOBJDIR=\"$(shell pwd)\"
-DEPDIR = .deps
-ECHO_C =
-ECHO_N = -n
-ECHO_T =
-EGREP = grep -E
-EXEEXT =
-GMSGFMT = /usr/bin/msgfmt
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
-INTLLIBS =
-LDFLAGS =
-LEX = flex
-LEXLIB = -lfl
-LEX_OUTPUT_ROOT = lex.yy
-LIBICONV = -liconv
-LIBINTL =
-LIBOBJS =
-LIBS =
-LOCALEDIR = ${prefix}/share
-LTLIBICONV = -liconv
-LTLIBINTL =
-LTLIBOBJS =
-MAKEINFO = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run makeinfo
-MKINSTALLDIRS = config/mkinstalldirs
-MSGFMT = /usr/bin/msgfmt
-MSGMERGE = /usr/bin/msgmerge
-MUDFLAP_FALSE =
-MUDFLAP_TRUE = #
-NATIVE_LD_FALSE =
-NATIVE_LD_TRUE = #
-OBJEXT = o
-PACKAGE = elfutils
-PACKAGE_BUGREPORT = http://bugzilla.redhat.com/bugzilla/
-PACKAGE_NAME = Red Hat elfutils
-PACKAGE_STRING = Red Hat elfutils 0.97
-PACKAGE_TARNAME = elfutils
-PACKAGE_VERSION = 0.97
-PATH_SEPARATOR = :
-POSUB = po
-RANLIB = ranlib
-SET_MAKE =
-SHELL = /bin/sh
-STRIP =
-USE_NLS = yes
-VERSION = 1
-XGETTEXT = /usr/bin/xgettext
-YACC = bison -y
-ac_ct_CC = gcc
-ac_ct_RANLIB = ranlib
-ac_ct_STRIP =
-am__fastdepCC_FALSE = #
-am__fastdepCC_TRUE =
-am__include = include
-am__leading_dot = .
-am__quote =
-am__tar = ${AMTAR} chof - "$$tardir"
-am__untar = ${AMTAR} xf -
-base_cpu = none
-bindir = ${exec_prefix}/bin
-build = i686-pc-linux-gnu
-build_alias =
-build_cpu = i686
-build_os = linux-gnu
-build_vendor = pc
-datadir = ${prefix}/share
-exec_prefix = ${prefix}
-host = i686-pc-linux-gnu
-host_alias =
-host_cpu = i686
-host_os = linux-gnu
-host_vendor = pc
-includedir = ${prefix}/include
-infodir = ${prefix}/info
-install_sh = /work/elfutils/stock/elfutils-0.97/config/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-localstatedir = ${prefix}/var
-mandir = ${prefix}/man
-mkdir_p = mkdir -p --
-oldincludedir = /usr/include
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-program_transform_name = s,x,x,
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-sysconfdir = ${prefix}/etc
-target_alias =
-AM_CFLAGS = -Wall -Werror -Wshadow -fpic \
- -DLIBSTR=\"$$(basename $(libdir))\"
-#AM_CFLAGS = -Wall -Wshadow -fpic -DLIBSTR=\"$$(basename \
-# $(libdir))\"
-INCLUDES = -I$(srcdir) -I$(top_srcdir)/libelf -I$(top_srcdir)/lib -I..
-lib_LIBRARIES = libebl.a
-modules = i386 sh mips x86_64 ia64 alpha arm sparc ppc ppc64
-noinst_LIBRARIES = libebl_i386_pic.a libebl_sh_pic.a libebl_mips_pic.a \
- libebl_x86_64_pic.a libebl_ia64_pic.a libebl_alpha_pic.a \
- libebl_arm_pic.a libebl_sparc_pic.a libebl_ppc_pic.a \
- libebl_ppc64_pic.a
-
-euincludedir = $(includedir)/elfutils
-euinclude_HEADERS = libebl.h
-gen_SOURCES = eblopenbackend.c eblclosebackend.c eblstrtab.c \
- eblreloctypename.c eblsegmenttypename.c \
- eblsectiontypename.c eblmachineflagname.c \
- eblsymboltypename.c ebldynamictagname.c eblsectionname.c \
- eblobjecttypename.c eblsymbolbindingname.c \
- eblbackendname.c eblshflagscombine.c eblwstrtab.c \
- eblgstrtab.c eblosabiname.c eblmachineflagcheck.c \
- eblreloctypecheck.c eblrelocvaliduse.c ebldynamictagcheck.c \
- eblcorenotetypename.c eblobjnotetypename.c \
- eblcorenote.c eblobjnote.c ebldebugscnp.c \
- eblgotpcreloccheck.c
-
-libebl_a_SOURCES = $(gen_SOURCES)
-
-#
-# XXX Use --enable-new-dtags as soon as ld.so handles DT_RUNPATH when
-# using dlopen correctly.
-# -Wl,--rpath,\$$ORIGIN/elfutils \
-#
-i386_SRCS = i386_init.c i386_destr.c i386_symbol.c i386_corenote.c
-libebl_i386_pic_a_SOURCES =
-am_libebl_i386_pic_a_OBJECTS = $(i386_SRCS:.c=.os)
-libelf = ../libelf/libelf.so
-#libelf = ../libelf/libelf.a
-libmudflap =
-#libmudflap = -lmudflap
-libebl_i386_so_SOURCES =
-sh_SRCS = sh_init.c sh_destr.c sh_symbol.c
-libebl_sh_pic_a_SOURCES =
-am_libebl_sh_pic_a_OBJECTS = $(sh_SRCS:.c=.os)
-libebl_sh_so_SOURCES =
-mips_SRCS = mips_init.c mips_destr.c mips_symbol.c
-libebl_mips_pic_a_SOURCES =
-am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os)
-libebl_mips_so_SOURCES =
-x86_64_SRCS = x86_64_init.c x86_64_destr.c x86_64_symbol.c
-libebl_x86_64_pic_a_SOURCES =
-am_libebl_x86_64_pic_a_OBJECTS = $(x86_64_SRCS:.c=.os)
-libebl_x86_64_so_SOURCES =
-ia64_SRCS = ia64_init.c ia64_destr.c ia64_symbol.c
-libebl_ia64_pic_a_SOURCES =
-am_libebl_ia64_pic_a_OBJECTS = $(ia64_SRCS:.c=.os)
-libebl_ia64_so_SOURCES =
-alpha_SRCS = alpha_init.c alpha_destr.c alpha_symbol.c
-libebl_alpha_pic_a_SOURCES =
-am_libebl_alpha_pic_a_OBJECTS = $(alpha_SRCS:.c=.os)
-libebl_alpha_so_SOURCES =
-arm_SRCS = arm_init.c arm_destr.c arm_symbol.c
-libebl_arm_pic_a_SOURCES =
-am_libebl_arm_pic_a_OBJECTS = $(arm_SRCS:.c=.os)
-libebl_arm_so_SOURCES =
-sparc_SRCS = sparc_init.c sparc_destr.c sparc_symbol.c
-libebl_sparc_pic_a_SOURCES =
-am_libebl_sparc_pic_a_OBJECTS = $(sparc_SRCS:.c=.os)
-libebl_sparc_so_SOURCES =
-ppc_SRCS = ppc_init.c ppc_destr.c ppc_symbol.c
-libebl_ppc_pic_a_SOURCES =
-am_libebl_ppc_pic_a_OBJECTS = $(ppc_SRCS:.c=.os)
-libebl_ppc_so_SOURCES =
-ppc64_SRCS = ppc64_init.c ppc64_destr.c ppc64_symbol.c
-libebl_ppc64_pic_a_SOURCES =
-am_libebl_ppc64_pic_a_OBJECTS = $(ppc64_SRCS:.c=.os)
-libebl_ppc64_so_SOURCES =
-noinst_HEADERS = libeblP.h $(noinst_LIBRARIES:%_pic.a=%.h)
-EXTRA_DIST = $(noinst_LIBRARIES:%_pic.a=%.map) \
- $(foreach m,$(modules),$($(m)_SRCS))
-
-CLEANFILES = $(am_libebl_pic_a_OBJECTS) \
- $(foreach m,$(modules),$(am_libebl_$(m)_pic_a_OBJECTS))
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits libebl/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits libebl/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-libLIBRARIES: $(lib_LIBRARIES)
- @$(NORMAL_INSTALL)
- test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- f=$(am__strip_dir) \
- echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
- $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
- else :; fi; \
- done
- @$(POST_INSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- p=$(am__strip_dir) \
- echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \
- $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \
- else :; fi; \
- done
-
-uninstall-libLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- p=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \
- rm -f "$(DESTDIR)$(libdir)/$$p"; \
- done
-
-clean-libLIBRARIES:
- -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libebl.a: $(libebl_a_OBJECTS) $(libebl_a_DEPENDENCIES)
- -rm -f libebl.a
- $(libebl_a_AR) libebl.a $(libebl_a_OBJECTS) $(libebl_a_LIBADD)
- $(RANLIB) libebl.a
-libebl_alpha_pic.a: $(libebl_alpha_pic_a_OBJECTS) $(libebl_alpha_pic_a_DEPENDENCIES)
- -rm -f libebl_alpha_pic.a
- $(libebl_alpha_pic_a_AR) libebl_alpha_pic.a $(libebl_alpha_pic_a_OBJECTS) $(libebl_alpha_pic_a_LIBADD)
- $(RANLIB) libebl_alpha_pic.a
-libebl_arm_pic.a: $(libebl_arm_pic_a_OBJECTS) $(libebl_arm_pic_a_DEPENDENCIES)
- -rm -f libebl_arm_pic.a
- $(libebl_arm_pic_a_AR) libebl_arm_pic.a $(libebl_arm_pic_a_OBJECTS) $(libebl_arm_pic_a_LIBADD)
- $(RANLIB) libebl_arm_pic.a
-libebl_i386_pic.a: $(libebl_i386_pic_a_OBJECTS) $(libebl_i386_pic_a_DEPENDENCIES)
- -rm -f libebl_i386_pic.a
- $(libebl_i386_pic_a_AR) libebl_i386_pic.a $(libebl_i386_pic_a_OBJECTS) $(libebl_i386_pic_a_LIBADD)
- $(RANLIB) libebl_i386_pic.a
-libebl_ia64_pic.a: $(libebl_ia64_pic_a_OBJECTS) $(libebl_ia64_pic_a_DEPENDENCIES)
- -rm -f libebl_ia64_pic.a
- $(libebl_ia64_pic_a_AR) libebl_ia64_pic.a $(libebl_ia64_pic_a_OBJECTS) $(libebl_ia64_pic_a_LIBADD)
- $(RANLIB) libebl_ia64_pic.a
-libebl_mips_pic.a: $(libebl_mips_pic_a_OBJECTS) $(libebl_mips_pic_a_DEPENDENCIES)
- -rm -f libebl_mips_pic.a
- $(libebl_mips_pic_a_AR) libebl_mips_pic.a $(libebl_mips_pic_a_OBJECTS) $(libebl_mips_pic_a_LIBADD)
- $(RANLIB) libebl_mips_pic.a
-libebl_ppc64_pic.a: $(libebl_ppc64_pic_a_OBJECTS) $(libebl_ppc64_pic_a_DEPENDENCIES)
- -rm -f libebl_ppc64_pic.a
- $(libebl_ppc64_pic_a_AR) libebl_ppc64_pic.a $(libebl_ppc64_pic_a_OBJECTS) $(libebl_ppc64_pic_a_LIBADD)
- $(RANLIB) libebl_ppc64_pic.a
-libebl_ppc_pic.a: $(libebl_ppc_pic_a_OBJECTS) $(libebl_ppc_pic_a_DEPENDENCIES)
- -rm -f libebl_ppc_pic.a
- $(libebl_ppc_pic_a_AR) libebl_ppc_pic.a $(libebl_ppc_pic_a_OBJECTS) $(libebl_ppc_pic_a_LIBADD)
- $(RANLIB) libebl_ppc_pic.a
-libebl_sh_pic.a: $(libebl_sh_pic_a_OBJECTS) $(libebl_sh_pic_a_DEPENDENCIES)
- -rm -f libebl_sh_pic.a
- $(libebl_sh_pic_a_AR) libebl_sh_pic.a $(libebl_sh_pic_a_OBJECTS) $(libebl_sh_pic_a_LIBADD)
- $(RANLIB) libebl_sh_pic.a
-libebl_sparc_pic.a: $(libebl_sparc_pic_a_OBJECTS) $(libebl_sparc_pic_a_DEPENDENCIES)
- -rm -f libebl_sparc_pic.a
- $(libebl_sparc_pic_a_AR) libebl_sparc_pic.a $(libebl_sparc_pic_a_OBJECTS) $(libebl_sparc_pic_a_LIBADD)
- $(RANLIB) libebl_sparc_pic.a
-libebl_x86_64_pic.a: $(libebl_x86_64_pic_a_OBJECTS) $(libebl_x86_64_pic_a_DEPENDENCIES)
- -rm -f libebl_x86_64_pic.a
- $(libebl_x86_64_pic_a_AR) libebl_x86_64_pic.a $(libebl_x86_64_pic_a_OBJECTS) $(libebl_x86_64_pic_a_LIBADD)
- $(RANLIB) libebl_x86_64_pic.a
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-include ./$(DEPDIR)/eblbackendname.Po
-include ./$(DEPDIR)/eblclosebackend.Po
-include ./$(DEPDIR)/eblcorenote.Po
-include ./$(DEPDIR)/eblcorenotetypename.Po
-include ./$(DEPDIR)/ebldebugscnp.Po
-include ./$(DEPDIR)/ebldynamictagcheck.Po
-include ./$(DEPDIR)/ebldynamictagname.Po
-include ./$(DEPDIR)/eblgotpcreloccheck.Po
-include ./$(DEPDIR)/eblgstrtab.Po
-include ./$(DEPDIR)/eblmachineflagcheck.Po
-include ./$(DEPDIR)/eblmachineflagname.Po
-include ./$(DEPDIR)/eblobjecttypename.Po
-include ./$(DEPDIR)/eblobjnote.Po
-include ./$(DEPDIR)/eblobjnotetypename.Po
-include ./$(DEPDIR)/eblopenbackend.Po
-include ./$(DEPDIR)/eblosabiname.Po
-include ./$(DEPDIR)/eblreloctypecheck.Po
-include ./$(DEPDIR)/eblreloctypename.Po
-include ./$(DEPDIR)/eblrelocvaliduse.Po
-include ./$(DEPDIR)/eblsectionname.Po
-include ./$(DEPDIR)/eblsectiontypename.Po
-include ./$(DEPDIR)/eblsegmenttypename.Po
-include ./$(DEPDIR)/eblshflagscombine.Po
-include ./$(DEPDIR)/eblstrtab.Po
-include ./$(DEPDIR)/eblsymbolbindingname.Po
-include ./$(DEPDIR)/eblsymboltypename.Po
-include ./$(DEPDIR)/eblwstrtab.Po
-
-.c.o:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c $<
-
-.c.obj:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-euincludeHEADERS: $(euinclude_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(euincludedir)" || $(mkdir_p) "$(DESTDIR)$(euincludedir)"
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(euincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(euincludedir)/$$f'"; \
- $(euincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-
-uninstall-euincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(euincludedir)/$$f'"; \
- rm -f "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-install-exec: install-exec-am
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLIBRARIES clean-noinstLIBRARIES \
- clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-euincludeHEADERS
-
-install-exec-am: install-libLIBRARIES
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-euincludeHEADERS uninstall-info-am \
- uninstall-libLIBRARIES
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLIBRARIES clean-noinstLIBRARIES clean-noinstPROGRAMS \
- ctags distclean distclean-compile distclean-generic \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
- install-euincludeHEADERS install-exec install-exec-am \
- install-info install-info-am install-libLIBRARIES install-man \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-euincludeHEADERS \
- uninstall-info-am uninstall-libLIBRARIES
-
-libebl_i386.so: libebl_i386_pic.a libebl_i386.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_i386.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
-libebl_sh.so: libebl_sh_pic.a libebl_sh.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_sh.map \
- -Wl,-z,defs $(libmudflap)
-libebl_mips.so: libebl_mips_pic.a libebl_mips.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_mips.map \
- -Wl,-z,defs $(libmudflap)
-libebl_x86_64.so: libebl_x86_64_pic.a libebl_x86_64.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_x86_64.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
-libebl_ia64.so: libebl_ia64_pic.a libebl_ia64.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_ia64.map \
- -Wl,-z,defs $(libmudflap)
-libebl_alpha.so: libebl_alpha_pic.a libebl_alpha.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_alpha.map \
- -Wl,-z,defs $(libmudflap)
-libebl_arm.so: libebl_arm_pic.a libebl_arm.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_arm.map \
- -Wl,-z,defs $(libmudflap)
-libebl_sparc.so: libebl_sparc_pic.a libebl_sparc.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_sparc.map \
- -Wl,-z,defs $(libmudflap)
-libebl_ppc.so: libebl_ppc_pic.a libebl_ppc.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_ppc.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
-libebl_ppc64.so: libebl_ppc64_pic.a libebl_ppc64.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_ppc64.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
-
-%.os: %.c %.o
- if $(COMPILE) -c -o $@ -fpic -DPIC -DSHARED -MT $@ -MD -MP \
- -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \
- then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
- rm -f "$(DEPDIR)/$*.Tpo"; \
- else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
- fi
-
-install: install-am
- $(mkinstalldirs) $(DESTDIR)$(libdir)/elfutils
- for m in $(modules); do \
- $(INSTALL_PROGRAM) libebl_$${m}.so $(DESTDIR)$(libdir)/elfutils/libebl_$${m}-$(PACKAGE_VERSION).so; \
- ln -fs libebl_$${m}-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/elfutils/libebl_$${m}.so; \
- done
-
-uninstall: uninstall-am
- for m in $(modules); do \
- rm -f $(DESTDIR)$(libdir)/elfutils/libebl_$${m}-$(PACKAGE_VERSION).so; \
- rm -f $(DESTDIR)$(libdir)/elfutils/libebl_$${m}.so; \
- done
- rmdir --ignore-fail-on-non-empty $(DESTDIR)$(libdir)/elfutils
- rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/elfutils
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libebl/Makefile.am b/libebl/Makefile.am
deleted file mode 100644
index 71514c85..00000000
--- a/libebl/Makefile.am
+++ /dev/null
@@ -1,204 +0,0 @@
-## Process this file with automake to create Makefile.in
-## Configure input file for elfutils.
-##
-## Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
-##
-## This program is Open Source software; you can redistribute it and/or
-## modify it under the terms of the Open Software License version 1.0 as
-## published by the Open Source Initiative.
-##
-## You should have received a copy of the Open Software License along
-## with this program; if not, you may obtain a copy of the Open Software
-## License version 1.0 from http://www.opensource.org/licenses/osl.php or
-## by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-## 3001 King Ranch Road, Ukiah, CA 95482.
-##
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DOBJDIR=\"$(shell pwd)\"
-if MUDFLAP
-AM_CFLAGS = -Wall -Wshadow -fpic
-else
-AM_CFLAGS = -Wall -Werror -Wshadow -fpic
-endif
-AM_CFLAGS += -DLIBSTR=\"$$(basename $(libdir))\"
-
-INCLUDES = -I$(srcdir) -I$(top_srcdir)/libelf -I$(top_srcdir)/lib -I..
-VERSION = 1
-PACKAGE_VERSION = @PACKAGE_VERSION@
-
-lib_LIBRARIES = libebl.a
-modules = i386 sh mips x86_64 ia64 alpha arm sparc ppc ppc64
-noinst_LIBRARIES = libebl_i386_pic.a libebl_sh_pic.a libebl_mips_pic.a \
- libebl_x86_64_pic.a libebl_ia64_pic.a libebl_alpha_pic.a \
- libebl_arm_pic.a libebl_sparc_pic.a libebl_ppc_pic.a \
- libebl_ppc64_pic.a
-noinst_PROGRAMS = $(noinst_LIBRARIES:_pic.a=.so)
-
-euincludedir = $(includedir)/elfutils
-euinclude_HEADERS = libebl.h
-
-gen_SOURCES = eblopenbackend.c eblclosebackend.c eblstrtab.c \
- eblreloctypename.c eblsegmenttypename.c \
- eblsectiontypename.c eblmachineflagname.c \
- eblsymboltypename.c ebldynamictagname.c eblsectionname.c \
- eblobjecttypename.c eblsymbolbindingname.c \
- eblbackendname.c eblshflagscombine.c eblwstrtab.c \
- eblgstrtab.c eblosabiname.c eblmachineflagcheck.c \
- eblreloctypecheck.c eblrelocvaliduse.c ebldynamictagcheck.c \
- eblcorenotetypename.c eblobjnotetypename.c \
- eblcorenote.c eblobjnote.c ebldebugscnp.c \
- eblgotpcreloccheck.c
-
-libebl_a_SOURCES = $(gen_SOURCES)
-
-#
-# XXX Use --enable-new-dtags as soon as ld.so handles DT_RUNPATH when
-# using dlopen correctly.
-# -Wl,--rpath,\$$ORIGIN/elfutils \
-#
-i386_SRCS = i386_init.c i386_destr.c i386_symbol.c i386_corenote.c
-libebl_i386_pic_a_SOURCES =
-am_libebl_i386_pic_a_OBJECTS = $(i386_SRCS:.c=.os)
-
-if MUDFLAP
-libelf = ../libelf/libelf.a
-libmudflap = -lmudflap
-else
-libelf = ../libelf/libelf.so
-libmudflap =
-endif
-
-libebl_i386_so_SOURCES =
-libebl_i386.so: libebl_i386_pic.a libebl_i386.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_i386.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
-
-
-sh_SRCS = sh_init.c sh_destr.c sh_symbol.c
-libebl_sh_pic_a_SOURCES =
-am_libebl_sh_pic_a_OBJECTS = $(sh_SRCS:.c=.os)
-
-libebl_sh_so_SOURCES =
-libebl_sh.so: libebl_sh_pic.a libebl_sh.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_sh.map \
- -Wl,-z,defs $(libmudflap)
-
-
-mips_SRCS = mips_init.c mips_destr.c mips_symbol.c
-libebl_mips_pic_a_SOURCES =
-am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os)
-
-libebl_mips_so_SOURCES =
-libebl_mips.so: libebl_mips_pic.a libebl_mips.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_mips.map \
- -Wl,-z,defs $(libmudflap)
-
-
-x86_64_SRCS = x86_64_init.c x86_64_destr.c x86_64_symbol.c
-libebl_x86_64_pic_a_SOURCES =
-am_libebl_x86_64_pic_a_OBJECTS = $(x86_64_SRCS:.c=.os)
-
-libebl_x86_64_so_SOURCES =
-libebl_x86_64.so: libebl_x86_64_pic.a libebl_x86_64.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_x86_64.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
-
-
-ia64_SRCS = ia64_init.c ia64_destr.c ia64_symbol.c
-libebl_ia64_pic_a_SOURCES =
-am_libebl_ia64_pic_a_OBJECTS = $(ia64_SRCS:.c=.os)
-
-libebl_ia64_so_SOURCES =
-libebl_ia64.so: libebl_ia64_pic.a libebl_ia64.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_ia64.map \
- -Wl,-z,defs $(libmudflap)
-
-
-alpha_SRCS = alpha_init.c alpha_destr.c alpha_symbol.c
-libebl_alpha_pic_a_SOURCES =
-am_libebl_alpha_pic_a_OBJECTS = $(alpha_SRCS:.c=.os)
-
-libebl_alpha_so_SOURCES =
-libebl_alpha.so: libebl_alpha_pic.a libebl_alpha.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_alpha.map \
- -Wl,-z,defs $(libmudflap)
-
-
-arm_SRCS = arm_init.c arm_destr.c arm_symbol.c
-libebl_arm_pic_a_SOURCES =
-am_libebl_arm_pic_a_OBJECTS = $(arm_SRCS:.c=.os)
-
-libebl_arm_so_SOURCES =
-libebl_arm.so: libebl_arm_pic.a libebl_arm.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_arm.map \
- -Wl,-z,defs $(libmudflap)
-
-
-sparc_SRCS = sparc_init.c sparc_destr.c sparc_symbol.c
-libebl_sparc_pic_a_SOURCES =
-am_libebl_sparc_pic_a_OBJECTS = $(sparc_SRCS:.c=.os)
-
-libebl_sparc_so_SOURCES =
-libebl_sparc.so: libebl_sparc_pic.a libebl_sparc.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_sparc.map \
- -Wl,-z,defs $(libmudflap)
-
-
-ppc_SRCS = ppc_init.c ppc_destr.c ppc_symbol.c
-libebl_ppc_pic_a_SOURCES =
-am_libebl_ppc_pic_a_OBJECTS = $(ppc_SRCS:.c=.os)
-
-libebl_ppc_so_SOURCES =
-libebl_ppc.so: libebl_ppc_pic.a libebl_ppc.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_ppc.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
-
-
-ppc64_SRCS = ppc64_init.c ppc64_destr.c ppc64_symbol.c
-libebl_ppc64_pic_a_SOURCES =
-am_libebl_ppc64_pic_a_OBJECTS = $(ppc64_SRCS:.c=.os)
-
-libebl_ppc64_so_SOURCES =
-libebl_ppc64.so: libebl_ppc64_pic.a libebl_ppc64.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_ppc64.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
-
-
-%.os: %.c %.o
- if $(COMPILE) -c -o $@ -fpic -DPIC -DSHARED -MT $@ -MD -MP \
- -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \
- then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
- rm -f "$(DEPDIR)/$*.Tpo"; \
- else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
- fi
-
-install: install-am
- $(mkinstalldirs) $(DESTDIR)$(libdir)/elfutils
- for m in $(modules); do \
- $(INSTALL_PROGRAM) libebl_$${m}.so $(DESTDIR)$(libdir)/elfutils/libebl_$${m}-$(PACKAGE_VERSION).so; \
- ln -fs libebl_$${m}-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/elfutils/libebl_$${m}.so; \
- done
-
-uninstall: uninstall-am
- for m in $(modules); do \
- rm -f $(DESTDIR)$(libdir)/elfutils/libebl_$${m}-$(PACKAGE_VERSION).so; \
- rm -f $(DESTDIR)$(libdir)/elfutils/libebl_$${m}.so; \
- done
- rmdir --ignore-fail-on-non-empty $(DESTDIR)$(libdir)/elfutils
- rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/elfutils
-
-noinst_HEADERS = libeblP.h $(noinst_LIBRARIES:%_pic.a=%.h)
-EXTRA_DIST = $(noinst_LIBRARIES:%_pic.a=%.map) \
- $(foreach m,$(modules),$($(m)_SRCS))
-
-CLEANFILES = $(am_libebl_pic_a_OBJECTS) \
- $(foreach m,$(modules),$(am_libebl_$(m)_pic_a_OBJECTS))
diff --git a/libebl/Makefile.in b/libebl/Makefile.in
deleted file mode 100644
index aaff3fe7..00000000
--- a/libebl/Makefile.in
+++ /dev/null
@@ -1,787 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-
-SOURCES = $(libebl_a_SOURCES) $(libebl_alpha_pic_a_SOURCES) $(libebl_arm_pic_a_SOURCES) $(libebl_i386_pic_a_SOURCES) $(libebl_ia64_pic_a_SOURCES) $(libebl_mips_pic_a_SOURCES) $(libebl_ppc64_pic_a_SOURCES) $(libebl_ppc_pic_a_SOURCES) $(libebl_sh_pic_a_SOURCES) $(libebl_sparc_pic_a_SOURCES) $(libebl_x86_64_pic_a_SOURCES) $(libebl_alpha_so_SOURCES) $(libebl_arm_so_SOURCES) $(libebl_i386_so_SOURCES) $(libebl_ia64_so_SOURCES) $(libebl_mips_so_SOURCES) $(libebl_ppc_so_SOURCES) $(libebl_ppc64_so_SOURCES) $(libebl_sh_so_SOURCES) $(libebl_sparc_so_SOURCES) $(libebl_x86_64_so_SOURCES)
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-noinst_PROGRAMS = $(am__EXEEXT_1)
-subdir = libebl
-DIST_COMMON = $(euinclude_HEADERS) $(noinst_HEADERS) \
- $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)"
-libLIBRARIES_INSTALL = $(INSTALL_DATA)
-LIBRARIES = $(lib_LIBRARIES) $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libebl_a_AR = $(AR) $(ARFLAGS)
-libebl_a_LIBADD =
-am__objects_1 = eblopenbackend.$(OBJEXT) eblclosebackend.$(OBJEXT) \
- eblstrtab.$(OBJEXT) eblreloctypename.$(OBJEXT) \
- eblsegmenttypename.$(OBJEXT) eblsectiontypename.$(OBJEXT) \
- eblmachineflagname.$(OBJEXT) eblsymboltypename.$(OBJEXT) \
- ebldynamictagname.$(OBJEXT) eblsectionname.$(OBJEXT) \
- eblobjecttypename.$(OBJEXT) eblsymbolbindingname.$(OBJEXT) \
- eblbackendname.$(OBJEXT) eblshflagscombine.$(OBJEXT) \
- eblwstrtab.$(OBJEXT) eblgstrtab.$(OBJEXT) \
- eblosabiname.$(OBJEXT) eblmachineflagcheck.$(OBJEXT) \
- eblreloctypecheck.$(OBJEXT) eblrelocvaliduse.$(OBJEXT) \
- ebldynamictagcheck.$(OBJEXT) eblcorenotetypename.$(OBJEXT) \
- eblobjnotetypename.$(OBJEXT) eblcorenote.$(OBJEXT) \
- eblobjnote.$(OBJEXT) ebldebugscnp.$(OBJEXT) \
- eblgotpcreloccheck.$(OBJEXT)
-am_libebl_a_OBJECTS = $(am__objects_1)
-libebl_a_OBJECTS = $(am_libebl_a_OBJECTS)
-libebl_alpha_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_alpha_pic_a_LIBADD =
-libebl_alpha_pic_a_OBJECTS = $(am_libebl_alpha_pic_a_OBJECTS)
-libebl_arm_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_arm_pic_a_LIBADD =
-libebl_arm_pic_a_OBJECTS = $(am_libebl_arm_pic_a_OBJECTS)
-libebl_i386_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_i386_pic_a_LIBADD =
-libebl_i386_pic_a_OBJECTS = $(am_libebl_i386_pic_a_OBJECTS)
-libebl_ia64_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_ia64_pic_a_LIBADD =
-libebl_ia64_pic_a_OBJECTS = $(am_libebl_ia64_pic_a_OBJECTS)
-libebl_mips_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_mips_pic_a_LIBADD =
-libebl_mips_pic_a_OBJECTS = $(am_libebl_mips_pic_a_OBJECTS)
-libebl_ppc64_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_ppc64_pic_a_LIBADD =
-libebl_ppc64_pic_a_OBJECTS = $(am_libebl_ppc64_pic_a_OBJECTS)
-libebl_ppc_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_ppc_pic_a_LIBADD =
-libebl_ppc_pic_a_OBJECTS = $(am_libebl_ppc_pic_a_OBJECTS)
-libebl_sh_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_sh_pic_a_LIBADD =
-libebl_sh_pic_a_OBJECTS = $(am_libebl_sh_pic_a_OBJECTS)
-libebl_sparc_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_sparc_pic_a_LIBADD =
-libebl_sparc_pic_a_OBJECTS = $(am_libebl_sparc_pic_a_OBJECTS)
-libebl_x86_64_pic_a_AR = $(AR) $(ARFLAGS)
-libebl_x86_64_pic_a_LIBADD =
-libebl_x86_64_pic_a_OBJECTS = $(am_libebl_x86_64_pic_a_OBJECTS)
-am__EXEEXT_1 = libebl_i386.so$(EXEEXT) libebl_sh.so$(EXEEXT) \
- libebl_mips.so$(EXEEXT) libebl_x86_64.so$(EXEEXT) \
- libebl_ia64.so$(EXEEXT) libebl_alpha.so$(EXEEXT) \
- libebl_arm.so$(EXEEXT) libebl_sparc.so$(EXEEXT) \
- libebl_ppc.so$(EXEEXT) libebl_ppc64.so$(EXEEXT)
-PROGRAMS = $(noinst_PROGRAMS)
-am_libebl_alpha_so_OBJECTS =
-libebl_alpha_so_OBJECTS = $(am_libebl_alpha_so_OBJECTS)
-libebl_alpha_so_LDADD = $(LDADD)
-am_libebl_arm_so_OBJECTS =
-libebl_arm_so_OBJECTS = $(am_libebl_arm_so_OBJECTS)
-libebl_arm_so_LDADD = $(LDADD)
-am_libebl_i386_so_OBJECTS =
-libebl_i386_so_OBJECTS = $(am_libebl_i386_so_OBJECTS)
-libebl_i386_so_LDADD = $(LDADD)
-am_libebl_ia64_so_OBJECTS =
-libebl_ia64_so_OBJECTS = $(am_libebl_ia64_so_OBJECTS)
-libebl_ia64_so_LDADD = $(LDADD)
-am_libebl_mips_so_OBJECTS =
-libebl_mips_so_OBJECTS = $(am_libebl_mips_so_OBJECTS)
-libebl_mips_so_LDADD = $(LDADD)
-am_libebl_ppc_so_OBJECTS =
-libebl_ppc_so_OBJECTS = $(am_libebl_ppc_so_OBJECTS)
-libebl_ppc_so_LDADD = $(LDADD)
-am_libebl_ppc64_so_OBJECTS =
-libebl_ppc64_so_OBJECTS = $(am_libebl_ppc64_so_OBJECTS)
-libebl_ppc64_so_LDADD = $(LDADD)
-am_libebl_sh_so_OBJECTS =
-libebl_sh_so_OBJECTS = $(am_libebl_sh_so_OBJECTS)
-libebl_sh_so_LDADD = $(LDADD)
-am_libebl_sparc_so_OBJECTS =
-libebl_sparc_so_OBJECTS = $(am_libebl_sparc_so_OBJECTS)
-libebl_sparc_so_LDADD = $(LDADD)
-am_libebl_x86_64_so_OBJECTS =
-libebl_x86_64_so_OBJECTS = $(am_libebl_x86_64_so_OBJECTS)
-libebl_x86_64_so_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libebl_a_SOURCES) $(libebl_alpha_pic_a_SOURCES) \
- $(libebl_arm_pic_a_SOURCES) $(libebl_i386_pic_a_SOURCES) \
- $(libebl_ia64_pic_a_SOURCES) $(libebl_mips_pic_a_SOURCES) \
- $(libebl_ppc64_pic_a_SOURCES) $(libebl_ppc_pic_a_SOURCES) \
- $(libebl_sh_pic_a_SOURCES) $(libebl_sparc_pic_a_SOURCES) \
- $(libebl_x86_64_pic_a_SOURCES) $(libebl_alpha_so_SOURCES) \
- $(libebl_arm_so_SOURCES) $(libebl_i386_so_SOURCES) \
- $(libebl_ia64_so_SOURCES) $(libebl_mips_so_SOURCES) \
- $(libebl_ppc_so_SOURCES) $(libebl_ppc64_so_SOURCES) \
- $(libebl_sh_so_SOURCES) $(libebl_sparc_so_SOURCES) \
- $(libebl_x86_64_so_SOURCES)
-DIST_SOURCES = $(libebl_a_SOURCES) $(libebl_alpha_pic_a_SOURCES) \
- $(libebl_arm_pic_a_SOURCES) $(libebl_i386_pic_a_SOURCES) \
- $(libebl_ia64_pic_a_SOURCES) $(libebl_mips_pic_a_SOURCES) \
- $(libebl_ppc64_pic_a_SOURCES) $(libebl_ppc_pic_a_SOURCES) \
- $(libebl_sh_pic_a_SOURCES) $(libebl_sparc_pic_a_SOURCES) \
- $(libebl_x86_64_pic_a_SOURCES) $(libebl_alpha_so_SOURCES) \
- $(libebl_arm_so_SOURCES) $(libebl_i386_so_SOURCES) \
- $(libebl_ia64_so_SOURCES) $(libebl_mips_so_SOURCES) \
- $(libebl_ppc_so_SOURCES) $(libebl_ppc64_so_SOURCES) \
- $(libebl_sh_so_SOURCES) $(libebl_sparc_so_SOURCES) \
- $(libebl_x86_64_so_SOURCES)
-euincludeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(euinclude_HEADERS) $(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DOBJDIR=\"$(shell pwd)\"
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GMSGFMT = @GMSGFMT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
-MUDFLAP_FALSE = @MUDFLAP_FALSE@
-MUDFLAP_TRUE = @MUDFLAP_TRUE@
-NATIVE_LD_FALSE = @NATIVE_LD_FALSE@
-NATIVE_LD_TRUE = @NATIVE_LD_TRUE@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VERSION = 1
-XGETTEXT = @XGETTEXT@
-YACC = @YACC@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-base_cpu = @base_cpu@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-@MUDFLAP_FALSE@AM_CFLAGS = -Wall -Werror -Wshadow -fpic \
-@MUDFLAP_FALSE@ -DLIBSTR=\"$$(basename $(libdir))\"
-@MUDFLAP_TRUE@AM_CFLAGS = -Wall -Wshadow -fpic -DLIBSTR=\"$$(basename \
-@MUDFLAP_TRUE@ $(libdir))\"
-INCLUDES = -I$(srcdir) -I$(top_srcdir)/libelf -I$(top_srcdir)/lib -I..
-lib_LIBRARIES = libebl.a
-modules = i386 sh mips x86_64 ia64 alpha arm sparc ppc ppc64
-noinst_LIBRARIES = libebl_i386_pic.a libebl_sh_pic.a libebl_mips_pic.a \
- libebl_x86_64_pic.a libebl_ia64_pic.a libebl_alpha_pic.a \
- libebl_arm_pic.a libebl_sparc_pic.a libebl_ppc_pic.a \
- libebl_ppc64_pic.a
-
-euincludedir = $(includedir)/elfutils
-euinclude_HEADERS = libebl.h
-gen_SOURCES = eblopenbackend.c eblclosebackend.c eblstrtab.c \
- eblreloctypename.c eblsegmenttypename.c \
- eblsectiontypename.c eblmachineflagname.c \
- eblsymboltypename.c ebldynamictagname.c eblsectionname.c \
- eblobjecttypename.c eblsymbolbindingname.c \
- eblbackendname.c eblshflagscombine.c eblwstrtab.c \
- eblgstrtab.c eblosabiname.c eblmachineflagcheck.c \
- eblreloctypecheck.c eblrelocvaliduse.c ebldynamictagcheck.c \
- eblcorenotetypename.c eblobjnotetypename.c \
- eblcorenote.c eblobjnote.c ebldebugscnp.c \
- eblgotpcreloccheck.c
-
-libebl_a_SOURCES = $(gen_SOURCES)
-
-#
-# XXX Use --enable-new-dtags as soon as ld.so handles DT_RUNPATH when
-# using dlopen correctly.
-# -Wl,--rpath,\$$ORIGIN/elfutils \
-#
-i386_SRCS = i386_init.c i386_destr.c i386_symbol.c i386_corenote.c
-libebl_i386_pic_a_SOURCES =
-am_libebl_i386_pic_a_OBJECTS = $(i386_SRCS:.c=.os)
-@MUDFLAP_FALSE@libelf = ../libelf/libelf.so
-@MUDFLAP_TRUE@libelf = ../libelf/libelf.a
-@MUDFLAP_FALSE@libmudflap =
-@MUDFLAP_TRUE@libmudflap = -lmudflap
-libebl_i386_so_SOURCES =
-sh_SRCS = sh_init.c sh_destr.c sh_symbol.c
-libebl_sh_pic_a_SOURCES =
-am_libebl_sh_pic_a_OBJECTS = $(sh_SRCS:.c=.os)
-libebl_sh_so_SOURCES =
-mips_SRCS = mips_init.c mips_destr.c mips_symbol.c
-libebl_mips_pic_a_SOURCES =
-am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os)
-libebl_mips_so_SOURCES =
-x86_64_SRCS = x86_64_init.c x86_64_destr.c x86_64_symbol.c
-libebl_x86_64_pic_a_SOURCES =
-am_libebl_x86_64_pic_a_OBJECTS = $(x86_64_SRCS:.c=.os)
-libebl_x86_64_so_SOURCES =
-ia64_SRCS = ia64_init.c ia64_destr.c ia64_symbol.c
-libebl_ia64_pic_a_SOURCES =
-am_libebl_ia64_pic_a_OBJECTS = $(ia64_SRCS:.c=.os)
-libebl_ia64_so_SOURCES =
-alpha_SRCS = alpha_init.c alpha_destr.c alpha_symbol.c
-libebl_alpha_pic_a_SOURCES =
-am_libebl_alpha_pic_a_OBJECTS = $(alpha_SRCS:.c=.os)
-libebl_alpha_so_SOURCES =
-arm_SRCS = arm_init.c arm_destr.c arm_symbol.c
-libebl_arm_pic_a_SOURCES =
-am_libebl_arm_pic_a_OBJECTS = $(arm_SRCS:.c=.os)
-libebl_arm_so_SOURCES =
-sparc_SRCS = sparc_init.c sparc_destr.c sparc_symbol.c
-libebl_sparc_pic_a_SOURCES =
-am_libebl_sparc_pic_a_OBJECTS = $(sparc_SRCS:.c=.os)
-libebl_sparc_so_SOURCES =
-ppc_SRCS = ppc_init.c ppc_destr.c ppc_symbol.c
-libebl_ppc_pic_a_SOURCES =
-am_libebl_ppc_pic_a_OBJECTS = $(ppc_SRCS:.c=.os)
-libebl_ppc_so_SOURCES =
-ppc64_SRCS = ppc64_init.c ppc64_destr.c ppc64_symbol.c
-libebl_ppc64_pic_a_SOURCES =
-am_libebl_ppc64_pic_a_OBJECTS = $(ppc64_SRCS:.c=.os)
-libebl_ppc64_so_SOURCES =
-noinst_HEADERS = libeblP.h $(noinst_LIBRARIES:%_pic.a=%.h)
-EXTRA_DIST = $(noinst_LIBRARIES:%_pic.a=%.map) \
- $(foreach m,$(modules),$($(m)_SRCS))
-
-CLEANFILES = $(am_libebl_pic_a_OBJECTS) \
- $(foreach m,$(modules),$(am_libebl_$(m)_pic_a_OBJECTS))
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits libebl/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits libebl/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-libLIBRARIES: $(lib_LIBRARIES)
- @$(NORMAL_INSTALL)
- test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- f=$(am__strip_dir) \
- echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
- $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
- else :; fi; \
- done
- @$(POST_INSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- p=$(am__strip_dir) \
- echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \
- $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \
- else :; fi; \
- done
-
-uninstall-libLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- p=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \
- rm -f "$(DESTDIR)$(libdir)/$$p"; \
- done
-
-clean-libLIBRARIES:
- -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libebl.a: $(libebl_a_OBJECTS) $(libebl_a_DEPENDENCIES)
- -rm -f libebl.a
- $(libebl_a_AR) libebl.a $(libebl_a_OBJECTS) $(libebl_a_LIBADD)
- $(RANLIB) libebl.a
-libebl_alpha_pic.a: $(libebl_alpha_pic_a_OBJECTS) $(libebl_alpha_pic_a_DEPENDENCIES)
- -rm -f libebl_alpha_pic.a
- $(libebl_alpha_pic_a_AR) libebl_alpha_pic.a $(libebl_alpha_pic_a_OBJECTS) $(libebl_alpha_pic_a_LIBADD)
- $(RANLIB) libebl_alpha_pic.a
-libebl_arm_pic.a: $(libebl_arm_pic_a_OBJECTS) $(libebl_arm_pic_a_DEPENDENCIES)
- -rm -f libebl_arm_pic.a
- $(libebl_arm_pic_a_AR) libebl_arm_pic.a $(libebl_arm_pic_a_OBJECTS) $(libebl_arm_pic_a_LIBADD)
- $(RANLIB) libebl_arm_pic.a
-libebl_i386_pic.a: $(libebl_i386_pic_a_OBJECTS) $(libebl_i386_pic_a_DEPENDENCIES)
- -rm -f libebl_i386_pic.a
- $(libebl_i386_pic_a_AR) libebl_i386_pic.a $(libebl_i386_pic_a_OBJECTS) $(libebl_i386_pic_a_LIBADD)
- $(RANLIB) libebl_i386_pic.a
-libebl_ia64_pic.a: $(libebl_ia64_pic_a_OBJECTS) $(libebl_ia64_pic_a_DEPENDENCIES)
- -rm -f libebl_ia64_pic.a
- $(libebl_ia64_pic_a_AR) libebl_ia64_pic.a $(libebl_ia64_pic_a_OBJECTS) $(libebl_ia64_pic_a_LIBADD)
- $(RANLIB) libebl_ia64_pic.a
-libebl_mips_pic.a: $(libebl_mips_pic_a_OBJECTS) $(libebl_mips_pic_a_DEPENDENCIES)
- -rm -f libebl_mips_pic.a
- $(libebl_mips_pic_a_AR) libebl_mips_pic.a $(libebl_mips_pic_a_OBJECTS) $(libebl_mips_pic_a_LIBADD)
- $(RANLIB) libebl_mips_pic.a
-libebl_ppc64_pic.a: $(libebl_ppc64_pic_a_OBJECTS) $(libebl_ppc64_pic_a_DEPENDENCIES)
- -rm -f libebl_ppc64_pic.a
- $(libebl_ppc64_pic_a_AR) libebl_ppc64_pic.a $(libebl_ppc64_pic_a_OBJECTS) $(libebl_ppc64_pic_a_LIBADD)
- $(RANLIB) libebl_ppc64_pic.a
-libebl_ppc_pic.a: $(libebl_ppc_pic_a_OBJECTS) $(libebl_ppc_pic_a_DEPENDENCIES)
- -rm -f libebl_ppc_pic.a
- $(libebl_ppc_pic_a_AR) libebl_ppc_pic.a $(libebl_ppc_pic_a_OBJECTS) $(libebl_ppc_pic_a_LIBADD)
- $(RANLIB) libebl_ppc_pic.a
-libebl_sh_pic.a: $(libebl_sh_pic_a_OBJECTS) $(libebl_sh_pic_a_DEPENDENCIES)
- -rm -f libebl_sh_pic.a
- $(libebl_sh_pic_a_AR) libebl_sh_pic.a $(libebl_sh_pic_a_OBJECTS) $(libebl_sh_pic_a_LIBADD)
- $(RANLIB) libebl_sh_pic.a
-libebl_sparc_pic.a: $(libebl_sparc_pic_a_OBJECTS) $(libebl_sparc_pic_a_DEPENDENCIES)
- -rm -f libebl_sparc_pic.a
- $(libebl_sparc_pic_a_AR) libebl_sparc_pic.a $(libebl_sparc_pic_a_OBJECTS) $(libebl_sparc_pic_a_LIBADD)
- $(RANLIB) libebl_sparc_pic.a
-libebl_x86_64_pic.a: $(libebl_x86_64_pic_a_OBJECTS) $(libebl_x86_64_pic_a_DEPENDENCIES)
- -rm -f libebl_x86_64_pic.a
- $(libebl_x86_64_pic_a_AR) libebl_x86_64_pic.a $(libebl_x86_64_pic_a_OBJECTS) $(libebl_x86_64_pic_a_LIBADD)
- $(RANLIB) libebl_x86_64_pic.a
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblbackendname.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblclosebackend.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblcorenote.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblcorenotetypename.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ebldebugscnp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ebldynamictagcheck.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ebldynamictagname.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblgotpcreloccheck.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblgstrtab.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblmachineflagcheck.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblmachineflagname.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblobjecttypename.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblobjnote.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblobjnotetypename.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblopenbackend.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblosabiname.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblreloctypecheck.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblreloctypename.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblrelocvaliduse.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblsectionname.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblsectiontypename.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblsegmenttypename.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblshflagscombine.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblstrtab.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblsymbolbindingname.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblsymboltypename.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eblwstrtab.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-euincludeHEADERS: $(euinclude_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(euincludedir)" || $(mkdir_p) "$(DESTDIR)$(euincludedir)"
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(euincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(euincludedir)/$$f'"; \
- $(euincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-
-uninstall-euincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(euincludedir)/$$f'"; \
- rm -f "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-install-exec: install-exec-am
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLIBRARIES clean-noinstLIBRARIES \
- clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-euincludeHEADERS
-
-install-exec-am: install-libLIBRARIES
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-euincludeHEADERS uninstall-info-am \
- uninstall-libLIBRARIES
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLIBRARIES clean-noinstLIBRARIES clean-noinstPROGRAMS \
- ctags distclean distclean-compile distclean-generic \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
- install-euincludeHEADERS install-exec install-exec-am \
- install-info install-info-am install-libLIBRARIES install-man \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-euincludeHEADERS \
- uninstall-info-am uninstall-libLIBRARIES
-
-libebl_i386.so: libebl_i386_pic.a libebl_i386.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_i386.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
-libebl_sh.so: libebl_sh_pic.a libebl_sh.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_sh.map \
- -Wl,-z,defs $(libmudflap)
-libebl_mips.so: libebl_mips_pic.a libebl_mips.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_mips.map \
- -Wl,-z,defs $(libmudflap)
-libebl_x86_64.so: libebl_x86_64_pic.a libebl_x86_64.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_x86_64.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
-libebl_ia64.so: libebl_ia64_pic.a libebl_ia64.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_ia64.map \
- -Wl,-z,defs $(libmudflap)
-libebl_alpha.so: libebl_alpha_pic.a libebl_alpha.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_alpha.map \
- -Wl,-z,defs $(libmudflap)
-libebl_arm.so: libebl_arm_pic.a libebl_arm.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_arm.map \
- -Wl,-z,defs $(libmudflap)
-libebl_sparc.so: libebl_sparc_pic.a libebl_sparc.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_sparc.map \
- -Wl,-z,defs $(libmudflap)
-libebl_ppc.so: libebl_ppc_pic.a libebl_ppc.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_ppc.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
-libebl_ppc64.so: libebl_ppc64_pic.a libebl_ppc64.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_ppc64.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
-
-%.os: %.c %.o
- if $(COMPILE) -c -o $@ -fpic -DPIC -DSHARED -MT $@ -MD -MP \
- -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \
- then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
- rm -f "$(DEPDIR)/$*.Tpo"; \
- else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
- fi
-
-install: install-am
- $(mkinstalldirs) $(DESTDIR)$(libdir)/elfutils
- for m in $(modules); do \
- $(INSTALL_PROGRAM) libebl_$${m}.so $(DESTDIR)$(libdir)/elfutils/libebl_$${m}-$(PACKAGE_VERSION).so; \
- ln -fs libebl_$${m}-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/elfutils/libebl_$${m}.so; \
- done
-
-uninstall: uninstall-am
- for m in $(modules); do \
- rm -f $(DESTDIR)$(libdir)/elfutils/libebl_$${m}-$(PACKAGE_VERSION).so; \
- rm -f $(DESTDIR)$(libdir)/elfutils/libebl_$${m}.so; \
- done
- rmdir --ignore-fail-on-non-empty $(DESTDIR)$(libdir)/elfutils
- rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/elfutils
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libebl/alpha_destr.c b/libebl/alpha_destr.c
deleted file mode 100644
index c599d591..00000000
--- a/libebl/alpha_destr.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Destructor for Alpha specific backend library.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_alpha.h>
-
-
-void
-alpha_destr (bh)
- Ebl *bh;
-{
- /* Nothing to do so far. */
-}
diff --git a/libebl/alpha_init.c b/libebl/alpha_init.c
deleted file mode 100644
index b688bb73..00000000
--- a/libebl/alpha_init.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Initialization of Alpha specific backend library.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_alpha.h>
-
-
-int
-alpha_init (elf, machine, eh, ehlen)
- Elf *elf;
- GElf_Half machine;
- Ebl *eh;
- size_t ehlen;
-{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return 1;
-
- /* We handle it. */
- eh->name = "Alpha";
- eh->reloc_type_name = alpha_reloc_type_name;
- eh->reloc_type_check = alpha_reloc_type_check;
- eh->destr = alpha_destr;
-
- return 0;
-}
diff --git a/libebl/alpha_symbol.c b/libebl/alpha_symbol.c
deleted file mode 100644
index 749f4f55..00000000
--- a/libebl/alpha_symbol.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Alpha specific symbolic name handling.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <elf.h>
-#include <stddef.h>
-
-#include <libebl_alpha.h>
-
-
-/* Return of the backend. */
-const char *
-alpha_backend_name (void)
-{
- return "alpha";
-}
-
-
-/* Relocation mapping table. */
-static const char *reloc_map_table[] =
- {
- [R_ALPHA_NONE] = "R_ALPHA_NONE",
- [R_ALPHA_REFLONG] = "R_ALPHA_REFLONG",
- [R_ALPHA_REFQUAD] = "R_ALPHA_REFQUAD",
- [R_ALPHA_GPREL32] = "R_ALPHA_GPREL32",
- [R_ALPHA_LITERAL] = "R_ALPHA_LITERAL",
- [R_ALPHA_LITUSE] = "R_ALPHA_LITUSE",
- [R_ALPHA_GPDISP] = "R_ALPHA_GPDISP",
- [R_ALPHA_BRADDR] = "R_ALPHA_BRADDR",
- [R_ALPHA_HINT] = "R_ALPHA_HINT",
- [R_ALPHA_SREL16] = "R_ALPHA_SREL16",
- [R_ALPHA_SREL32] = "R_ALPHA_SREL32",
- [R_ALPHA_SREL64] = "R_ALPHA_SREL64",
- [R_ALPHA_GPRELHIGH] = "R_ALPHA_GPRELHIGH",
- [R_ALPHA_GPRELLOW] = "R_ALPHA_GPRELLOW",
- [R_ALPHA_GPREL16] = "R_ALPHA_GPREL16",
- [R_ALPHA_COPY] = "R_ALPHA_COPY",
- [R_ALPHA_GLOB_DAT] = "R_ALPHA_GLOB_DAT",
- [R_ALPHA_JMP_SLOT] = "R_ALPHA_JMP_SLOT",
- [R_ALPHA_RELATIVE] = "R_ALPHA_RELATIVE",
- [R_ALPHA_TLS_GD_HI] = "R_ALPHA_TLS_GD_HI",
- [R_ALPHA_TLSGD] = "R_ALPHA_TLSGD",
- [R_ALPHA_TLS_LDM] = "R_ALPHA_TLS_LDM",
- [R_ALPHA_DTPMOD64] = "R_ALPHA_DTPMOD64",
- [R_ALPHA_GOTDTPREL] = "R_ALPHA_GOTDTPREL",
- [R_ALPHA_DTPREL64] = "R_ALPHA_DTPREL64",
- [R_ALPHA_DTPRELHI] = "R_ALPHA_DTPRELHI",
- [R_ALPHA_DTPRELLO] = "R_ALPHA_DTPRELLO",
- [R_ALPHA_DTPREL16] = "R_ALPHA_DTPREL16",
- [R_ALPHA_GOTTPREL] = "R_ALPHA_GOTTPREL",
- [R_ALPHA_TPREL64] = "R_ALPHA_TPREL64",
- [R_ALPHA_TPRELHI] = "R_ALPHA_TPRELHI",
- [R_ALPHA_TPRELLO] = "R_ALPHA_TPRELLO",
- [R_ALPHA_TPREL16] = "R_ALPHA_TPREL16"
- };
-
-
-/* Determine relocation type string for Alpha. */
-const char *
-alpha_reloc_type_name (int type, char *buf, size_t len)
-{
- if (type < 0
- || ((size_t) type
- >= sizeof (reloc_map_table) / sizeof (reloc_map_table[0])))
- return NULL;
-
- return reloc_map_table[type];
-}
-
-
-/* Check for correct relocation type. */
-bool
-alpha_reloc_type_check (int type)
-{
- return (type >= R_ALPHA_NONE
- && ((size_t) type
- < sizeof (reloc_map_table) / sizeof (reloc_map_table[0]))
- && reloc_map_table[type] != NULL) ? true : false;
-}
diff --git a/libebl/arm_destr.c b/libebl/arm_destr.c
deleted file mode 100644
index 3851240a..00000000
--- a/libebl/arm_destr.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Destructor for Arm specific backend library.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_arm.h>
-
-
-void
-arm_destr (bh)
- Ebl *bh;
-{
- /* Nothing to do so far. */
-}
diff --git a/libebl/arm_init.c b/libebl/arm_init.c
deleted file mode 100644
index 3dee75a7..00000000
--- a/libebl/arm_init.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Initialization of Arm specific backend library.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_arm.h>
-
-
-int
-arm_init (elf, machine, eh, ehlen)
- Elf *elf;
- GElf_Half machine;
- Ebl *eh;
- size_t ehlen;
-{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return 1;
-
- /* We handle it. */
- eh->name = "Arm";
- eh->reloc_type_name = arm_reloc_type_name;
- eh->reloc_type_check = arm_reloc_type_check;
- eh->destr = arm_destr;
-
- return 0;
-}
diff --git a/libebl/arm_symbol.c b/libebl/arm_symbol.c
deleted file mode 100644
index 224beea3..00000000
--- a/libebl/arm_symbol.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Arm specific symbolic name handling.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <elf.h>
-#include <stddef.h>
-
-#include <libebl_arm.h>
-
-
-/* Return of the backend. */
-const char *
-arm_backend_name (void)
-{
- return "arm";
-}
-
-
-/* Relocation mapping table. */
-static const char *reloc_map_table[] =
- {
- [R_ARM_NONE] = "R_ARM_NONE",
- [R_ARM_PC24] = "R_ARM_PC24",
- [R_ARM_ABS32] = "R_ARM_ABS32",
- [R_ARM_REL32] = "R_ARM_REL32",
- [R_ARM_PC13] = "R_ARM_PC13",
- [R_ARM_ABS16] = "R_ARM_ABS16",
- [R_ARM_ABS12] = "R_ARM_ABS12",
- [R_ARM_THM_ABS5] = "R_ARM_THM_ABS5",
- [R_ARM_ABS8] = "R_ARM_ABS8",
- [R_ARM_SBREL32] = "R_ARM_SBREL32",
- [R_ARM_THM_PC22] = "R_ARM_THM_PC22",
- [R_ARM_THM_PC8] = "R_ARM_THM_PC8",
- [R_ARM_AMP_VCALL9] = "R_ARM_AMP_VCALL9",
- [R_ARM_SWI24] = "R_ARM_SWI24",
- [R_ARM_THM_SWI8] = "R_ARM_THM_SWI8",
- [R_ARM_XPC25] = "R_ARM_XPC25",
- [R_ARM_THM_XPC22] = "R_ARM_THM_XPC22",
- [R_ARM_COPY] = "R_ARM_COPY",
- [R_ARM_GLOB_DAT] = "R_ARM_GLOB_DAT",
- [R_ARM_JUMP_SLOT] = "R_ARM_JUMP_SLOT",
- [R_ARM_RELATIVE] = "R_ARM_RELATIVE",
- [R_ARM_GOTOFF] = "R_ARM_GOTOFF",
- [R_ARM_GOTPC] = "R_ARM_GOTPC",
- [R_ARM_GOT32] = "R_ARM_GOT32",
- [R_ARM_PLT32] = "R_ARM_PLT32",
- [R_ARM_ALU_PCREL_7_0] = "R_ARM_ALU_PCREL_7_0",
- [R_ARM_ALU_PCREL_15_8] = "R_ARM_ALU_PCREL_15_8",
- [R_ARM_ALU_PCREL_23_15] = "R_ARM_ALU_PCREL_23_15",
- [R_ARM_LDR_SBREL_11_0] = "R_ARM_LDR_SBREL_11_0",
- [R_ARM_ALU_SBREL_19_12] = "R_ARM_ALU_SBREL_19_12",
- [R_ARM_ALU_SBREL_27_20] = "R_ARM_ALU_SBREL_27_20"
- };
-
-static const char *reloc_map_table2[] =
- {
- [R_ARM_GNU_VTENTRY] = "R_ARM_GNU_VTENTRY",
- [R_ARM_GNU_VTINHERIT] = "R_ARM_GNU_VTINHERIT",
- [R_ARM_THM_PC11] = "R_ARM_THM_PC11",
- [R_ARM_THM_PC9] = "R_ARM_THM_PC9"
- };
-
-static const char *reloc_map_table3[] =
- {
- [R_ARM_RXPC25] = "R_ARM_RXPC25",
- [R_ARM_RSBREL32] = "R_ARM_RSBREL32",
- [R_ARM_THM_RPC22] = "R_ARM_THM_RPC22",
- [R_ARM_RREL32] = "R_ARM_RREL32",
- [R_ARM_RABS22] = "R_ARM_RABS22",
- [R_ARM_RPC24] = "R_ARM_RPC24",
- [R_ARM_RBASE] = "R_ARM_RBASE"
- };
-
-
-/* Determine relocation type string for Alpha. */
-const char *
-arm_reloc_type_name (int type, char *buf, size_t len)
-{
- if (type >= R_ARM_NONE && type <= R_ARM_ALU_SBREL_27_20)
- return reloc_map_table[type];
-
- if (type >= R_ARM_GNU_VTENTRY && type <= R_ARM_THM_PC9)
- return reloc_map_table2[type - R_ARM_GNU_VTENTRY];
-
- if (type >= R_ARM_RXPC25 && type <= R_ARM_RBASE)
- return reloc_map_table3[type - R_ARM_RXPC25];
-
- return NULL;
-}
-
-
-/* Check for correct relocation type. */
-bool
-arm_reloc_type_check (int type)
-{
- return ((type >= R_ARM_NONE && type <= R_ARM_ALU_SBREL_27_20)
- || (type >= R_ARM_GNU_VTENTRY && type <= R_ARM_THM_PC9)
- || (type >= R_ARM_RXPC25 && type <= R_ARM_RBASE)) ? true : false;
-}
diff --git a/libebl/eblbackendname.c b/libebl/eblbackendname.c
deleted file mode 100644
index 03830ebe..00000000
--- a/libebl/eblbackendname.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Return backend name.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <libeblP.h>
-
-
-const char *
-ebl_backend_name (ebl)
- Ebl *ebl;
-{
- return ebl != NULL ? ebl->emulation : gettext ("No backend");
-}
diff --git a/libebl/eblclosebackend.c b/libebl/eblclosebackend.c
deleted file mode 100644
index c5579612..00000000
--- a/libebl/eblclosebackend.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Free ELF backend handle.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dlfcn.h>
-#include <stdlib.h>
-
-#include <libeblP.h>
-
-
-void
-ebl_closebackend (Ebl *ebl)
-{
- if (ebl != NULL)
- {
- /* Run the destructor. */
- ebl->destr (ebl);
-
- /* Close the dynamically loaded object. */
- if (ebl->dlhandle != NULL)
- (void) dlclose (ebl->dlhandle);
-
- /* Free the resources. */
- free (ebl);
- }
-}
diff --git a/libebl/eblcorenote.c b/libebl/eblcorenote.c
deleted file mode 100644
index 6cc384fa..00000000
--- a/libebl/eblcorenote.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Print contents of core note.
- Copyright (C) 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <inttypes.h>
-#include <stdio.h>
-#include <stddef.h>
-#include <libeblP.h>
-
-
-void
-ebl_core_note (ebl, name, type, descsz, desc)
- Ebl *ebl;
- const char *name;
- uint32_t type;
- uint32_t descsz;
- const char *desc;
-{
- int class = gelf_getclass (ebl->elf);
-
- if (! ebl->core_note (name, type, descsz, desc))
- /* The machine specific function did not know this type. */
- switch (type)
- {
- case NT_PLATFORM:
- printf (gettext (" Platform: %.*s\n"), (int) descsz, desc);
- break;
-
- case NT_AUXV:
- ;
- size_t cnt;
- size_t elsize = (class == ELFCLASS32
- ? sizeof (Elf32_auxv_t) : sizeof (Elf64_auxv_t));
-
- for (cnt = 0; (cnt + 1) * elsize <= descsz; ++cnt)
- {
- unsigned long int atype;
- unsigned long int val;
-
- if (class == ELFCLASS32)
- {
- Elf32_auxv_t *auxv = &((Elf32_auxv_t *) desc)[cnt];
-
- atype = auxv->a_type;
- val = auxv->a_un.a_val;
- }
- else
- {
- Elf64_auxv_t *auxv = &((Elf64_auxv_t *) desc)[cnt];
-
- atype = auxv->a_type;
- val = auxv->a_un.a_val;
- }
-
- /* XXX Do we need the auxiliary vector info anywhere
- else? If yes, move code into a separate function. */
- const char *at;
-
- switch (atype)
- {
-#define NEW_AT(name) case AT_##name: at = #name; break
- NEW_AT (NULL);
- NEW_AT (IGNORE);
- NEW_AT (EXECFD);
- NEW_AT (PHDR);
- NEW_AT (PHENT);
- NEW_AT (PHNUM);
- NEW_AT (PAGESZ);
- NEW_AT (BASE);
- NEW_AT (FLAGS);
- NEW_AT (ENTRY);
- NEW_AT (NOTELF);
- NEW_AT (UID);
- NEW_AT (EUID);
- NEW_AT (GID);
- NEW_AT (EGID);
- NEW_AT (CLKTCK);
- NEW_AT (PLATFORM);
- NEW_AT (HWCAP);
- NEW_AT (FPUCW);
- NEW_AT (DCACHEBSIZE);
- NEW_AT (ICACHEBSIZE);
- NEW_AT (UCACHEBSIZE);
- NEW_AT (IGNOREPPC);
-
- default:
- at = "???";
- break;
- }
-
- switch (atype)
- {
- case AT_NULL:
- case AT_IGNORE:
- case AT_IGNOREPPC:
- case AT_NOTELF:
- default:
- printf (" %s\n", at);
- break;
-
- case AT_EXECFD:
- case AT_PHENT:
- case AT_PHNUM:
- case AT_PAGESZ:
- case AT_UID:
- case AT_EUID:
- case AT_GID:
- case AT_EGID:
- case AT_CLKTCK:
- case AT_FPUCW:
- case AT_DCACHEBSIZE:
- case AT_ICACHEBSIZE:
- case AT_UCACHEBSIZE:
- printf (" %s: %" PRId64 "\n", at, (int64_t) val);
- break;
-
- case AT_PHDR:
- case AT_BASE:
- case AT_FLAGS: /* XXX Print flags? */
- case AT_ENTRY:
- case AT_PLATFORM: /* XXX Get string? */
- case AT_HWCAP: /* XXX Print flags? */
- printf (" %s: %" PRIx64 "\n", at, (uint64_t) val);
- break;
- }
-
- if (atype == AT_NULL)
- /* Reached the end. */
- break;
- }
- break;
-
- default:
- /* Unknown type. */
- break;
- }
-}
diff --git a/libebl/eblcorenotetypename.c b/libebl/eblcorenotetypename.c
deleted file mode 100644
index 4a94d2ba..00000000
--- a/libebl/eblcorenotetypename.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Return note type name.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <inttypes.h>
-#include <stdio.h>
-#include <libeblP.h>
-
-
-const char *
-ebl_core_note_type_name (ebl, type, buf, len)
- Ebl *ebl;
- uint32_t type;
- char *buf;
- size_t len;
-{
- const char *res = ebl->core_note_type_name (type, buf, len);
-
- if (res == NULL)
- {
- static const char *knowntypes[] =
- {
-#define KNOWNSTYPE(name) [NT_##name] = #name
- KNOWNSTYPE (PRSTATUS),
- KNOWNSTYPE (FPREGSET),
- KNOWNSTYPE (PRPSINFO),
- KNOWNSTYPE (TASKSTRUCT),
- KNOWNSTYPE (PLATFORM),
- KNOWNSTYPE (AUXV),
- KNOWNSTYPE (GWINDOWS),
- KNOWNSTYPE (ASRS),
- KNOWNSTYPE (PSTATUS),
- KNOWNSTYPE (PSINFO),
- KNOWNSTYPE (PRCRED),
- KNOWNSTYPE (UTSNAME),
- KNOWNSTYPE (LWPSTATUS),
- KNOWNSTYPE (LWPSINFO),
- KNOWNSTYPE (PRFPXREG)
- };
-
- /* Handle standard names. */
- if (type < sizeof (knowntypes) / sizeof (knowntypes[0])
- && knowntypes[type] != NULL)
- res = knowntypes[type];
- else
- {
- snprintf (buf, len, "%s: %" PRIu32, gettext ("<unknown>"), type);
-
- res = buf;
- }
- }
-
- return res;
-}
diff --git a/libebl/ebldebugscnp.c b/libebl/ebldebugscnp.c
deleted file mode 100644
index 59310b51..00000000
--- a/libebl/ebldebugscnp.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Check section name for being that of a debug informatino section.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdint.h>
-#include <libeblP.h>
-
-
-bool
-ebl_debugscn_p (ebl, name)
- Ebl *ebl;
- const char *name;
-{
- return ebl->debugscn_p (name);
-}
diff --git a/libebl/ebldynamictagcheck.c b/libebl/ebldynamictagcheck.c
deleted file mode 100644
index 68b41691..00000000
--- a/libebl/ebldynamictagcheck.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Check dynamic tag.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <inttypes.h>
-#include <libeblP.h>
-
-
-bool
-ebl_dynamic_tag_check (ebl, tag)
- Ebl *ebl;
- int64_t tag;
-{
- bool res = ebl != NULL ? ebl->dynamic_tag_check (tag) : false;
-
- if (!res
- && ((tag >= 0 && tag < DT_NUM)
- || (tag >= DT_GNU_PRELINKED && tag <= DT_SYMINENT)
- || (tag >= DT_GNU_CONFLICT && tag <= DT_SYMINFO)
- || tag == DT_VERSYM
- || (tag >= DT_RELACOUNT && tag <= DT_VERNEEDNUM)
- || tag == DT_AUXILIARY
- || tag == DT_FILTER))
- res = true;
-
- return res;
-}
diff --git a/libebl/ebldynamictagname.c b/libebl/ebldynamictagname.c
deleted file mode 100644
index 464c1e2a..00000000
--- a/libebl/ebldynamictagname.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Return dynamic tag name.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <inttypes.h>
-#include <stdio.h>
-#include <libeblP.h>
-
-
-const char *
-ebl_dynamic_tag_name (ebl, tag, buf, len)
- Ebl *ebl;
- int64_t tag;
- char *buf;
- size_t len;
-{
- const char *res = ebl != NULL ? ebl->dynamic_tag_name (tag, buf, len) : NULL;
-
- if (res == NULL)
- {
- if (tag >= 0 && tag < DT_NUM)
- {
- static const char *stdtags[] =
- {
- "NULL", "NEEDED", "PLTRELSZ", "PLTGOT", "HASH", "STRTAB",
- "SYMTAB", "RELA", "RELASZ", "RELAENT", "STRSZ", "SYMENT",
- "INIT", "FINI", "SONAME", "RPATH", "SYMBOLIC", "REL", "RELSZ",
- "RELENT", "PLTREL", "DEBUG", "TEXTREL", "JMPREL", "BIND_NOW",
- "INIT_ARRAY", "FINI_ARRAY", "INIT_ARRAYSZ", "FINI_ARRAYSZ",
- "RUNPATH", "FLAGS", "ENCODING", "PREINIT_ARRAY",
- "PREINIT_ARRAYSZ"
- };
-
- res = stdtags[tag];
- }
- else if (tag == DT_VERSYM)
- res = "VERSYM";
- else if (tag >= DT_GNU_PRELINKED && tag <= DT_SYMINENT)
- {
- static const char *valrntags[] =
- {
- "GNU_PRELINKED", "GNU_CONFLICTSZ", "GNU_LIBLISTSZ",
- "CHECKSUM", "PLTPADSZ", "MOVEENT", "MOVESZ", "FEATURE_1",
- "POSFLAG_1", "SYMINSZ", "SYMINENT"
- };
-
- res = valrntags[tag - DT_GNU_PRELINKED];
- }
- else if (tag >= DT_GNU_CONFLICT && tag <= DT_SYMINFO)
- {
- static const char *addrrntags[] =
- {
- "GNU_CONFLICT", "GNU_LIBLIST", "CONFIG", "DEPAUDIT", "AUDIT",
- "PLTPAD", "MOVETAB", "SYMINFO"
- };
-
- res = addrrntags[tag - DT_GNU_CONFLICT];
- }
- else if (tag >= DT_RELACOUNT && tag <= DT_VERNEEDNUM)
- {
- static const char *suntags[] =
- {
- "RELACOUNT", "RELCOUNT", "FLAGS_1", "VERDEF", "VERDEFNUM",
- "VERNEED", "VERNEEDNUM"
- };
-
- res = suntags[tag - DT_RELACOUNT];
- }
- else if (tag == DT_AUXILIARY)
- res = "AUXILIARY";
- else if (tag == DT_FILTER)
- res = "FILTER";
- else
- {
- snprintf (buf, len, gettext ("<unknown>: %" PRId64), tag);
-
- res = buf;
-
- }
- }
-
- return res;
-}
diff --git a/libebl/eblgotpcreloccheck.c b/libebl/eblgotpcreloccheck.c
deleted file mode 100644
index 8ae8b7b8..00000000
--- a/libebl/eblgotpcreloccheck.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Return true if the symbol type is that referencing the GOT. E.g.,
- R_386_GOTPC.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libeblP.h>
-
-
-bool
-ebl_gotpc_reloc_check (ebl, reloc)
- Ebl *ebl;
- int reloc;
-{
- return ebl != NULL ? ebl->gotpc_reloc_check (ebl->elf, reloc) : false;
-}
diff --git a/libebl/eblgstrtab.c b/libebl/eblgstrtab.c
deleted file mode 100644
index 1fee0e89..00000000
--- a/libebl/eblgstrtab.c
+++ /dev/null
@@ -1,355 +0,0 @@
-/* Generic string table handling.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <inttypes.h>
-#include <libelf.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/param.h>
-
-#include "libebl.h"
-
-#ifndef MIN
-# define MIN(a, b) ((a) < (b) ? (a) : (b))
-#endif
-
-
-struct Ebl_GStrent
-{
- const char *string;
- size_t len;
- struct Ebl_GStrent *next;
- struct Ebl_GStrent *left;
- struct Ebl_GStrent *right;
- size_t offset;
- unsigned int width;
- char reverse[0];
-};
-
-
-struct memoryblock
-{
- struct memoryblock *next;
- char memory[0];
-};
-
-
-struct Ebl_GStrtab
-{
- struct Ebl_GStrent *root;
- struct memoryblock *memory;
- char *backp;
- size_t left;
- size_t total;
- unsigned int width;
- bool nullstr;
-
- struct Ebl_GStrent null;
-};
-
-
-/* Cache for the pagesize. We correct this value a bit so that `malloc'
- is not allocating more than a page. */
-static size_t ps;
-
-
-struct Ebl_GStrtab *
-ebl_gstrtabinit (unsigned int width, bool nullstr)
-{
- struct Ebl_GStrtab *ret;
-
- if (ps == 0)
- {
- ps = sysconf (_SC_PAGESIZE) - 2 * sizeof (void *);
- assert (sizeof (struct memoryblock) < ps);
- }
-
- ret = (struct Ebl_GStrtab *) calloc (1, sizeof (struct Ebl_GStrtab));
- if (ret != NULL)
- {
- ret->width = width;
- ret->nullstr = nullstr;
-
- if (nullstr)
- {
- ret->null.len = 1;
- ret->null.string = (char *) calloc (1, width);
- }
- }
-
- return ret;
-}
-
-
-static void
-morememory (struct Ebl_GStrtab *st, size_t len)
-{
- struct memoryblock *newmem;
-
- if (len < ps)
- len = ps;
- newmem = (struct memoryblock *) malloc (len);
- if (newmem == NULL)
- abort ();
-
- newmem->next = st->memory;
- st->memory = newmem;
- st->backp = newmem->memory;
- st->left = len - offsetof (struct memoryblock, memory);
-}
-
-
-void
-ebl_gstrtabfree (struct Ebl_GStrtab *st)
-{
- struct memoryblock *mb = st->memory;
-
- while (mb != NULL)
- {
- void *old = mb;
- mb = mb->next;
- free (old);
- }
-
- if (st->null.string != NULL)
- free ((char *) st->null.string);
-
- free (st);
-}
-
-
-static struct Ebl_GStrent *
-newstring (struct Ebl_GStrtab *st, const char *str, size_t len)
-{
- struct Ebl_GStrent *newstr;
- size_t align;
- size_t i;
- size_t j;
-
- /* Compute the amount of padding needed to make the structure aligned. */
- align = ((__alignof__ (struct Ebl_GStrent)
- - (((uintptr_t) st->backp)
- & (__alignof__ (struct Ebl_GStrent) - 1)))
- & (__alignof__ (struct Ebl_GStrent) - 1));
-
- /* Make sure there is enough room in the memory block. */
- if (st->left < align + sizeof (struct Ebl_GStrent) + len * st->width)
- {
- morememory (st, sizeof (struct Ebl_GStrent) + len * st->width);
- align = 0;
- }
-
- /* Create the reserved string. */
- newstr = (struct Ebl_GStrent *) (st->backp + align);
- newstr->string = str;
- newstr->len = len;
- newstr->width = st->width;
- newstr->next = NULL;
- newstr->left = NULL;
- newstr->right = NULL;
- newstr->offset = 0;
- for (i = len - 2; i >= 0; --i)
- for (j = st->width - 1; j >= 0; --j)
- newstr->reverse[i * st->width + j] = str[(len - 2 - i) * st->width + j];
- for (j = 0; j < st->width; ++j)
- newstr->reverse[(len - 1) * st->width + j] = '\0';
- st->backp += align + sizeof (struct Ebl_GStrent) + len * st->width;
- st->left -= align + sizeof (struct Ebl_GStrent) + len * st->width;
-
- return newstr;
-}
-
-
-/* XXX This function should definitely be rewritten to use a balancing
- tree algorith (AVL, red-black trees). For now a simple, correct
- implementation is enough. */
-static struct Ebl_GStrent **
-searchstring (struct Ebl_GStrent **sep, struct Ebl_GStrent *newstr)
-{
- int cmpres;
-
- /* More strings? */
- if (*sep == NULL)
- {
- *sep = newstr;
- return sep;
- }
-
- /* Compare the strings. */
- cmpres = memcmp ((*sep)->reverse, newstr->reverse,
- (MIN ((*sep)->len, newstr->len) - 1) * (*sep)->width);
- if (cmpres == 0)
- /* We found a matching string. */
- return sep;
- else if (cmpres > 0)
- return searchstring (&(*sep)->left, newstr);
- else
- return searchstring (&(*sep)->right, newstr);
-}
-
-
-/* Add new string. The actual string is assumed to be permanent. */
-struct Ebl_GStrent *
-ebl_gstrtabadd (struct Ebl_GStrtab *st, const char *str, size_t len)
-{
- struct Ebl_GStrent *newstr;
- struct Ebl_GStrent **sep;
-
- /* Compute the string length if the caller doesn't know it. */
- if (len == 0)
- {
- size_t j;
-
- do
- for (j = 0; j < st->width; ++j)
- if (str[len * st->width + j] != '\0')
- break;
- while (j == st->width && ++len);
- }
-
- /* Make sure all "" strings get offset 0 but only if the table was
- created with a special null entry in mind. */
- if (len == 1 && st->null.string != NULL)
- return &st->null;
-
- /* Allocate memory for the new string and its associated information. */
- newstr = newstring (st, str, len);
-
- /* Search in the array for the place to insert the string. If there
- is no string with matching prefix and no string with matching
- leading substring, create a new entry. */
- sep = searchstring (&st->root, newstr);
- if (*sep != newstr)
- {
- /* This is not the same entry. This means we have a prefix match. */
- if ((*sep)->len > newstr->len)
- {
- struct Ebl_GStrent *subs;
-
- /* Check whether we already know this string. */
- for (subs = (*sep)->next; subs != NULL; subs = subs->next)
- if (subs->len == newstr->len)
- {
- /* We have an exact match with a substring. Free the memory
- we allocated. */
- st->left += (st->backp - (char *) newstr) * st->width;
- st->backp = (char *) newstr;
-
- return subs;
- }
-
- /* We have a new substring. This means we don't need the reverse
- string of this entry anymore. */
- st->backp -= newstr->len;
- st->left += newstr->len;
-
- newstr->next = (*sep)->next;
- (*sep)->next = newstr;
- }
- else if ((*sep)->len != newstr->len)
- {
- /* When we get here it means that the string we are about to
- add has a common prefix with a string we already have but
- it is longer. In this case we have to put it first. */
- st->total += newstr->len - (*sep)->len;
- newstr->next = *sep;
- newstr->left = (*sep)->left;
- newstr->right = (*sep)->right;
- *sep = newstr;
- }
- else
- {
- /* We have an exact match. Free the memory we allocated. */
- st->left += (st->backp - (char *) newstr) * st->width;
- st->backp = (char *) newstr;
-
- newstr = *sep;
- }
- }
- else
- st->total += newstr->len;
-
- return newstr;
-}
-
-
-static void
-copystrings (struct Ebl_GStrent *nodep, char **freep, size_t *offsetp)
-{
- struct Ebl_GStrent *subs;
-
- if (nodep->left != NULL)
- copystrings (nodep->left, freep, offsetp);
-
- /* Process the current node. */
- nodep->offset = *offsetp;
- *freep = (char *) mempcpy (*freep, nodep->string, nodep->len * nodep->width);
- *offsetp += nodep->len * nodep->width;
-
- for (subs = nodep->next; subs != NULL; subs = subs->next)
- {
- assert (subs->len < nodep->len);
- subs->offset = nodep->offset + (nodep->len - subs->len) * nodep->width;
- assert (subs->offset != 0 || subs->string[0] == '\0');
- }
-
- if (nodep->right != NULL)
- copystrings (nodep->right, freep, offsetp);
-}
-
-
-void
-ebl_gstrtabfinalize (struct Ebl_GStrtab *st, Elf_Data *data)
-{
- size_t copylen;
- char *endp;
- size_t nulllen = st->nullstr ? st->width : 0;
-
- /* Fill in the information. */
- data->d_buf = malloc (st->total + nulllen);
- if (data->d_buf == NULL)
- abort ();
-
- /* The first byte must always be zero if we created the table with a
- null string. */
- if (st->nullstr)
- memset (data->d_buf, '\0', st->width);
-
- data->d_type = ELF_T_BYTE;
- data->d_size = st->total + nulllen;
- data->d_off = 0;
- data->d_align = 1;
- data->d_version = EV_CURRENT;
-
- /* Now run through the tree and add all the string while also updating
- the offset members of the elfstrent records. */
- endp = (char *) data->d_buf + nulllen;
- copylen = nulllen;
- copystrings (st->root, &endp, &copylen);
- assert (copylen == st->total * st->width + nulllen);
-}
-
-
-size_t
-ebl_gstrtaboffset (struct Ebl_GStrent *se)
-{
- return se->offset;
-}
diff --git a/libebl/eblmachineflagcheck.c b/libebl/eblmachineflagcheck.c
deleted file mode 100644
index abc8d302..00000000
--- a/libebl/eblmachineflagcheck.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Check machine flag.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libeblP.h>
-
-
-bool
-ebl_machine_flag_check (ebl, flags)
- Ebl *ebl;
- Elf64_Word flags;
-{
- return ebl != NULL ? ebl->machine_flag_check (flags) : (flags == 0);
-}
diff --git a/libebl/eblmachineflagname.c b/libebl/eblmachineflagname.c
deleted file mode 100644
index 228a9945..00000000
--- a/libebl/eblmachineflagname.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Return machine flag names.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <libeblP.h>
-
-
-const char *
-ebl_machine_flag_name (ebl, flags, buf, len)
- Ebl *ebl;
- Elf64_Word flags;
- char *buf;
- size_t len;
-{
- const char *res;
-
- if (flags == 0)
- res = "";
- else
- {
- char *cp = buf;
- int first = 1;
- const char *machstr;
- size_t machstrlen;
-
- do
- {
- if (! first)
- {
- if (cp + 1 >= buf + len)
- break;
- *cp++ = ',';
- }
-
- machstr = ebl != NULL ? ebl->machine_flag_name (&flags) : NULL;
- if (machstr == NULL)
- {
- /* No more known flag. */
- snprintf (cp, buf + len - cp, "%#x", flags);
- break;
- }
-
- machstrlen = strlen (machstr) + 1;
- if ((size_t) (buf + len - cp) < machstrlen)
- {
- *((char *) mempcpy (cp, machstr, buf + len - cp - 1)) = '\0';
- break;
- }
-
- cp = mempcpy (cp, machstr, machstrlen);
-
- first = 0;
- }
- while (flags != 0);
-
- res = buf;
- }
-
- return res;
-}
diff --git a/libebl/eblobjecttypename.c b/libebl/eblobjecttypename.c
deleted file mode 100644
index c099c71d..00000000
--- a/libebl/eblobjecttypename.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Return object file type name.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <libeblP.h>
-
-
-const char *
-ebl_object_type_name (ebl, object, buf, len)
- Ebl *ebl;
- int object;
- char *buf;
- size_t len;
-{
- const char *res;
-
- res = ebl != NULL ? ebl->object_type_name (object, buf, len) : NULL;
- if (res == NULL)
- {
- /* Handle OS-specific section names. */
- if (object >= ET_LOOS && object <= ET_HIOS)
- snprintf (buf, len, "LOOS+%x", object - ET_LOOS);
- /* Handle processor-specific section names. */
- else if (object >= ET_LOPROC && object <= ET_HIPROC)
- snprintf (buf, len, "LOPROC+%x", object - ET_LOPROC);
- else
- snprintf (buf, len, "%s: %d", gettext ("<unknown>"), object);
-
- res = buf;
- }
-
- return res;
-}
diff --git a/libebl/eblobjnote.c b/libebl/eblobjnote.c
deleted file mode 100644
index 5adff18e..00000000
--- a/libebl/eblobjnote.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Print contents of object file note.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <inttypes.h>
-#include <stdio.h>
-#include <string.h>
-#include <libeblP.h>
-
-
-void
-ebl_object_note (ebl, name, type, descsz, desc)
- Ebl *ebl;
- const char *name;
- uint32_t type;
- uint32_t descsz;
- const char *desc;
-{
- if (! ebl->object_note (name, type, descsz, desc))
- /* The machine specific function did not know this type. */
- switch (type)
- {
- case NT_VERSION:
- if (strcmp (name, "GNU") == 0 && descsz >= 8)
- {
- struct
- {
- uint32_t os;
- uint32_t version[descsz / 4 - 1];
- } *tag = (__typeof (tag)) desc;
-
- const char *os;
- switch (tag->os)
- {
- case ELF_NOTE_OS_LINUX:
- os = "Linux";
- break;
-
- case ELF_NOTE_OS_GNU:
- os = "GNU";
- break;
-
- case ELF_NOTE_OS_SOLARIS2:
- os = "Solaris";
- break;
-
- case ELF_NOTE_OS_FREEBSD:
- os = "FreeBSD";
- break;
-
- default:
- os = "???";
- break;
- }
-
- printf (gettext (" OS: %s, ABI: "), os);
- size_t cnt;
- for (cnt = 0; cnt < descsz / 4 - 1; ++cnt)
- {
- if (cnt != 0)
- putchar_unlocked ('.');
- printf ("%" PRIu32, tag->version[cnt]);
- }
- putchar_unlocked ('\n');
- break;
- }
- /* FALLTHROUGH */
-
- default:
- /* Unknown type. */
- break;
- }
-}
diff --git a/libebl/eblobjnotetypename.c b/libebl/eblobjnotetypename.c
deleted file mode 100644
index a963cefb..00000000
--- a/libebl/eblobjnotetypename.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Return note type name.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <inttypes.h>
-#include <stdio.h>
-#include <libeblP.h>
-
-
-const char *
-ebl_object_note_type_name (ebl, type, buf, len)
- Ebl *ebl;
- uint32_t type;
- char *buf;
- size_t len;
-{
- const char *res = ebl->object_note_type_name (type, buf, len);
-
- if (res == NULL)
- {
- static const char *knowntypes[] =
- {
-#define KNOWNSTYPE(name) [NT_##name] = #name
- KNOWNSTYPE (VERSION),
- };
-
- /* Handle standard names. */
- if (type < sizeof (knowntypes) / sizeof (knowntypes[0])
- && knowntypes[type] != NULL)
- res = knowntypes[type];
- else
- {
- snprintf (buf, len, "%s: %" PRIu32, gettext ("<unknown>"), type);
-
- res = buf;
- }
- }
-
- return res;
-}
diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c
deleted file mode 100644
index c801a6a0..00000000
--- a/libebl/eblopenbackend.c
+++ /dev/null
@@ -1,491 +0,0 @@
-/* Generate ELF backend handle.
- Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <dlfcn.h>
-#include <error.h>
-#include <gelf.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <libeblP.h>
-
-
-/* This table should contain the complete list of architectures as far
- as the ELF specification is concerned. */
-/* XXX When things are stable replace the string pointers with char
- arrays to avoid relocations. */
-static const struct
-{
- const char *dsoname;
- const char *emulation;
- const char *prefix;
- int prefix_len;
- int em;
-} machines[] =
-{
- { "i386", "elf_i386", "i386", 4, EM_386 },
- { "ia64", "elf_ia64", "ia64", 4, EM_IA_64 },
- { "alpha", "elf_alpha", "alpha", 5, EM_ALPHA },
- { "x86_64", "elf_x86_64", "x86_64", 6, EM_X86_64 },
- { "sh", "elf_sh", "sh", 2, EM_SH },
- { "arm", "ebl_arm", "arm", 3, EM_ARM },
- { "sparc", "elf_sparcv9", "sparc", 5, EM_SPARCV9 },
- { "sparc", "elf_sparc", "sparc", 5, EM_SPARC },
- { "sparc", "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS },
-
- { "m32", "elf_m32", "m32", 3, EM_M32 },
- { "m68k", "elf_m68k", "m68k", 4, EM_68K },
- { "m88k", "elf_m88k", "m88k", 4, EM_88K },
- { "i860", "elf_i860", "i860", 4, EM_860 },
- { "mips", "elf_mips", "mips", 4, EM_MIPS },
- { "s370", "ebl_s370", "s370", 4, EM_S370 },
- { "mips", "elf_mipsel", "mips", 4, EM_MIPS_RS3_LE },
- { "parisc", "elf_parisc", "parisc", 6, EM_PARISC },
- { "vpp500", "elf_vpp500", "vpp500", 5, EM_VPP500 },
- { "sparc", "elf_v8plus", "v8plus", 6, EM_SPARC32PLUS },
- { "i960", "elf_i960", "i960", 4, EM_960 },
- { "ppc", "elf_ppc", "ppc", 3, EM_PPC },
- { "ppc64", "elf_ppc64", "ppc64", 5, EM_PPC64 },
- { "s390", "ebl_s390", "s390", 4, EM_S390 },
- { "v800", "ebl_v800", "v800", 4, EM_V800 },
- { "fr20", "ebl_fr20", "fr20", 4, EM_FR20 },
- { "rh32", "ebl_rh32", "rh32", 4, EM_RH32 },
- { "rce", "ebl_rce", "rce", 3, EM_RCE },
- { "tricore", "elf_tricore", "tricore", 7, EM_TRICORE },
- { "arc", "elf_arc", "arc", 3, EM_ARC },
- { "h8", "elf_h8_300", "h8_300", 6, EM_H8_300 },
- { "h8", "elf_h8_300h", "h8_300h", 6, EM_H8_300H },
- { "h8", "elf_h8s", "h8s", 6, EM_H8S },
- { "h8", "elf_h8_500", "h8_500", 6, EM_H8_500 },
- { "mips_x", "elf_mips_x", "mips_x", 6, EM_MIPS_X },
- { "coldfire", "elf_coldfire", "coldfire", 8, EM_COLDFIRE },
- { "m68k", "elf_68hc12", "68hc12", 6, EM_68HC12 },
- { "mma", "elf_mma", "mma", 3, EM_MMA },
- { "pcp", "elf_pcp", "pcp", 3, EM_PCP },
- { "ncpu", "elf_ncpu", "ncpu", 4, EM_NCPU },
- { "ndr1", "elf_ndr1", "ndr1", 4, EM_NDR1 },
- { "starcore", "elf_starcore", "starcore", 8, EM_STARCORE },
- { "me16", "elf_me16", "em16", 4, EM_ME16 },
- { "st100", "elf_st100", "st100", 5, EM_ST100 },
- { "tinyj", "elf_tinyj", "tinyj", 5, EM_TINYJ },
- { "pdsp", "elf_pdsp", "pdsp", 4, EM_PDSP },
- { "fx66", "elf_fx66", "fx66", 4, EM_FX66 },
- { "st9plus", "elf_st9plus", "st9plus", 7, EM_ST9PLUS },
- { "st7", "elf_st7", "st7", 3, EM_ST7 },
- { "m68k", "elf_68hc16", "68hc16", 6, EM_68HC16 },
- { "m68k", "elf_68hc11", "68hc11", 6, EM_68HC11 },
- { "m68k", "elf_68hc08", "68hc08", 6, EM_68HC08 },
- { "m68k", "elf_68hc05", "68hc05", 6, EM_68HC05 },
- { "svx", "elf_svx", "svx", 3, EM_SVX },
- { "st19", "elf_st19", "st19", 4, EM_ST19 },
- { "vax", "elf_vax", "vax", 3, EM_VAX },
- { "cris", "elf_cris", "cris", 4, EM_CRIS },
- { "javelin", "elf_javelin", "javelin", 7, EM_JAVELIN },
- { "firepath", "elf_firepath", "firepath", 8, EM_FIREPATH },
- { "zsp", "elf_zsp", "zsp", 3, EM_ZSP},
- { "mmix", "elf_mmix", "mmix", 4, EM_MMIX },
- { "hunay", "elf_huany", "huany", 5, EM_HUANY },
- { "prism", "elf_prism", "prism", 5, EM_PRISM },
- { "avr", "elf_avr", "avr", 3, EM_AVR },
- { "fr30", "elf_fr30", "fr30", 4, EM_FR30 },
- { "dv10", "elf_dv10", "dv10", 4, EM_D10V },
- { "dv30", "elf_dv30", "dv30", 4, EM_D30V },
- { "v850", "elf_v850", "v850", 4, EM_V850 },
- { "m32r", "elf_m32r", "m32r", 4, EM_M32R },
- { "mn10300", "elf_mn10300", "mn10300", 7, EM_MN10300 },
- { "mn10200", "elf_mn10200", "mn10200", 7, EM_MN10200 },
- { "pj", "elf_pj", "pj", 2, EM_PJ },
- { "openrisc", "elf_openrisc", "openrisc", 8, EM_OPENRISC },
- { "arc", "elf_arc_a5", "arc_a5", 6, EM_ARC_A5 },
- { "xtensa", "elf_xtensa", "xtensa", 6, EM_XTENSA },
-};
-#define nmachines (sizeof (machines) / sizeof (machines[0]))
-
-
-/* Default callbacks. Mostly they just return the error value. */
-static const char *default_object_type_name (int ignore, char *buf,
- size_t len);
-static const char *default_reloc_type_name (int ignore, char *buf, size_t len);
-static bool default_reloc_type_check (int ignore);
-static bool default_reloc_valid_use (Elf *elf, int ignore);
-static bool default_gotpc_reloc_check (Elf *elf, int ignore);
-static const char *default_segment_type_name (int ignore, char *buf,
- size_t len);
-static const char *default_section_type_name (int ignore, char *buf,
- size_t len);
-static const char *default_section_name (int ignore, int ignore2, char *buf,
- size_t len);
-static const char *default_machine_flag_name (Elf64_Word *ignore);
-static bool default_machine_flag_check (Elf64_Word flags);
-static const char *default_symbol_type_name (int ignore, char *buf,
- size_t len);
-static const char *default_symbol_binding_name (int ignore, char *buf,
- size_t len);
-static const char *default_dynamic_tag_name (int64_t ignore, char *buf,
- size_t len);
-static bool default_dynamic_tag_check (int64_t ignore);
-static GElf_Word default_sh_flags_combine (GElf_Word flags1, GElf_Word flags2);
-static const char *default_osabi_name (int ignore, char *buf, size_t len);
-static void default_destr (struct ebl *ignore);
-static const char *default_core_note_type_name (uint32_t, char *buf,
- size_t len);
-static const char *default_object_note_type_name (uint32_t, char *buf,
- size_t len);
-static bool default_core_note (const char *name, uint32_t type,
- uint32_t descsz, const char *desc);
-static bool default_object_note (const char *name, uint32_t type,
- uint32_t descsz, const char *desc);
-static bool default_debugscn_p (const char *name);
-
-
-/* Find an appropriate backend for the file associated with ELF. */
-static Ebl *
-openbackend (elf, emulation, machine)
- Elf *elf;
- const char *emulation;
- GElf_Half machine;
-{
- Ebl *result;
- size_t cnt;
-
- /* First allocate the data structure for the result. We do this
- here since this assures that the structure is always large
- enough. */
- result = (Ebl *) calloc (1, sizeof (Ebl));
- if (result == NULL)
- {
- // XXX uncomment
- // __libebl_seterror (ELF_E_NOMEM);
- return NULL;
- }
-
- /* Fill in the default callbacks. The initializer for the machine
- specific module can overwrite the values. */
- result->object_type_name = default_object_type_name;
- result->reloc_type_name = default_reloc_type_name;
- result->reloc_type_check = default_reloc_type_check;
- result->reloc_valid_use = default_reloc_valid_use;
- result->gotpc_reloc_check = default_gotpc_reloc_check;
- result->segment_type_name = default_segment_type_name;
- result->section_type_name = default_section_type_name;
- result->section_name = default_section_name;
- result->machine_flag_name = default_machine_flag_name;
- result->machine_flag_check = default_machine_flag_check;
- result->symbol_type_name = default_symbol_type_name;
- result->symbol_binding_name = default_symbol_binding_name;
- result->dynamic_tag_name = default_dynamic_tag_name;
- result->dynamic_tag_check = default_dynamic_tag_check;
- result->sh_flags_combine = default_sh_flags_combine;
- result->osabi_name = default_osabi_name;
- result->core_note_type_name = default_core_note_type_name;
- result->object_note_type_name = default_object_note_type_name;
- result->core_note = default_core_note;
- result->object_note = default_object_note;
- result->debugscn_p = default_debugscn_p;
- result->destr = default_destr;
-
- /* XXX Currently all we do is to look at 'e_machine' value in the
- ELF header. With an internal mapping table from EM_* value to
- DSO name we try to load the appropriate module to handle this
- binary type.
-
- Multiple modules for the same machine type are possible and they
- will be tried in sequence. The lookup process will only stop
- when a module which can handle the machine type is found or all
- available matching modules are tried. */
- for (cnt = 0; cnt < nmachines; ++cnt)
- if ((emulation != NULL && strcmp (emulation, machines[cnt].emulation) == 0)
- || (emulation == NULL && machines[cnt].em == machine))
- {
- /* Well, we know the emulation name now. */
- result->emulation = machines[cnt].emulation;
-
- /* Give it a try. At least the machine type matches. First
- try to load the module. */
- char dsoname[100];
- strcpy (stpcpy (stpcpy (dsoname,
- "$ORIGIN/../" LIBSTR "/elfutils/libebl_"),
- machines[cnt].dsoname),
- ".so");
-
- void *h = dlopen (dsoname, RTLD_LAZY);
- if (h == NULL)
- {
- strcpy (stpcpy (stpcpy (dsoname, "libebl_"),
- machines[cnt].dsoname),
- ".so");
- h = dlopen (dsoname, RTLD_LAZY);
- }
-
- /* Try without an explicit path. */
- if (h != NULL)
- {
- /* We managed to load the object. Now see whether the
- initialization function likes our file. */
- ebl_bhinit_t initp;
- char symname[machines[cnt].prefix_len + sizeof "_init"];
-
- strcpy (mempcpy (symname, machines[cnt].prefix,
- machines[cnt].prefix_len), "_init");
-
- initp = (ebl_bhinit_t) dlsym (h, symname);
- if (initp != NULL
- && initp (elf, machine, result, sizeof (Ebl)) == 0)
- {
- /* We found a module to handle our file. */
- result->dlhandle = h;
- result->elf = elf;
-
- /* A few entries are mandatory. */
- assert (result->name != NULL);
- assert (result->destr != NULL);
-
- return result;
- }
-
- /* Not the module we need. */
- (void) dlclose (h);
- }
-
- /* We cannot find a DSO but the emulation/machine ID matches.
- Return that information. */
- result->dlhandle = NULL;
- result->elf = elf;
- result->name = machines[cnt].prefix;
-
- return result;
- }
-
- /* Nothing matched. We use only the default callbacks. */
- result->dlhandle = NULL;
- result->elf = elf;
- result->emulation = "<unknown>";
- result->name = "<unknown>";
-
- return result;
-}
-
-
-/* Find an appropriate backend for the file associated with ELF. */
-Ebl *
-ebl_openbackend (elf)
- Elf *elf;
-{
- GElf_Ehdr ehdr_mem;
- GElf_Ehdr *ehdr;
-
- /* Get the ELF header of the object. */
- ehdr = gelf_getehdr (elf, &ehdr_mem);
- if (ehdr == NULL)
- {
- // XXX uncomment
- // __libebl_seterror (elf_errno ());
- return NULL;
- }
-
- return openbackend (elf, NULL, ehdr->e_machine);
-}
-
-
-/* Find backend without underlying ELF file. */
-Ebl *
-ebl_openbackend_machine (machine)
- GElf_Half machine;
-{
- return openbackend (NULL, NULL, machine);
-}
-
-
-/* Find backend with given emulation name. */
-Ebl *
-ebl_openbackend_emulation (const char *emulation)
-{
- return openbackend (NULL, emulation, EM_NONE);
-}
-
-
-/* Default callbacks. Mostly they just return the error value. */
-static const char *
-default_object_type_name (int ignore, char *buf, size_t len)
-{
- return NULL;
-}
-
-static const char *
-default_reloc_type_name (int ignore, char *buf, size_t len)
-{
- return NULL;
-}
-
-static bool
-default_reloc_type_check (int ignore)
-{
- return false;
-}
-
-static bool
-default_reloc_valid_use (Elf *elf, int ignore)
-{
- return false;
-}
-
-static bool
-default_gotpc_reloc_check (Elf *elf, int ignore)
-{
- return false;
-}
-
-static const char *
-default_segment_type_name (int ignore, char *buf, size_t len)
-{
- return NULL;
-}
-
-static const char *
-default_section_type_name (int ignore, char *buf, size_t len)
-{
- return NULL;
-}
-
-static const char *
-default_section_name (int ignore, int ignore2, char *buf, size_t len)
-{
- return NULL;
-}
-
-static const char *
-default_machine_flag_name (Elf64_Word *ignore)
-{
- return NULL;
-}
-
-static bool
-default_machine_flag_check (Elf64_Word flags)
-{
- return flags == 0;
-}
-
-static const char *
-default_symbol_type_name (int ignore, char *buf, size_t len)
-{
- return NULL;
-}
-
-static const char *
-default_symbol_binding_name (int ignore, char *buf, size_t len)
-{
- return NULL;
-}
-
-static const char *
-default_dynamic_tag_name (int64_t ignore, char *buf, size_t len)
-{
- return NULL;
-}
-
-static bool
-default_dynamic_tag_check (int64_t ignore)
-{
- return false;
-}
-
-static GElf_Word
-default_sh_flags_combine (GElf_Word flags1, GElf_Word flags2)
-{
- return SH_FLAGS_COMBINE (flags1, flags2);
-}
-
-static void
-default_destr (struct ebl *ignore)
-{
-}
-
-static const char *
-default_osabi_name (int ignore, char *buf, size_t len)
-{
- return NULL;
-}
-
-static const char *
-default_core_note_type_name (uint32_t ignore, char *buf, size_t len)
-{
- return NULL;
-}
-
-static const char *
-default_object_note_type_name (uint32_t ignore, char *buf, size_t len)
-{
- return NULL;
-}
-
-static bool
-default_core_note (const char *name, uint32_t type, uint32_t descsz,
- const char *desc)
-{
- return NULL;
-}
-
-static bool
-default_object_note (const char *name, uint32_t type, uint32_t descsz,
- const char *desc)
-{
- return NULL;
-}
-
-static bool
-default_debugscn_p (const char *name)
-{
- /* We know by default only about the DWARF debug sections which have
- fixed names. */
- static const char *dwarf_scn_names[] =
- {
- /* DWARF 1 */
- ".debug",
- ".line",
- /* GNU DWARF 1 extensions */
- ".debug_srcinfo",
- ".debug_sfnames",
- /* DWARF 1.1 and DWARF 2 */
- ".debug_aranges",
- ".debug_pubnames",
- /* DWARF 2 */
- ".debug_info",
- ".debug_abbrev",
- ".debug_line",
- ".debug_frame",
- ".debug_str",
- ".debug_loc",
- ".debug_macinfo",
- /* DWARF 3 */
- ".debug_ranges",
- /* SGI/MIPS DWARF 2 extensions */
- ".debug_weaknames",
- ".debug_funcnames",
- ".debug_typenames",
- ".debug_varnames"
- };
- const size_t ndwarf_scn_names = (sizeof (dwarf_scn_names)
- / sizeof (dwarf_scn_names[0]));
- size_t cnt;
-
- for (cnt = 0; cnt < ndwarf_scn_names; ++cnt)
- if (strcmp (name, dwarf_scn_names[cnt]) == 0)
- return true;
-
- return false;
-}
diff --git a/libebl/eblosabiname.c b/libebl/eblosabiname.c
deleted file mode 100644
index 9a1e6534..00000000
--- a/libebl/eblosabiname.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Return OS ABI name
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <libeblP.h>
-
-
-const char *
-ebl_osabi_name (ebl, osabi, buf, len)
- Ebl *ebl;
- int osabi;
- char *buf;
- size_t len;
-{
- const char *res = ebl != NULL ? ebl->osabi_name (osabi, buf, len) : NULL;
-
- if (res == NULL)
- {
- if (osabi == ELFOSABI_NONE)
- res = "UNIX - System V";
- else if (osabi == ELFOSABI_HPUX)
- res = "HP/UX";
- else if (osabi == ELFOSABI_NETBSD)
- res = "NetBSD";
- else if (osabi == ELFOSABI_LINUX)
- res = "Linux";
- else if (osabi == ELFOSABI_SOLARIS)
- res = "Solaris";
- else if (osabi == ELFOSABI_AIX)
- res = "AIX";
- else if (osabi == ELFOSABI_IRIX)
- res = "Irix";
- else if (osabi == ELFOSABI_FREEBSD)
- res = "FreeBSD";
- else if (osabi == ELFOSABI_TRU64)
- res = "TRU64";
- else if (osabi == ELFOSABI_MODESTO)
- res = "Modesto";
- else if (osabi == ELFOSABI_OPENBSD)
- res = "OpenBSD";
- else if (osabi == ELFOSABI_ARM)
- res = "Arm";
- else if (osabi == ELFOSABI_STANDALONE)
- res = gettext ("Stand alone");
- else
- {
- snprintf (buf, len, "%s: %d", gettext ("<unknown>"), osabi);
-
- res = buf;
- }
- }
-
- return res;
-}
diff --git a/libebl/eblreloctypecheck.c b/libebl/eblreloctypecheck.c
deleted file mode 100644
index cafbc611..00000000
--- a/libebl/eblreloctypecheck.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Check relocation type.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libeblP.h>
-
-
-bool
-ebl_reloc_type_check (ebl, reloc)
- Ebl *ebl;
- int reloc;
-{
- return ebl != NULL ? ebl->reloc_type_check (reloc) : false;
-}
diff --git a/libebl/eblreloctypename.c b/libebl/eblreloctypename.c
deleted file mode 100644
index 5fa95608..00000000
--- a/libebl/eblreloctypename.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Return relocation type name.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <libeblP.h>
-
-
-const char *
-ebl_reloc_type_name (ebl, reloc, buf, len)
- Ebl *ebl;
- int reloc;
- char *buf;
- size_t len;
-{
- const char *res;
-
- res = ebl != NULL ? ebl->reloc_type_name (reloc, buf, len) : NULL;
- if (res == NULL)
- /* There are no generic relocation type names. */
- res = "???";
-
- return res;
-}
diff --git a/libebl/eblrelocvaliduse.c b/libebl/eblrelocvaliduse.c
deleted file mode 100644
index 74889861..00000000
--- a/libebl/eblrelocvaliduse.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Check relocation type use.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libeblP.h>
-
-
-bool
-ebl_reloc_valid_use (ebl, reloc)
- Ebl *ebl;
- int reloc;
-{
- return ebl != NULL ? ebl->reloc_valid_use (ebl->elf, reloc) : false;
-}
diff --git a/libebl/eblsectionname.c b/libebl/eblsectionname.c
deleted file mode 100644
index 6c801db6..00000000
--- a/libebl/eblsectionname.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Return section name.
- Copyright (C) 2001, 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <libeblP.h>
-
-
-const char *
-ebl_section_name (ebl, section, xsection, buf, len, scnnames, shnum)
- Ebl *ebl;
- int section;
- int xsection;
- char *buf;
- size_t len;
- const char *scnnames[];
- size_t shnum;
-{
- const char *res = ebl != NULL ? ebl->section_name (section, xsection,
- buf, len) : NULL;
-
- if (res == NULL)
- {
- if (section == SHN_UNDEF)
- res = "UNDEF";
- else if (section == SHN_ABS)
- res = "ABS";
- else if (section == SHN_COMMON)
- res = "COMMON";
- else if (section == SHN_BEFORE)
- res = "BEFORE";
- else if (section == SHN_AFTER)
- res = "AFTER";
- else if ((section < SHN_LORESERVE || section == SHN_XINDEX)
- && (size_t) section < shnum)
- {
- int idx = section != SHN_XINDEX ? section : xsection;
-
- if (scnnames != NULL)
- res = scnnames[idx];
- else
- {
- snprintf (buf, len, "%d", idx);
- res = buf;
- }
- }
- else
- {
- /* Handle OS-specific section names. */
- if (section == SHN_XINDEX)
- snprintf (buf, len, "%s: %d", "XINDEX", xsection);
- else if (section >= SHN_LOOS && section <= SHN_HIOS)
- snprintf (buf, len, "LOOS+%x", section - SHN_LOOS);
- /* Handle processor-specific section names. */
- else if (section >= SHN_LOPROC && section <= SHN_HIPROC)
- snprintf (buf, len, "LOPROC+%x", section - SHN_LOPROC);
- else if (section >= SHN_LORESERVE && section <= SHN_HIRESERVE)
- snprintf (buf, len, "LORESERVE+%x", section - SHN_LORESERVE);
- else
- snprintf (buf, len, "%s: %d", gettext ("<unknown>"), section);
-
- res = buf;
- }
- }
-
- return res;
-}
diff --git a/libebl/eblsectiontypename.c b/libebl/eblsectiontypename.c
deleted file mode 100644
index e6857acd..00000000
--- a/libebl/eblsectiontypename.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Return section type name.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <libeblP.h>
-
-
-const char *
-ebl_section_type_name (ebl, section, buf, len)
- Ebl *ebl;
- int section;
- char *buf;
- size_t len;
-{
- const char *res = ebl->section_type_name (section, buf, len);
-
- if (res == NULL)
- {
- static const char *knowntypes[] =
- {
-#define KNOWNSTYPE(name) [SHT_##name] = #name
- KNOWNSTYPE (NULL),
- KNOWNSTYPE (PROGBITS),
- KNOWNSTYPE (SYMTAB),
- KNOWNSTYPE (STRTAB),
- KNOWNSTYPE (RELA),
- KNOWNSTYPE (HASH),
- KNOWNSTYPE (DYNAMIC),
- KNOWNSTYPE (NOTE),
- KNOWNSTYPE (NOBITS),
- KNOWNSTYPE (REL),
- KNOWNSTYPE (SHLIB),
- KNOWNSTYPE (DYNSYM),
- KNOWNSTYPE (INIT_ARRAY),
- KNOWNSTYPE (FINI_ARRAY),
- KNOWNSTYPE (PREINIT_ARRAY),
- KNOWNSTYPE (GROUP),
- KNOWNSTYPE (SYMTAB_SHNDX)
- };
-
- /* Handle standard names. */
- if ((size_t) section < sizeof (knowntypes) / sizeof (knowntypes[0])
- && knowntypes[section] != NULL)
- res = knowntypes[section];
- /* The symbol versioning/Sun extensions. */
- else if (section >= SHT_LOSUNW && section <= SHT_HISUNW)
- {
- static const char *sunwtypes[] =
- {
-#undef KNOWNSTYPE
-#define KNOWNSTYPE(name) [SHT_##name - SHT_LOSUNW] = #name
- KNOWNSTYPE (SUNW_move),
- KNOWNSTYPE (SUNW_COMDAT),
- KNOWNSTYPE (SUNW_syminfo),
- KNOWNSTYPE (GNU_verdef),
- KNOWNSTYPE (GNU_verneed),
- KNOWNSTYPE (GNU_versym)
- };
- res = sunwtypes[section - SHT_LOSUNW];
- }
- else
- {
- /* A few GNU additions. */
- if (section == SHT_CHECKSUM)
- res = "CHECKSUM";
- else if (section == SHT_GNU_LIBLIST)
- res = "GNU_LIBLIST";
- /* Handle OS-specific section names. */
- else
- {
- if (section >= SHT_LOOS && section <= SHT_HIOS)
- snprintf (buf, len, "SHT_LOOS+%x", section - SHT_LOOS);
- /* Handle processor-specific section names. */
- else if (section >= SHT_LOPROC && section <= SHT_HIPROC)
- snprintf (buf, len, "SHT_LOPROC+%x", section - SHT_LOPROC);
- else if ((unsigned int) section >= SHT_LOUSER
- && (unsigned int) section <= SHT_HIUSER)
- snprintf (buf, len, "SHT_LOUSER+%x", section - SHT_LOUSER);
- else
- snprintf (buf, len, "%s: %d", gettext ("<unknown>"), section);
-
- res = buf;
- }
- }
- }
-
- return res;
-}
diff --git a/libebl/eblsegmenttypename.c b/libebl/eblsegmenttypename.c
deleted file mode 100644
index c59f037d..00000000
--- a/libebl/eblsegmenttypename.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Return segment type name.
- Copyright (C) 2001, 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <libeblP.h>
-
-
-const char *
-ebl_segment_type_name (ebl, segment, buf, len)
- Ebl *ebl;
- int segment;
- char *buf;
- size_t len;
-{
- const char *res;
-
- res = ebl != NULL ? ebl->segment_type_name (segment, buf, len) : NULL;
- if (res == NULL)
- {
- static const char *ptypes[PT_NUM] =
- {
-#define PTYPE(name) [PT_##name] = #name
- PTYPE (NULL),
- PTYPE (LOAD),
- PTYPE (DYNAMIC),
- PTYPE (INTERP),
- PTYPE (NOTE),
- PTYPE (SHLIB),
- PTYPE (PHDR),
- PTYPE (TLS)
- };
-
- /* Is it one of the standard segment types? */
- if (segment >= PT_NULL && segment < PT_NUM)
- res = ptypes[segment];
- else if (segment == PT_GNU_EH_FRAME)
- res = "GNU_EH_FRAME";
- else if (segment == PT_GNU_STACK)
- res = "GNU_STACK";
- else if (segment == PT_GNU_RELRO)
- res = "GNU_RELRO";
- else if (segment == PT_SUNWBSS)
- res = "SUNWBSS";
- else if (segment == PT_SUNWSTACK)
- res = "SUNWSTACK";
- else
- {
- if (segment >= PT_LOOS && segment <= PT_HIOS)
- snprintf (buf, len, "LOOS+%d", segment - PT_LOOS);
- else if (segment >= PT_LOPROC && segment <= PT_HIPROC)
- snprintf (buf, len, "LOPROC+%d", segment - PT_LOPROC);
- else
- snprintf (buf, len, "%s: %d", gettext ("<unknown>"), segment);
-
- res = buf;
- }
- }
-
- return res;
-}
diff --git a/libebl/eblshflagscombine.c b/libebl/eblshflagscombine.c
deleted file mode 100644
index 7edcf4e7..00000000
--- a/libebl/eblshflagscombine.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Return combines section header flags value.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libeblP.h>
-
-
-GElf_Word
-ebl_sh_flags_combine (ebl, flags1, flags2)
- Ebl *ebl;
- GElf_Word flags1;
- GElf_Word flags2;
-{
- return ebl->sh_flags_combine (flags1, flags2);
-}
diff --git a/libebl/eblstrtab.c b/libebl/eblstrtab.c
deleted file mode 100644
index bbf0d6ee..00000000
--- a/libebl/eblstrtab.c
+++ /dev/null
@@ -1,353 +0,0 @@
-/* ELF string table handling.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <inttypes.h>
-#include <libelf.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/param.h>
-
-#include "libebl.h"
-#include <system.h>
-
-#ifndef MIN
-# define MIN(a, b) ((a) < (b) ? (a) : (b))
-#endif
-
-
-struct Ebl_Strent
-{
- const char *string;
- size_t len;
- struct Ebl_Strent *next;
- struct Ebl_Strent *left;
- struct Ebl_Strent *right;
- size_t offset;
- char reverse[0];
-};
-
-
-struct memoryblock
-{
- struct memoryblock *next;
- char memory[0];
-};
-
-
-struct Ebl_Strtab
-{
- struct Ebl_Strent *root;
- struct memoryblock *memory;
- char *backp;
- size_t left;
- size_t total;
- bool nullstr;
-
- struct Ebl_Strent null;
-};
-
-
-/* Cache for the pagesize. We correct this value a bit so that `malloc'
- is not allocating more than a page. */
-static size_t ps;
-
-
-struct Ebl_Strtab *
-ebl_strtabinit (bool nullstr)
-{
- struct Ebl_Strtab *ret;
-
- if (ps == 0)
- {
- ps = sysconf (_SC_PAGESIZE) - 2 * sizeof (void *);
- assert (sizeof (struct memoryblock) < ps);
- }
-
- ret = (struct Ebl_Strtab *) calloc (1, sizeof (struct Ebl_Strtab));
- if (ret != NULL)
- {
- ret->nullstr = nullstr;
-
- if (nullstr)
- {
- ret->null.len = 1;
- ret->null.string = "";
- }
- }
-
- return ret;
-}
-
-
-static int
-morememory (struct Ebl_Strtab *st, size_t len)
-{
- struct memoryblock *newmem;
-
- if (len < ps)
- len = ps;
- newmem = (struct memoryblock *) malloc (len);
- if (newmem == NULL)
- return 1;
-
- newmem->next = st->memory;
- st->memory = newmem;
- st->backp = newmem->memory;
- st->left = len - offsetof (struct memoryblock, memory);
-
- return 0;
-}
-
-
-void
-ebl_strtabfree (struct Ebl_Strtab *st)
-{
- struct memoryblock *mb = st->memory;
-
- while (mb != NULL)
- {
- void *old = mb;
- mb = mb->next;
- free (old);
- }
-
- free (st);
-}
-
-
-static struct Ebl_Strent *
-newstring (struct Ebl_Strtab *st, const char *str, size_t len)
-{
- struct Ebl_Strent *newstr;
- size_t align;
- int i;
-
- /* Compute the amount of padding needed to make the structure aligned. */
- align = ((__alignof__ (struct Ebl_Strent)
- - (((uintptr_t) st->backp)
- & (__alignof__ (struct Ebl_Strent) - 1)))
- & (__alignof__ (struct Ebl_Strent) - 1));
-
- /* Make sure there is enough room in the memory block. */
- if (st->left < align + sizeof (struct Ebl_Strent) + len)
- {
- if (morememory (st, sizeof (struct Ebl_Strent) + len))
- return NULL;
-
- align = 0;
- }
-
- /* Create the reserved string. */
- newstr = (struct Ebl_Strent *) (st->backp + align);
- newstr->string = str;
- newstr->len = len;
- newstr->next = NULL;
- newstr->left = NULL;
- newstr->right = NULL;
- newstr->offset = 0;
- for (i = len - 2; i >= 0; --i)
- newstr->reverse[i] = str[len - 2 - i];
- newstr->reverse[len - 1] = '\0';
- st->backp += align + sizeof (struct Ebl_Strent) + len;
- st->left -= align + sizeof (struct Ebl_Strent) + len;
-
- return newstr;
-}
-
-
-/* XXX This function should definitely be rewritten to use a balancing
- tree algorith (AVL, red-black trees). For now a simple, correct
- implementation is enough. */
-static struct Ebl_Strent **
-searchstring (struct Ebl_Strent **sep, struct Ebl_Strent *newstr)
-{
- int cmpres;
-
- /* More strings? */
- if (*sep == NULL)
- {
- *sep = newstr;
- return sep;
- }
-
- /* Compare the strings. */
- cmpres = memcmp ((*sep)->reverse, newstr->reverse,
- MIN ((*sep)->len, newstr->len) - 1);
- if (cmpres == 0)
- /* We found a matching string. */
- return sep;
- else if (cmpres > 0)
- return searchstring (&(*sep)->left, newstr);
- else
- return searchstring (&(*sep)->right, newstr);
-}
-
-
-/* Add new string. The actual string is assumed to be permanent. */
-struct Ebl_Strent *
-ebl_strtabadd (struct Ebl_Strtab *st, const char *str, size_t len)
-{
- struct Ebl_Strent *newstr;
- struct Ebl_Strent **sep;
-
- /* Compute the string length if the caller doesn't know it. */
- if (len == 0)
- len = strlen (str) + 1;
-
- /* Make sure all "" strings get offset 0 but only if the table was
- created with a special null entry in mind. */
- if (len == 1 && st->null.string != NULL)
- return &st->null;
-
- /* Allocate memory for the new string and its associated information. */
- newstr = newstring (st, str, len);
- if (newstr == NULL)
- return NULL;
-
- /* Search in the array for the place to insert the string. If there
- is no string with matching prefix and no string with matching
- leading substring, create a new entry. */
- sep = searchstring (&st->root, newstr);
- if (*sep != newstr)
- {
- /* This is not the same entry. This means we have a prefix match. */
- if ((*sep)->len > newstr->len)
- {
- struct Ebl_Strent *subs;
-
- /* Check whether we already know this string. */
- for (subs = (*sep)->next; subs != NULL; subs = subs->next)
- if (subs->len == newstr->len)
- {
- /* We have an exact match with a substring. Free the memory
- we allocated. */
- st->left += st->backp - (char *) newstr;
- st->backp = (char *) newstr;
-
- return subs;
- }
-
- /* We have a new substring. This means we don't need the reverse
- string of this entry anymore. */
- st->backp -= newstr->len;
- st->left += newstr->len;
-
- newstr->next = (*sep)->next;
- (*sep)->next = newstr;
- }
- else if ((*sep)->len != newstr->len)
- {
- /* When we get here it means that the string we are about to
- add has a common prefix with a string we already have but
- it is longer. In this case we have to put it first. */
- st->total += newstr->len - (*sep)->len;
- newstr->next = *sep;
- newstr->left = (*sep)->left;
- newstr->right = (*sep)->right;
- *sep = newstr;
- }
- else
- {
- /* We have an exact match. Free the memory we allocated. */
- st->left += st->backp - (char *) newstr;
- st->backp = (char *) newstr;
-
- newstr = *sep;
- }
- }
- else
- st->total += newstr->len;
-
- return newstr;
-}
-
-
-static void
-copystrings (struct Ebl_Strent *nodep, char **freep, size_t *offsetp)
-{
- struct Ebl_Strent *subs;
-
- if (nodep->left != NULL)
- copystrings (nodep->left, freep, offsetp);
-
- /* Process the current node. */
- nodep->offset = *offsetp;
- *freep = (char *) mempcpy (*freep, nodep->string, nodep->len);
- *offsetp += nodep->len;
-
- for (subs = nodep->next; subs != NULL; subs = subs->next)
- {
- assert (subs->len < nodep->len);
- subs->offset = nodep->offset + nodep->len - subs->len;
- assert (subs->offset != 0 || subs->string[0] == '\0');
- }
-
- if (nodep->right != NULL)
- copystrings (nodep->right, freep, offsetp);
-}
-
-
-void
-ebl_strtabfinalize (struct Ebl_Strtab *st, Elf_Data *data)
-{
- size_t copylen;
- char *endp;
- size_t nulllen = st->nullstr ? 1 : 0;
-
- /* Fill in the information. */
- data->d_buf = malloc (st->total + nulllen);
- if (data->d_buf == NULL)
- abort ();
-
- /* The first byte must always be zero if we created the table with a
- null string. */
- if (st->nullstr)
- *((char *) data->d_buf) = '\0';
-
- data->d_type = ELF_T_BYTE;
- data->d_size = st->total + nulllen;
- data->d_off = 0;
- data->d_align = 1;
- data->d_version = EV_CURRENT;
-
- /* Now run through the tree and add all the string while also updating
- the offset members of the elfstrent records. */
- endp = (char *) data->d_buf + nulllen;
- copylen = nulllen;
- copystrings (st->root, &endp, &copylen);
- assert (copylen == st->total + nulllen);
-}
-
-
-size_t
-ebl_strtaboffset (struct Ebl_Strent *se)
-{
- return se->offset;
-}
-
-
-const char *
-ebl_string (struct Ebl_Strent *se)
-{
- assert (se->string != NULL);
-
- return se->string;
-}
diff --git a/libebl/eblsymbolbindingname.c b/libebl/eblsymbolbindingname.c
deleted file mode 100644
index efcd250e..00000000
--- a/libebl/eblsymbolbindingname.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Return symbol binding name.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <libeblP.h>
-
-
-const char *
-ebl_symbol_binding_name (ebl, binding, buf, len)
- Ebl *ebl;
- int binding;
- char *buf;
- size_t len;
-{
- const char *res;
-
- res = ebl != NULL ? ebl->symbol_type_name (binding, buf, len) : NULL;
- if (res == NULL)
- {
- static const char *stb_names[STB_NUM] =
- {
- "LOCAL", "GLOBAL", "WEAK"
- };
-
- /* Standard binding? */
- if (binding < STB_NUM)
- res = stb_names[binding];
- else
- {
- if (binding >= STB_LOPROC && binding <= STB_HIPROC)
- snprintf (buf, len, "LOPROC+%d", binding - STB_LOPROC);
- else if (binding >= STB_LOOS && binding <= STB_HIOS)
- snprintf (buf, len, "LOOS+%d", binding - STB_LOOS);
- else
- snprintf (buf, len, gettext ("<unknown>: %d"), binding);
-
- res = buf;
- }
- }
-
- return res;
-}
diff --git a/libebl/eblsymboltypename.c b/libebl/eblsymboltypename.c
deleted file mode 100644
index d11aec1a..00000000
--- a/libebl/eblsymboltypename.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Return symbol type name.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <libeblP.h>
-
-
-const char *
-ebl_symbol_type_name (ebl, symbol, buf, len)
- Ebl *ebl;
- int symbol;
- char *buf;
- size_t len;
-{
- const char *res;
-
- res = ebl != NULL ? ebl->symbol_type_name (symbol, buf, len) : NULL;
- if (res == NULL)
- {
- static const char *stt_names[STT_NUM] =
- {
- [STT_NOTYPE] = "NOTYPE",
- [STT_OBJECT] = "OBJECT",
- [STT_FUNC] = "FUNC",
- [STT_SECTION] = "SECTION",
- [STT_FILE] = "FILE",
- [STT_COMMON] = "COMMON",
- [STT_TLS] = "TLS"
- };
-
- /* Standard type? */
- if (symbol < STT_NUM)
- res = stt_names[symbol];
- else
- {
- if (symbol >= STT_LOPROC && symbol <= STT_HIPROC)
- snprintf (buf, len, "LOPROC+%d", symbol - STT_LOPROC);
- else if (symbol >= STT_LOOS && symbol <= STT_HIOS)
- snprintf (buf, len, "LOOS+%d", symbol - STT_LOOS);
- else
- snprintf (buf, len, gettext ("<unknown>: %d"), symbol);
-
- res = buf;
- }
- }
-
- return res;
-}
diff --git a/libebl/eblwstrtab.c b/libebl/eblwstrtab.c
deleted file mode 100644
index 8320cb58..00000000
--- a/libebl/eblwstrtab.c
+++ /dev/null
@@ -1,344 +0,0 @@
-/* ELF string table handling.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <inttypes.h>
-#include <libelf.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <wchar.h>
-#include <sys/param.h>
-
-#include "libebl.h"
-#include <system.h>
-
-#ifndef MIN
-# define MIN(a, b) ((a) < (b) ? (a) : (b))
-#endif
-
-
-struct Ebl_WStrent
-{
- const wchar_t *string;
- size_t len;
- struct Ebl_WStrent *next;
- struct Ebl_WStrent *left;
- struct Ebl_WStrent *right;
- size_t offset;
- wchar_t reverse[0];
-};
-
-
-struct memoryblock
-{
- struct memoryblock *next;
- char memory[0];
-};
-
-
-struct Ebl_WStrtab
-{
- struct Ebl_WStrent *root;
- struct memoryblock *memory;
- char *backp;
- size_t left;
- size_t total;
- bool nullstr;
-
- struct Ebl_WStrent null;
-};
-
-
-/* Cache for the pagesize. We correct this value a bit so that `malloc'
- is not allocating more than a page. */
-static size_t ps;
-
-
-struct Ebl_WStrtab *
-ebl_wstrtabinit (bool nullstr)
-{
- struct Ebl_WStrtab *ret;
-
- if (ps == 0)
- {
- ps = sysconf (_SC_PAGESIZE) - 2 * sizeof (void *);
- assert (sizeof (struct memoryblock) < ps);
- }
-
- ret = (struct Ebl_WStrtab *) calloc (1, sizeof (struct Ebl_WStrtab));
- if (ret != NULL)
- {
- ret->nullstr = nullstr;
- if (nullstr)
- {
- ret->null.len = 1;
- ret->null.string = L"";
- }
- }
- return ret;
-}
-
-
-static int
-morememory (struct Ebl_WStrtab *st, size_t len)
-{
- struct memoryblock *newmem;
-
- if (len < ps)
- len = ps;
- newmem = (struct memoryblock *) malloc (len);
- if (newmem == NULL)
- return 1;
-
- newmem->next = st->memory;
- st->memory = newmem;
- st->backp = newmem->memory;
- st->left = len - offsetof (struct memoryblock, memory);
-
- return 0;
-}
-
-
-void
-ebl_wstrtabfree (struct Ebl_WStrtab *st)
-{
- struct memoryblock *mb = st->memory;
-
- while (mb != NULL)
- {
- void *old = mb;
- mb = mb->next;
- free (old);
- }
-
- free (st);
-}
-
-
-static struct Ebl_WStrent *
-newstring (struct Ebl_WStrtab *st, const wchar_t *str, size_t len)
-{
- struct Ebl_WStrent *newstr;
- size_t align;
- int i;
-
- /* Compute the amount of padding needed to make the structure aligned. */
- align = ((__alignof__ (struct Ebl_WStrent)
- - (((uintptr_t) st->backp)
- & (__alignof__ (struct Ebl_WStrent) - 1)))
- & (__alignof__ (struct Ebl_WStrent) - 1));
-
- /* Make sure there is enough room in the memory block. */
- if (st->left < align + sizeof (struct Ebl_WStrent) + len * sizeof (wchar_t))
- {
- if (morememory (st,
- sizeof (struct Ebl_WStrent) + len * sizeof (wchar_t)))
- return NULL;
-
- align = 0;
- }
-
- /* Create the reserved string. */
- newstr = (struct Ebl_WStrent *) (st->backp + align);
- newstr->string = str;
- newstr->len = len;
- newstr->next = NULL;
- newstr->left = NULL;
- newstr->right = NULL;
- newstr->offset = 0;
- for (i = len - 2; i >= 0; --i)
- newstr->reverse[i] = str[len - 2 - i];
- newstr->reverse[len - 1] = L'\0';
- st->backp += align + sizeof (struct Ebl_WStrent) + len * sizeof (wchar_t);
- st->left -= align + sizeof (struct Ebl_WStrent) + len * sizeof (wchar_t);
-
- return newstr;
-}
-
-
-/* XXX This function should definitely be rewritten to use a balancing
- tree algorith (AVL, red-black trees). For now a simple, correct
- implementation is enough. */
-static struct Ebl_WStrent **
-searchstring (struct Ebl_WStrent **sep, struct Ebl_WStrent *newstr)
-{
- int cmpres;
-
- /* More strings? */
- if (*sep == NULL)
- {
- *sep = newstr;
- return sep;
- }
-
- /* Compare the strings. */
- cmpres = wmemcmp ((*sep)->reverse, newstr->reverse,
- MIN ((*sep)->len, newstr->len) - 1);
- if (cmpres == 0)
- /* We found a matching string. */
- return sep;
- else if (cmpres > 0)
- return searchstring (&(*sep)->left, newstr);
- else
- return searchstring (&(*sep)->right, newstr);
-}
-
-
-/* Add new string. The actual string is assumed to be permanent. */
-struct Ebl_WStrent *
-ebl_wstrtabadd (struct Ebl_WStrtab *st, const wchar_t *str, size_t len)
-{
- struct Ebl_WStrent *newstr;
- struct Ebl_WStrent **sep;
-
- /* Compute the string length if the caller doesn't know it. */
- if (len == 0)
- len = wcslen (str) + 1;
-
- /* Make sure all "" strings get offset 0 but only if the table was
- created with a special null entry in mind. */
- if (len == 1 && st->null.string != NULL)
- return &st->null;
-
- /* Allocate memory for the new string and its associated information. */
- newstr = newstring (st, str, len);
- if (newstr == NULL)
- return NULL;
-
- /* Search in the array for the place to insert the string. If there
- is no string with matching prefix and no string with matching
- leading substring, create a new entry. */
- sep = searchstring (&st->root, newstr);
- if (*sep != newstr)
- {
- /* This is not the same entry. This means we have a prefix match. */
- if ((*sep)->len > newstr->len)
- {
- struct Ebl_WStrent *subs;
-
- /* Check whether we already know this string. */
- for (subs = (*sep)->next; subs != NULL; subs = subs->next)
- if (subs->len == newstr->len)
- {
- /* We have an exact match with a substring. Free the memory
- we allocated. */
- st->left += st->backp - (char *) newstr;
- st->backp = (char *) newstr;
-
- return subs;
- }
-
- /* We have a new substring. This means we don't need the reverse
- string of this entry anymore. */
- st->backp -= newstr->len;
- st->left += newstr->len;
-
- newstr->next = (*sep)->next;
- (*sep)->next = newstr;
- }
- else if ((*sep)->len != newstr->len)
- {
- /* When we get here it means that the string we are about to
- add has a common prefix with a string we already have but
- it is longer. In this case we have to put it first. */
- st->total += newstr->len - (*sep)->len;
- newstr->next = *sep;
- newstr->left = (*sep)->left;
- newstr->right = (*sep)->right;
- *sep = newstr;
- }
- else
- {
- /* We have an exact match. Free the memory we allocated. */
- st->left += st->backp - (char *) newstr;
- st->backp = (char *) newstr;
-
- newstr = *sep;
- }
- }
- else
- st->total += newstr->len;
-
- return newstr;
-}
-
-
-static void
-copystrings (struct Ebl_WStrent *nodep, wchar_t **freep, size_t *offsetp)
-{
- struct Ebl_WStrent *subs;
-
- if (nodep->left != NULL)
- copystrings (nodep->left, freep, offsetp);
-
- /* Process the current node. */
- nodep->offset = *offsetp;
- *freep = wmempcpy (*freep, nodep->string, nodep->len);
- *offsetp += nodep->len * sizeof (wchar_t);
-
- for (subs = nodep->next; subs != NULL; subs = subs->next)
- {
- assert (subs->len < nodep->len);
- subs->offset = nodep->offset + nodep->len - subs->len;
- assert (subs->offset != 0 || subs->string[0] == '\0');
- }
-
- if (nodep->right != NULL)
- copystrings (nodep->right, freep, offsetp);
-}
-
-
-void
-ebl_wstrtabfinalize (struct Ebl_WStrtab *st, Elf_Data *data)
-{
- size_t copylen;
- wchar_t *endp;
- size_t nulllen = st->nullstr ? 1 : 0;
-
- /* Fill in the information. */
- data->d_buf = malloc ((st->total + nulllen) * sizeof (wchar_t));
- if (data->d_buf == NULL)
- abort ();
-
- /* The first byte must always be zero if we created the table with a
- null string. */
- if (st->nullstr)
- *((wchar_t *) data->d_buf) = L'\0';
-
- data->d_type = ELF_T_BYTE;
- data->d_size = st->total + nulllen;
- data->d_off = 0;
- data->d_align = 1;
- data->d_version = EV_CURRENT;
-
- /* Now run through the tree and add all the string while also updating
- the offset members of the elfstrent records. */
- endp = (wchar_t *) data->d_buf + nulllen;
- copylen = sizeof (wchar_t) * nulllen;
- copystrings (st->root, &endp, &copylen);
- assert (copylen == (st->total + nulllen) * sizeof (wchar_t));
-}
-
-
-size_t
-ebl_wstrtaboffset (struct Ebl_WStrent *se)
-{
- return se->offset;
-}
diff --git a/libebl/i386_corenote.c b/libebl/i386_corenote.c
deleted file mode 100644
index 482f81d7..00000000
--- a/libebl/i386_corenote.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/* i386 specific core note handling.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <elf.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <sys/time.h>
-
-#include <libebl_i386.h>
-
-
-/* We cannot include <sys/procfs.h> since it is available only on x86
- systems. */
-struct elf_prstatus
- {
- struct
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- } pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
- unsigned long int pr_reg[17]; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
- unsigned short int pr_uid;
- unsigned short int pr_gid;
- int pr_pid;
- int pr_ppid;
- int pr_pgrp;
- int pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[80]; /* Initial part of arg list. */
- };
-
-
-bool
-i386_core_note (name, type, descsz, desc)
- const char *name;
- uint32_t type;
- uint32_t descsz;
- const char *desc;
-{
- bool result = false;
-
- switch (type)
- {
- case NT_PRSTATUS:
- if (descsz < sizeof (struct elf_prstatus))
- /* Not enough data. */
- break;
-
- struct elf_prstatus *stat = (struct elf_prstatus *) desc;
-
- printf (" SIGINFO: signo: %d, code = %d, errno = %d\n"
- " signal: %hd, pending: %#08lx, holding: %#08lx\n"
- " pid: %d, ppid = %d, pgrp = %d, sid = %d\n"
- " utime: %6ld.%06lds, stime: %6ld.%06lds\n"
- " cutime: %6ld.%06lds, cstime: %6ld.%06lds\n"
- " eax: %08lx ebx: %08lx ecx: %08lx edx: %08lx\n"
- " esi: %08lx edi: %08lx ebp: %08lx esp: %08lx\n"
- " eip: %08lx eflags: %08lx, original eax: %08lx\n"
- " cs: %04lx ds: %04lx es: %04lx fs: %04lx gs: %04lx"
- " ss: %04lx\n\n"
-,
- stat->pr_info. si_signo,
- stat->pr_info. si_code,
- stat->pr_info. si_errno,
- stat->pr_cursig,
- stat->pr_sigpend, stat->pr_sighold,
- stat->pr_pid, stat->pr_ppid, stat->pr_pgrp, stat->pr_sid,
- stat->pr_utime.tv_sec, (long int) stat->pr_utime.tv_usec,
- stat->pr_stime.tv_sec, (long int) stat->pr_stime.tv_usec,
- stat->pr_cutime.tv_sec, (long int) stat->pr_cutime.tv_usec,
- stat->pr_cstime.tv_sec, (long int) stat->pr_cstime.tv_usec,
- stat->pr_reg[6], stat->pr_reg[0], stat->pr_reg[1],
- stat->pr_reg[2], stat->pr_reg[3], stat->pr_reg[4],
- stat->pr_reg[5], stat->pr_reg[15], stat->pr_reg[12],
- stat->pr_reg[14], stat->pr_reg[11], stat->pr_reg[13] & 0xffff,
- stat->pr_reg[7] & 0xffff, stat->pr_reg[8] & 0xffff,
- stat->pr_reg[9] & 0xffff, stat->pr_reg[10] & 0xffff,
- stat->pr_reg[16]);
-
- /* We handled this entry. */
- result = true;
- break;
-
- case NT_PRPSINFO:
- if (descsz < sizeof (struct elf_prpsinfo))
- /* Not enough data. */
- break;
-
- struct elf_prpsinfo *info = (struct elf_prpsinfo *) desc;
-
- printf (" state: %c (%hhd), zombie: %hhd, nice: %hhd\n"
- " flags: %08lx, uid: %hd, gid: %hd\n"
- " pid: %d, ppid: %d, pgrp: %d, sid: %d\n"
- " fname: %.16s\n"
- " args: %.80s\n\n",
- info->pr_sname, info->pr_state, info->pr_zomb, info->pr_nice,
- info->pr_flag, info->pr_uid, info->pr_gid,
- info->pr_pid, info->pr_ppid, info->pr_pgrp, info->pr_sid,
- info->pr_fname, info->pr_psargs);
-
- /* We handled this entry. */
- result = true;
- break;
-
- default:
- break;
- }
-
- return result;
-}
diff --git a/libebl/i386_destr.c b/libebl/i386_destr.c
deleted file mode 100644
index 23609496..00000000
--- a/libebl/i386_destr.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Destructor for i386 specific backend library.
- Copyright (C) 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_i386.h>
-
-
-void
-i386_destr (bh)
- Ebl *bh;
-{
- /* Nothing to do so far. */
-}
diff --git a/libebl/i386_init.c b/libebl/i386_init.c
deleted file mode 100644
index b53c57da..00000000
--- a/libebl/i386_init.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Initialization of i386 specific backend library.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_i386.h>
-
-
-int
-i386_init (elf, machine, eh, ehlen)
- Elf *elf;
- GElf_Half machine;
- Ebl *eh;
- size_t ehlen;
-{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return 1;
-
- /* We handle it. */
- eh->name = "Intel 80386";
- eh->reloc_type_name = i386_reloc_type_name;
- eh->reloc_type_check = i386_reloc_type_check;
- eh->reloc_valid_use = i386_reloc_valid_use;
- eh->gotpc_reloc_check = i386_gotpc_reloc_check;
- eh->core_note = i386_core_note;
- eh->destr = i386_destr;
-
- return 0;
-}
diff --git a/libebl/i386_symbol.c b/libebl/i386_symbol.c
deleted file mode 100644
index fc70e506..00000000
--- a/libebl/i386_symbol.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* i386 specific symbolic name handling.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <elf.h>
-#include <stddef.h>
-
-#include <libebl_i386.h>
-
-
-/* Return of the backend. */
-const char *
-i386_backend_name (void)
-{
- return "i386";
-}
-
-
-/* Relocation mapping table. */
-static struct
-{
- const char *name;
- enum { both = 0, rel = 1, exec = 2 } appear;
-} reloc_map_table[] =
- {
- [R_386_NONE] = { "R_386_NONE", both },
- [R_386_32] = { "R_386_32", both },
- [R_386_PC32] = { "R_386_PC32", rel },
- [R_386_GOT32] = { "R_386_GOT32", rel },
- [R_386_PLT32] = { "R_386_PLT32", rel },
- [R_386_COPY] = { "R_386_COPY", exec },
- [R_386_GLOB_DAT] = { "R_386_GLOB_DAT", exec },
- [R_386_JMP_SLOT] = { "R_386_JMP_SLOT", exec },
- [R_386_RELATIVE] = { "R_386_RELATIVE", exec },
- [R_386_GOTOFF] = { "R_386_GOTOFF", rel },
- [R_386_GOTPC] = { "R_386_GOTPC", rel },
- [R_386_32PLT] = { "R_386_32PLT", rel },
- [R_386_TLS_TPOFF] = { "R_386_TLS_TPOFF", rel },
- [R_386_TLS_IE] = { "R_386_TLS_IE", rel },
- [R_386_TLS_GOTIE] = { "R_386_TLS_GOTIE", rel },
- [R_386_TLS_LE] = { "R_386_TLS_LE", rel },
- [R_386_TLS_GD] = { "R_386_TLS_GD", rel },
- [R_386_TLS_LDM] = { "R_386_TLS_LDM", rel },
- [R_386_16] = { "R_386_16", rel },
- [R_386_PC16] = { "R_386_PC16", rel },
- [R_386_8] = { "R_386_8", rel },
- [R_386_PC8] = { "R_386_PC8", rel },
- [R_386_TLS_GD_32] = { "R_386_TLS_GD_32", rel },
- [R_386_TLS_GD_PUSH] = { "R_386_TLS_GD_PUSH", rel },
- [R_386_TLS_GD_CALL] = { "R_386_TLS_GD_CALL", rel },
- [R_386_TLS_GD_POP] = { "R_386_TLS_GD_POP", rel },
- [R_386_TLS_LDM_32] = { "R_386_TLS_LDM_32", rel },
- [R_386_TLS_LDM_PUSH] = { "R_386_TLS_LDM_PUSH", rel },
- [R_386_TLS_LDM_CALL] = { "R_386_TLS_LDM_CALL", rel },
- [R_386_TLS_LDM_POP] = { "R_386_TLS_LDM_POP", rel },
- [R_386_TLS_LDO_32] = { "R_386_TLS_LDO_32", rel },
- [R_386_TLS_IE_32] = { "R_386_TLS_IE_32", rel },
- [R_386_TLS_LE_32] = { "R_386_TLS_LE_32", rel },
- [R_386_TLS_DTPMOD32] = { "R_386_TLS_DTPMOD32", rel },
- [R_386_TLS_DTPOFF32] = { "R_386_TLS_DTPOFF32", rel },
- [R_386_TLS_TPOFF32] = { "R_386_TLS_TPOFF32", rel }
- };
-
-
-/* Determine relocation type string for x86. */
-const char *
-i386_reloc_type_name (int type, char *buf, size_t len)
-{
- if (type < 0 || type >= R_386_NUM)
- return NULL;
-
- return reloc_map_table[type].name;
-}
-
-
-/* Check for correct relocation type. */
-bool
-i386_reloc_type_check (int type)
-{
- return (type >= R_386_NONE && type < R_386_NUM
- && reloc_map_table[type].name != NULL) ? true : false;
-}
-
-
-/* Check for correct relocation type use. */
-bool
-i386_reloc_valid_use (Elf *elf, int type)
-{
- if (type < R_386_NONE || type >= R_386_NUM
- || reloc_map_table[type].name == NULL)
- return false;
-
- Elf32_Ehdr *ehdr = elf32_getehdr (elf);
- assert (ehdr != NULL);
-
- if (reloc_map_table[type].appear == rel)
- return ehdr->e_type == ET_REL;
-
- if (reloc_map_table[type].appear == exec)
- return ehdr->e_type != ET_REL;
-
- assert (reloc_map_table[type].appear == both);
- return true;
-}
-
-
-/* Return true if the symbol type is that referencing the GOT. */
-bool
-i386_gotpc_reloc_check (Elf *elf, int type)
-{
- return type == R_386_GOTPC;
-}
diff --git a/libebl/ia64_destr.c b/libebl/ia64_destr.c
deleted file mode 100644
index a48302c8..00000000
--- a/libebl/ia64_destr.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Destructor for IA-64 specific backend library.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_ia64.h>
-
-
-void
-ia64_destr (bh)
- Ebl *bh;
-{
- /* Nothing to do so far. */
-}
diff --git a/libebl/ia64_init.c b/libebl/ia64_init.c
deleted file mode 100644
index 30925acb..00000000
--- a/libebl/ia64_init.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Initialization of IA-64 specific backend library.
- Copyright (C) 2002, 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_ia64.h>
-
-
-int
-ia64_init (elf, machine, eh, ehlen)
- Elf *elf;
- GElf_Half machine;
- Ebl *eh;
- size_t ehlen;
-{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return 1;
-
- /* We handle it. */
- eh->name = "Intel IA-64";
- eh->reloc_type_name = ia64_reloc_type_name;
- eh->reloc_type_check = ia64_reloc_type_check;
- eh->segment_type_name = ia64_segment_type_name;
- eh->dynamic_tag_name = ia64_dynamic_tag_name;
- eh->destr = ia64_destr;
-
- return 0;
-}
diff --git a/libebl/ia64_symbol.c b/libebl/ia64_symbol.c
deleted file mode 100644
index fe4c7b71..00000000
--- a/libebl/ia64_symbol.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/* IA-64 specific symbolic name handling.
- Copyright (C) 2002, 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <elf.h>
-#include <stddef.h>
-
-#include <libebl_ia64.h>
-
-
-/* Return of the backend. */
-const char *
-ia64_backend_name (void)
-{
- return "ia64";
-}
-
-
-/* Relocation mapping table. */
-static const char *reloc_map_table[] =
- {
- [R_IA64_NONE] = "R_IA64_NONE",
- [R_IA64_IMM14] = "R_IA64_IMM14",
- [R_IA64_IMM22] = "R_IA64_IMM22",
- [R_IA64_IMM64] = "R_IA64_IMM64",
- [R_IA64_DIR32MSB] = "R_IA64_DIR32MSB",
- [R_IA64_DIR32LSB] = "R_IA64_DIR32LSB",
- [R_IA64_DIR64MSB] = "R_IA64_DIR64MSB",
- [R_IA64_DIR64LSB] = "R_IA64_DIR64LSB",
- [R_IA64_GPREL22] = "R_IA64_GPREL22",
- [R_IA64_GPREL64I] = "R_IA64_GPREL64I",
- [R_IA64_GPREL32MSB] = "R_IA64_GPREL32MSB",
- [R_IA64_GPREL32LSB] = "R_IA64_GPREL32LSB",
- [R_IA64_GPREL64MSB] = "R_IA64_GPREL64MSB",
- [R_IA64_GPREL64LSB] = "R_IA64_GPREL64LSB",
- [R_IA64_LTOFF22] = "R_IA64_LTOFF22",
- [R_IA64_LTOFF64I] = "R_IA64_LTOFF64I",
- [R_IA64_PLTOFF22] = "R_IA64_PLTOFF22",
- [R_IA64_PLTOFF64I] = "R_IA64_PLTOFF64I",
- [R_IA64_PLTOFF64MSB] = "R_IA64_PLTOFF64MSB",
- [R_IA64_PLTOFF64LSB] = "R_IA64_PLTOFF64LSB",
- [R_IA64_FPTR64I] = "R_IA64_FPTR64I",
- [R_IA64_FPTR32MSB] = "R_IA64_FPTR32MSB",
- [R_IA64_FPTR32LSB] = "R_IA64_FPTR32LSB",
- [R_IA64_FPTR64MSB] = "R_IA64_FPTR64MSB",
- [R_IA64_FPTR64LSB] = "R_IA64_FPTR64LSB",
- [R_IA64_PCREL60B] = "R_IA64_PCREL60B",
- [R_IA64_PCREL21B] = "R_IA64_PCREL21B",
- [R_IA64_PCREL21M] = "R_IA64_PCREL21M",
- [R_IA64_PCREL21F] = "R_IA64_PCREL21F",
- [R_IA64_PCREL32MSB] = "R_IA64_PCREL32MSB",
- [R_IA64_PCREL32LSB] = "R_IA64_PCREL32LSB",
- [R_IA64_PCREL64MSB] = "R_IA64_PCREL64MSB",
- [R_IA64_PCREL64LSB] = "R_IA64_PCREL64LSB",
- [R_IA64_LTOFF_FPTR22] = "R_IA64_LTOFF_FPTR22",
- [R_IA64_LTOFF_FPTR64I] = "R_IA64_LTOFF_FPTR64I",
- [R_IA64_LTOFF_FPTR32MSB] = "R_IA64_LTOFF_FPTR32MSB",
- [R_IA64_LTOFF_FPTR32LSB] = "R_IA64_LTOFF_FPTR32LSB",
- [R_IA64_LTOFF_FPTR64MSB] = "R_IA64_LTOFF_FPTR64MSB",
- [R_IA64_LTOFF_FPTR64LSB] = "R_IA64_LTOFF_FPTR64LSB",
- [R_IA64_SEGREL32MSB] = "R_IA64_SEGREL32MSB",
- [R_IA64_SEGREL32LSB] = "R_IA64_SEGREL32LSB",
- [R_IA64_SEGREL64MSB] = "R_IA64_SEGREL64MSB",
- [R_IA64_SEGREL64LSB] = "R_IA64_SEGREL64LSB",
- [R_IA64_SECREL32MSB] = "R_IA64_SECREL32MSB",
- [R_IA64_SECREL32LSB] = "R_IA64_SECREL32LSB",
- [R_IA64_SECREL64MSB] = "R_IA64_SECREL64MSB",
- [R_IA64_SECREL64LSB] = "R_IA64_SECREL64LSB",
- [R_IA64_REL32MSB] = "R_IA64_REL32MSB",
- [R_IA64_REL32LSB] = "R_IA64_REL32LSB",
- [R_IA64_REL64MSB] = "R_IA64_REL64MSB",
- [R_IA64_REL64LSB] = "R_IA64_REL64LSB",
- [R_IA64_LTV32MSB] = "R_IA64_LTV32MSB",
- [R_IA64_LTV32LSB] = "R_IA64_LTV32LSB",
- [R_IA64_LTV64MSB] = "R_IA64_LTV64MSB",
- [R_IA64_LTV64LSB] = "R_IA64_LTV64LSB",
- [R_IA64_PCREL21BI] = "R_IA64_PCREL21BI",
- [R_IA64_PCREL22] = "R_IA64_PCREL22",
- [R_IA64_PCREL64I] = "R_IA64_PCREL64I",
- [R_IA64_IPLTMSB] = "R_IA64_IPLTMSB",
- [R_IA64_IPLTLSB] = "R_IA64_IPLTLSB",
- [R_IA64_COPY] = "R_IA64_COPY",
- [R_IA64_SUB] = "R_IA64_SUB",
- [R_IA64_LTOFF22X] = "R_IA64_LTOFF22X",
- [R_IA64_LDXMOV] = "R_IA64_LDXMOV",
- [R_IA64_TPREL14] = "R_IA64_TPREL14",
- [R_IA64_TPREL22] = "R_IA64_TPREL22",
- [R_IA64_TPREL64I] = "R_IA64_TPREL64I",
- [R_IA64_TPREL64MSB] = "R_IA64_TPREL64MSB",
- [R_IA64_TPREL64LSB] = "R_IA64_TPREL64LSB",
- [R_IA64_LTOFF_TPREL22] = "R_IA64_LTOFF_TPREL22",
- [R_IA64_DTPMOD64MSB] = "R_IA64_DTPMOD64MSB",
- [R_IA64_DTPMOD64LSB] = "R_IA64_DTPMOD64LSB",
- [R_IA64_LTOFF_DTPMOD22] = "R_IA64_LTOFF_DTPMOD22",
- [R_IA64_DTPREL14] = "R_IA64_DTPREL14",
- [R_IA64_DTPREL22] = "R_IA64_DTPREL22",
- [R_IA64_DTPREL64I] = "R_IA64_DTPREL64I",
- [R_IA64_DTPREL32MSB] = "R_IA64_DTPREL32MSB",
- [R_IA64_DTPREL32LSB] = "R_IA64_DTPREL32LSB",
- [R_IA64_DTPREL64MSB] = "R_IA64_DTPREL64MSB",
- [R_IA64_DTPREL64LSB] = "R_IA64_DTPREL64LSB",
- [R_IA64_LTOFF_DTPREL22] = "R_IA64_LTOFF_DTPREL22"
- };
-
-
-/* Determine relocation type string for IA-64. */
-const char *
-ia64_reloc_type_name (int type, char *buf, size_t len)
-{
- if (type < 0
- || ((size_t) type
- >= sizeof (reloc_map_table) / sizeof (reloc_map_table[0])))
- return NULL;
-
- return reloc_map_table[type];
-}
-
-
-/* Check for correct relocation type. */
-bool
-ia64_reloc_type_check (int type)
-{
- return (type >= R_IA64_NONE
- && ((size_t) type
- < sizeof (reloc_map_table) / sizeof (reloc_map_table[0]))
- && reloc_map_table[type] != NULL) ? true : false;
-}
-
-
-const char *
-ia64_segment_type_name (int segment, char *buf, size_t len)
-{
- switch (segment)
- {
- case PT_IA_64_ARCHEXT:
- return "IA_64_ARCHEXT";
- case PT_IA_64_UNWIND:
- return "IA_64_UNWIND";
- case PT_IA_64_HP_OPT_ANOT:
- return "IA_64_HP_OPT_ANOT";
- case PT_IA_64_HP_HSL_ANOT:
- return "IA_64_HP_HSL_ANOT";
- case PT_IA_64_HP_STACK:
- return "IA_64_HP_STACK";
- default:
- break;
- }
- return NULL;
-}
-
-
-const char *
-ia64_dynamic_tag_name (int64_t tag, char *buf, size_t len)
-{
- switch (tag)
- {
- case DT_IA_64_PLT_RESERVE:
- return "IA_64_PLT_RESERVE";
- default:
- break;
- }
- return NULL;
-}
diff --git a/libebl/libebl.h b/libebl/libebl.h
deleted file mode 100644
index 392350ac..00000000
--- a/libebl/libebl.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/* Interface for libebl.
- Copyright (C) 2000, 2001, 2002, 2004 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBEBL_H
-#define _LIBEBL_H 1
-
-#include <gelf.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdint.h>
-
-#include <elf-knowledge.h>
-
-
-/* Backend handle. */
-typedef struct ebl
-{
- /* Machine name. */
- const char *name;
-
- /* Emulation name. */
- const char *emulation;
-
- /* The libelf handle (if known). */
- Elf *elf;
-
- /* Return symbol representaton of object file type. */
- const char *(*object_type_name) (int, char *, size_t);
-
- /* Return symbolic representation of relocation type. */
- const char *(*reloc_type_name) (int, char *, size_t);
-
- /* Check relocation type. */
- bool (*reloc_type_check) (int);
-
- /* Check relocation type use. */
- bool (*reloc_valid_use) (Elf *, int);
-
- /* Return true if the symbol type is that referencing the GOT. */
- bool (*gotpc_reloc_check) (Elf *, int);
-
- /* Return symbolic representation of segment type. */
- const char *(*segment_type_name) (int, char *, size_t);
-
- /* Return symbolic representation of section type. */
- const char *(*section_type_name) (int, char *, size_t);
-
- /* Return section name. */
- const char *(*section_name) (int, int, char *, size_t);
-
- /* Return next machine flag name. */
- const char *(*machine_flag_name) (GElf_Word *);
-
- /* Check whether machine flags are valid. */
- bool (*machine_flag_check) (GElf_Word);
-
- /* Return symbolic representation of symbol type. */
- const char *(*symbol_type_name) (int, char *, size_t);
-
- /* Return symbolic representation of symbol binding. */
- const char *(*symbol_binding_name) (int, char *, size_t);
-
- /* Return symbolic representation of dynamic tag. */
- const char *(*dynamic_tag_name) (int64_t, char *, size_t);
-
- /* Check dynamic tag. */
- bool (*dynamic_tag_check) (int64_t);
-
- /* Combine section header flags values. */
- GElf_Word (*sh_flags_combine) (GElf_Word, GElf_Word);
-
- /* Return symbolic representation of OS ABI. */
- const char *(*osabi_name) (int, char *, size_t);
-
- /* Name of a note entry type for core files. */
- const char *(*core_note_type_name) (uint32_t, char *, size_t);
-
- /* Name of a note entry type for object files. */
- const char *(*object_note_type_name) (uint32_t, char *, size_t);
-
- /* Handle core note. */
- bool (*core_note) (const char *, uint32_t, uint32_t, const char *);
-
- /* Handle object file note. */
- bool (*object_note) (const char *, uint32_t, uint32_t, const char *);
-
- /* Check section name for being that of a debug informatino section. */
- bool (*debugscn_p) (const char *);
-
- /* Destructor for ELF backend handle. */
- void (*destr) (struct ebl *);
-
- /* Internal data. */
- void *dlhandle;
-} Ebl;
-
-
-/* Get backend handle for object associated with ELF handle. */
-extern Ebl *ebl_openbackend (Elf *elf);
-/* Similar but without underlying ELF file. */
-extern Ebl *ebl_openbackend_machine (GElf_Half machine);
-/* Similar but with emulation name given. */
-extern Ebl *ebl_openbackend_emulation (const char *emulation);
-
-/* Free resources allocated for backend handle. */
-extern void ebl_closebackend (Ebl *bh);
-
-
-/* Function to call the callback functions including default ELF
- handling. */
-
-/* Return backend name. */
-extern const char *ebl_backend_name (Ebl *ebl);
-
-/* Return relocation type name. */
-extern const char *ebl_object_type_name (Ebl *ebl, int object,
- char *buf, size_t len);
-
-/* Return relocation type name. */
-extern const char *ebl_reloc_type_name (Ebl *ebl, int reloc,
- char *buf, size_t len);
-
-/* Check relocation type. */
-extern bool ebl_reloc_type_check (Ebl *ebl, int reloc);
-
-/* Check relocation type use. */
-extern bool ebl_reloc_valid_use (Ebl *ebl, int reloc);
-
-/* Return true if the symbol type is that referencing the GOT. E.g.,
- R_386_GOTPC. */
-extern bool ebl_gotpc_reloc_check (Ebl *ebl, int reloc);
-
-/* Return segment type name. */
-extern const char *ebl_segment_type_name (Ebl *ebl, int segment,
- char *buf, size_t len);
-
-/* Return section type name. */
-extern const char *ebl_section_type_name (Ebl *ebl, int section,
- char *buf, size_t len);
-
-/* Return section name. */
-extern const char *ebl_section_name (Ebl *ebl, int section, int xsection,
- char *buf, size_t len,
- const char *scnnames[], size_t shnum);
-
-/* Return machine flag names. */
-extern const char *ebl_machine_flag_name (Ebl *ebl, GElf_Word flags,
- char *buf, size_t len);
-
-/* Check whether machine flag is valid. */
-extern bool ebl_machine_flag_check (Ebl *ebl, GElf_Word flags);
-
-/* Return symbol type name. */
-extern const char *ebl_symbol_type_name (Ebl *ebl, int symbol,
- char *buf, size_t len);
-
-/* Return symbol binding name. */
-extern const char *ebl_symbol_binding_name (Ebl *ebl, int binding,
- char *buf, size_t len);
-
-/* Return dynamic tag name. */
-extern const char *ebl_dynamic_tag_name (Ebl *ebl, int64_t tag,
- char *buf, size_t len);
-
-/* Check dynamic tag. */
-extern bool ebl_dynamic_tag_check (Ebl *ebl, int64_t tag);
-
-/* Return combined section header flags value. */
-extern GElf_Word ebl_sh_flags_combine (Ebl *ebl, GElf_Word flags1,
- GElf_Word flags2);
-
-/* Return symbolic representation of OS ABI. */
-extern const char *ebl_osabi_name (Ebl *ebl, int osabi, char *buf, size_t len);
-
-
-/* Return name of the note section type for a core file. */
-extern const char *ebl_core_note_type_name (Ebl *ebl, uint32_t type, char *buf,
- size_t len);
-
-/* Return name of the note section type for an object file. */
-extern const char *ebl_object_note_type_name (Ebl *ebl, uint32_t type,
- char *buf, size_t len);
-
-/* Print information about core note if available. */
-extern void ebl_core_note (Ebl *ebl, const char *name, uint32_t type,
- uint32_t descsz, const char *desc);
-
-/* Print information about object note if available. */
-extern void ebl_object_note (Ebl *ebl, const char *name, uint32_t type,
- uint32_t descsz, const char *desc);
-
-/* Check section name for being that of a debug informatino section. */
-extern bool ebl_debugscn_p (Ebl *ebl, const char *name);
-
-
-/* ELF string table handling. */
-struct Ebl_Strtab;
-struct Ebl_Strent;
-
-/* Create new ELF string table object in memory. */
-extern struct Ebl_Strtab *ebl_strtabinit (bool nullstr);
-
-/* Free resources allocated for ELF string table ST. */
-extern void ebl_strtabfree (struct Ebl_Strtab *st);
-
-/* Add string STR (length LEN is != 0) to ELF string table ST. */
-extern struct Ebl_Strent *ebl_strtabadd (struct Ebl_Strtab *st,
- const char *str, size_t len);
-
-/* Finalize string table ST and store size and memory location information
- in DATA. */
-extern void ebl_strtabfinalize (struct Ebl_Strtab *st, Elf_Data *data);
-
-/* Get offset in string table for string associated with SE. */
-extern size_t ebl_strtaboffset (struct Ebl_Strent *se);
-
-/* Return the string associated with SE. */
-extern const char *ebl_string (struct Ebl_Strent *se);
-
-
-/* ELF wide char string table handling. */
-struct Ebl_WStrtab;
-struct Ebl_WStrent;
-
-/* Create new ELF wide char string table object in memory. */
-extern struct Ebl_WStrtab *ebl_wstrtabinit (bool nullstr);
-
-/* Free resources allocated for ELF wide char string table ST. */
-extern void ebl_wstrtabfree (struct Ebl_WStrtab *st);
-
-/* Add string STR (length LEN is != 0) to ELF string table ST. */
-extern struct Ebl_WStrent *ebl_wstrtabadd (struct Ebl_WStrtab *st,
- const wchar_t *str, size_t len);
-
-/* Finalize string table ST and store size and memory location information
- in DATA. */
-extern void ebl_wstrtabfinalize (struct Ebl_WStrtab *st, Elf_Data *data);
-
-/* Get offset in wide char string table for string associated with SE. */
-extern size_t ebl_wstrtaboffset (struct Ebl_WStrent *se);
-
-
-/* Generic string table handling. */
-struct Ebl_GStrtab;
-struct Ebl_GStrent;
-
-/* Create new string table object in memory. */
-extern struct Ebl_GStrtab *ebl_gstrtabinit (unsigned int width, bool nullstr);
-
-/* Free resources allocated for string table ST. */
-extern void ebl_gstrtabfree (struct Ebl_GStrtab *st);
-
-/* Add string STR (length LEN is != 0) to string table ST. */
-extern struct Ebl_GStrent *ebl_gstrtabadd (struct Ebl_GStrtab *st,
- const char *str, size_t len);
-
-/* Finalize string table ST and store size and memory location information
- in DATA. */
-extern void ebl_gstrtabfinalize (struct Ebl_GStrtab *st, Elf_Data *data);
-
-/* Get offset in wide char string table for string associated with SE. */
-extern size_t ebl_gstrtaboffset (struct Ebl_GStrent *se);
-
-#endif /* libebl.h */
diff --git a/libebl/libeblP.h b/libebl/libeblP.h
deleted file mode 100644
index 55ace24d..00000000
--- a/libebl/libeblP.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Internal definitions for interface for libebl.
- Copyright (C) 2000, 2001, 2002, 2004 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBEBLP_H
-#define _LIBEBLP_H 1
-
-#include <gelf.h>
-#include <libebl.h>
-//#include <libintl.h>
-
-
-/* Type of the initialization functions in the backend modules. */
-typedef int (*ebl_bhinit_t) (Elf *, GElf_Half, Ebl *, size_t);
-
-
-/* gettext helper macros. */
-#define _(Str) dgettext ("elfutils", Str)
-
-#endif /* libeblP.h */
diff --git a/libebl/libebl_alpha.h b/libebl/libebl_alpha.h
deleted file mode 100644
index 36d7dadc..00000000
--- a/libebl/libebl_alpha.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Interface for libebl_alpha module.
- Copyright (C) 2002 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBEBL_ALPHA_H
-#define _LIBEBL_ALPHA_H 1
-
-#include <libeblP.h>
-
-
-/* Constructor. */
-extern int alpha_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
-
-/* Destructor. */
-extern void alpha_destr (Ebl *bh);
-
-
-/* Function to get relocation type name. */
-extern const char *alpha_reloc_type_name (int type, char *buf, size_t len);
-
-/* Check relocation type. */
-extern bool alpha_reloc_type_check (int type);
-
-#endif /* libebl_alpha.h */
diff --git a/libebl/libebl_alpha.map b/libebl/libebl_alpha.map
deleted file mode 100644
index aa66ad75..00000000
--- a/libebl/libebl_alpha.map
+++ /dev/null
@@ -1,11 +0,0 @@
-ELFUTILS_1.0 {
- global:
- alpha_backend_name;
- alpha_destr;
- alpha_init;
- alpha_reloc_type_check;
- alpha_reloc_type_name;
-
- local:
- *;
-};
diff --git a/libebl/libebl_arm.h b/libebl/libebl_arm.h
deleted file mode 100644
index 8aade439..00000000
--- a/libebl/libebl_arm.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Interface for libebl_arm module.
- Copyright (C) 2002 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBEBL_ARM_H
-#define _LIBEBL_ARM_H 1
-
-#include <libeblP.h>
-
-
-/* Constructor. */
-extern int arm_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
-
-/* Destructor. */
-extern void arm_destr (Ebl *bh);
-
-
-/* Function to get relocation type name. */
-extern const char *arm_reloc_type_name (int type, char *buf, size_t len);
-
-/* Check relocation type. */
-extern bool arm_reloc_type_check (int type);
-
-#endif /* libebl_arm.h */
diff --git a/libebl/libebl_arm.map b/libebl/libebl_arm.map
deleted file mode 100644
index d389526c..00000000
--- a/libebl/libebl_arm.map
+++ /dev/null
@@ -1,11 +0,0 @@
-ELFUTILS_1.0 {
- global:
- arm_backend_name;
- arm_destr;
- arm_init;
- arm_reloc_type_check;
- arm_reloc_type_name;
-
- local:
- *;
-};
diff --git a/libebl/libebl_i386.h b/libebl/libebl_i386.h
deleted file mode 100644
index ed719660..00000000
--- a/libebl/libebl_i386.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Interface for libebl_i386 module.
- Copyright (C) 2000, 2001, 2002, 2003 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBEBL_I386_H
-#define _LIBEBL_I386_H 1
-
-#include <libeblP.h>
-
-
-/* Constructor. */
-extern int i386_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
-
-/* Destructor. */
-extern void i386_destr (Ebl *bh);
-
-
-/* Function to get relocation type name. */
-extern const char *i386_reloc_type_name (int type, char *buf, size_t len);
-
-/* Check relocation type. */
-extern bool i386_reloc_type_check (int type);
-
-/* Check relocation type use. */
-extern bool i386_reloc_valid_use (Elf *elf, int type);
-
-/* Check relocation type use. */
-extern bool i386_gotpc_reloc_check (Elf *elf, int type);
-
-/* Code note handling. */
-extern bool i386_core_note (const char *name, uint32_t type, uint32_t descsz,
- const char *desc);
-
-#endif /* libebl_i386.h */
diff --git a/libebl/libebl_i386.map b/libebl/libebl_i386.map
deleted file mode 100644
index 38513247..00000000
--- a/libebl/libebl_i386.map
+++ /dev/null
@@ -1,12 +0,0 @@
-ELFUTILS_1.0 {
- global:
- i386_backend_name;
- i386_core_note;
- i386_destr;
- i386_init;
- i386_reloc_type_check;
- i386_reloc_type_name;
-
- local:
- *;
-};
diff --git a/libebl/libebl_ia64.h b/libebl/libebl_ia64.h
deleted file mode 100644
index 19e73fe8..00000000
--- a/libebl/libebl_ia64.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Interface for libebl_ia64 module.
- Copyright (C) 2002, 2003 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBEBL_IA64_H
-#define _LIBEBL_IA64_H 1
-
-#include <libeblP.h>
-
-
-/* Constructor. */
-extern int ia64_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
-
-/* Destructor. */
-extern void ia64_destr (Ebl *bh);
-
-
-/* Function to get relocation type name. */
-extern const char *ia64_reloc_type_name (int type, char *buf, size_t len);
-
-/* Check relocation type. */
-extern bool ia64_reloc_type_check (int type);
-
-/* Name of segment type. */
-extern const char *ia64_segment_type_name (int segment, char *buf, size_t len);
-
-/* Name of dynamic tag. */
-extern const char *ia64_dynamic_tag_name (int64_t tag, char *buf, size_t len);
-
-#endif /* libebl_ia64.h */
diff --git a/libebl/libebl_ia64.map b/libebl/libebl_ia64.map
deleted file mode 100644
index f67042c6..00000000
--- a/libebl/libebl_ia64.map
+++ /dev/null
@@ -1,11 +0,0 @@
-ELFUTILS_1.0 {
- global:
- ia64_backend_name;
- ia64_destr;
- ia64_init;
- ia64_reloc_type_check;
- ia64_reloc_type_name;
-
- local:
- *;
-};
diff --git a/libebl/libebl_mips.h b/libebl/libebl_mips.h
deleted file mode 100644
index 167eab30..00000000
--- a/libebl/libebl_mips.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Interface for libebl_mips module.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBEBL_MIPS_H
-#define _LIBEBL_MIPS_H 1
-
-#include <libeblP.h>
-
-
-/* Constructor. */
-extern int mips_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
-
-/* Destructor. */
-extern void mips_destr (Ebl *bh);
-
-
-/* Function to get relocation type name. */
-extern const char *mips_reloc_type_name (int type, char *buf, size_t len);
-
-/* Function to get segment type name. */
-extern const char *mips_segment_type_name (int type, char *buf, size_t len);
-
-/* Function to get setion type name. */
-extern const char *mips_section_type_name (int type, char *buf, size_t len);
-
-/* Function to get machine flag name. */
-extern const char *mips_machine_flag_name (Elf64_Word *flags);
-
-/* Function to get dynamic tag name. */
-extern const char *mips_dynamic_tag_name (int64_t tag, char *buf, size_t len);
-
-#endif /* libebl_mips.h */
diff --git a/libebl/libebl_mips.map b/libebl/libebl_mips.map
deleted file mode 100644
index 9ddd366b..00000000
--- a/libebl/libebl_mips.map
+++ /dev/null
@@ -1,14 +0,0 @@
-ELFUTILS_1.0 {
- global:
- mips_backend_name;
- mips_destr;
- mips_dynamic_tag_name;
- mips_init;
- mips_machine_flag_name;
- mips_reloc_type_name;
- mips_section_type_name;
- mips_segment_type_name;
-
- local:
- *;
-};
diff --git a/libebl/libebl_ppc.h b/libebl/libebl_ppc.h
deleted file mode 100644
index 880cd399..00000000
--- a/libebl/libebl_ppc.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Interface for libebl_PPC module.
- Copyright (C) 2004 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBEBL_PPC_H
-#define _LIBEBL_PPC_H 1
-
-#include <libeblP.h>
-
-
-/* Constructor. */
-extern int ppc_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
-
-/* Destructor. */
-extern void ppc_destr (Ebl *bh);
-
-
-/* Function to get relocation type name. */
-extern const char *ppc_reloc_type_name (int type, char *buf, size_t len);
-
-/* Check relocation type. */
-extern bool ppc_reloc_type_check (int type);
-
-/* Check relocation type use. */
-extern bool ppc_reloc_valid_use (Elf *elf, int type);
-
-/* Code note handling. */
-extern bool ppc_core_note (const char *name, uint32_t type, uint32_t descsz,
- const char *desc);
-
-#endif /* libebl_ppc.h */
diff --git a/libebl/libebl_ppc.map b/libebl/libebl_ppc.map
deleted file mode 100644
index 03bbfcc4..00000000
--- a/libebl/libebl_ppc.map
+++ /dev/null
@@ -1,11 +0,0 @@
-ELFUTILS_1.0 {
- global:
- ppc_backend_name;
- ppc_destr;
- ppc_init;
- ppc_reloc_type_check;
- ppc_reloc_type_name;
-
- local:
- *;
-};
diff --git a/libebl/libebl_ppc64.h b/libebl/libebl_ppc64.h
deleted file mode 100644
index 3ad3e8cf..00000000
--- a/libebl/libebl_ppc64.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Interface for libebl_PPC64 module.
- Copyright (C) 2004 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBEBL_PPC64_H
-#define _LIBEBL_PPC64_H 1
-
-#include <libeblP.h>
-
-
-/* Constructor. */
-extern int ppc64_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
-
-/* Destructor. */
-extern void ppc64_destr (Ebl *bh);
-
-
-/* Function to get relocation type name. */
-extern const char *ppc64_reloc_type_name (int type, char *buf, size_t len);
-
-/* Check relocation type. */
-extern bool ppc64_reloc_type_check (int type);
-
-/* Check relocation type use. */
-extern bool ppc64_reloc_valid_use (Elf *elf, int type);
-
-/* Code note handling. */
-extern bool ppc64_core_note (const char *name, uint32_t type, uint32_t descsz,
- const char *desc);
-
-/* Name of dynamic tag. */
-extern const char *ppc64_dynamic_tag_name (int64_t tag, char *buf, size_t len);
-
-#endif /* libebl_ppc.h */
diff --git a/libebl/libebl_ppc64.map b/libebl/libebl_ppc64.map
deleted file mode 100644
index 2d0d556a..00000000
--- a/libebl/libebl_ppc64.map
+++ /dev/null
@@ -1,11 +0,0 @@
-ELFUTILS_1.0 {
- global:
- ppc64_backend_name;
- ppc64_destr;
- ppc64_init;
- ppc64_reloc_type_check;
- ppc64_reloc_type_name;
-
- local:
- *;
-};
diff --git a/libebl/libebl_sh.h b/libebl/libebl_sh.h
deleted file mode 100644
index 40e2a8c2..00000000
--- a/libebl/libebl_sh.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Interface for libebl_sh module.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBEBL_SH_H
-#define _LIBEBL_SH_H 1
-
-#include <libeblP.h>
-
-
-/* Constructor. */
-extern int sh_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
-
-/* Destructor. */
-extern void sh_destr (Ebl *bh);
-
-
-/* Function to get relocation type name. */
-extern const char *sh_reloc_type_name (int type, char *buf, size_t len);
-
-#endif /* libebl_sh.h */
diff --git a/libebl/libebl_sh.map b/libebl/libebl_sh.map
deleted file mode 100644
index 252720a9..00000000
--- a/libebl/libebl_sh.map
+++ /dev/null
@@ -1,10 +0,0 @@
-ELFUTILS_1.0 {
- global:
- sh_backend_name;
- sh_destr;
- sh_init;
- sh_reloc_type_name;
-
- local:
- *;
-};
diff --git a/libebl/libebl_sparc.h b/libebl/libebl_sparc.h
deleted file mode 100644
index c06228ed..00000000
--- a/libebl/libebl_sparc.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Interface for libebl_sparc module.
- Copyright (C) 2002 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBEBL_SPARC_H
-#define _LIBEBL_SPARC_H 1
-
-#include <libeblP.h>
-
-
-/* Constructor. */
-extern int sparc_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
-
-/* Destructor. */
-extern void sparc_destr (Ebl *bh);
-
-
-/* Function to get relocation type name. */
-extern const char *sparc_reloc_type_name (int type, char *buf, size_t len);
-
-/* Check relocation type. */
-extern bool sparc_reloc_type_check (int type);
-
-/* Code note handling. */
-extern bool sparc_core_note (const char *name, uint32_t type, uint32_t descsz,
- const char *desc);
-
-#endif /* libebl_sparc.h */
diff --git a/libebl/libebl_sparc.map b/libebl/libebl_sparc.map
deleted file mode 100644
index 7ca60383..00000000
--- a/libebl/libebl_sparc.map
+++ /dev/null
@@ -1,11 +0,0 @@
-ELFUTILS_1.0 {
- global:
- sparc_backend_name;
- sparc_destr;
- sparc_init;
- sparc_reloc_type_check;
- sparc_reloc_type_name;
-
- local:
- *;
-};
diff --git a/libebl/libebl_x86_64.h b/libebl/libebl_x86_64.h
deleted file mode 100644
index b68124ab..00000000
--- a/libebl/libebl_x86_64.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Interface for libebl_x86_64 module.
- Copyright (C) 2002 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _LIBEBL_X86_64_H
-#define _LIBEBL_X86_64_H 1
-
-#include <libeblP.h>
-
-
-/* Constructor. */
-extern int x86_64_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
-
-/* Destructor. */
-extern void x86_64_destr (Ebl *bh);
-
-
-/* Function to get relocation type name. */
-extern const char *x86_64_reloc_type_name (int type, char *buf, size_t len);
-
-/* Check relocation type. */
-extern bool x86_64_reloc_type_check (int type);
-
-/* Check relocation type use. */
-extern bool x86_64_reloc_valid_use (Elf *elf, int type);
-
-/* Code note handling. */
-extern bool x86_64_core_note (const char *name, uint32_t type, uint32_t descsz,
- const char *desc);
-
-#endif /* libebl_x86_64.h */
diff --git a/libebl/libebl_x86_64.map b/libebl/libebl_x86_64.map
deleted file mode 100644
index bf07cb9c..00000000
--- a/libebl/libebl_x86_64.map
+++ /dev/null
@@ -1,11 +0,0 @@
-ELFUTILS_1.0 {
- global:
- x86_64_backend_name;
- x86_64_destr;
- x86_64_init;
- x86_64_reloc_type_check;
- x86_64_reloc_type_name;
-
- local:
- *;
-};
diff --git a/libebl/mips_destr.c b/libebl/mips_destr.c
deleted file mode 100644
index fa8f8d30..00000000
--- a/libebl/mips_destr.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Destructor for MIPS specific backend library.
- Copyright (C) 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_mips.h>
-
-
-void
-mips_destr (bh)
- Ebl *bh;
-{
- /* Nothing to do so far. */
-}
diff --git a/libebl/mips_init.c b/libebl/mips_init.c
deleted file mode 100644
index 7b51f405..00000000
--- a/libebl/mips_init.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Initialization of MIPS specific backend library.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_mips.h>
-
-
-int
-mips_init (elf, machine, eh, ehlen)
- Elf *elf;
- GElf_Half machine;
- Ebl *eh;
- size_t ehlen;
-{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return 1;
-
- /* We handle it. */
- if (machine != EM_MIPS)
- eh->name = "MIPS R3000 big-endian";
- else
- eh->name = "MIPS R3000 little-endian";
-
- eh->reloc_type_name = mips_reloc_type_name;
- eh->segment_type_name = mips_segment_type_name;
- eh->section_type_name = mips_section_type_name;
- eh->machine_flag_name = mips_machine_flag_name;
- eh->dynamic_tag_name = mips_dynamic_tag_name;
- eh->destr = mips_destr;
-
- return 0;
-}
diff --git a/libebl/mips_symbol.c b/libebl/mips_symbol.c
deleted file mode 100644
index cab03310..00000000
--- a/libebl/mips_symbol.c
+++ /dev/null
@@ -1,266 +0,0 @@
-/* MIPS specific symbolic name handling.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <elf.h>
-#include <stddef.h>
-
-#include <libebl_mips.h>
-
-
-/* Return of the backend. */
-const char *
-mips_backend_name (void)
-{
- return "mips";
-}
-
-
-/* Determine relocation type string for MIPS. */
-const char *
-mips_reloc_type_name (int type, char *buf, size_t len)
-{
- static const char *map_table[] =
- {
- [R_MIPS_NONE] = "MIPS_NONE",
- [R_MIPS_16] = "MIPS_16",
- [R_MIPS_32] = "MIPS_32",
- [R_MIPS_REL32] = "MIPS_REL32",
- [R_MIPS_26] = "MIPS_26",
- [R_MIPS_HI16] = "MIPS_HI16",
- [R_MIPS_LO16] = "MIPS_LO16",
- [R_MIPS_GPREL16] = "MIPS_GPREL16",
- [R_MIPS_LITERAL] = "MIPS_LITERAL",
- [R_MIPS_GOT16] = "MIPS_GOT16",
- [R_MIPS_PC16] = "MIPS_PC16",
- [R_MIPS_CALL16] = "MIPS_CALL16",
- [R_MIPS_GPREL32] = "MIPS_GPREL32",
- [R_MIPS_SHIFT5] = "MIPS_SHIFT5",
- [R_MIPS_SHIFT6] = "MIPS_SHIFT6",
- [R_MIPS_64] = "MIPS_64",
- [R_MIPS_GOT_DISP] = "MIPS_GOT_DISP",
- [R_MIPS_GOT_PAGE] = "MIPS_GOT_PAGE",
- [R_MIPS_GOT_OFST] = "MIPS_GOT_OFST",
- [R_MIPS_GOT_HI16] = "MIPS_GOT_HI16",
- [R_MIPS_GOT_LO16] = "MIPS_GOT_LO16",
- [R_MIPS_SUB] = "MIPS_SUB",
- [R_MIPS_INSERT_A] = "MIPS_INSERT_A",
- [R_MIPS_INSERT_B] = "MIPS_INSERT_B",
- [R_MIPS_DELETE] = "MIPS_DELETE",
- [R_MIPS_HIGHER] = "MIPS_HIGHER",
- [R_MIPS_HIGHEST] = "MIPS_HIGHEST",
- [R_MIPS_CALL_HI16] = "MIPS_CALL_HI16",
- [R_MIPS_CALL_LO16] = "MIPS_CALL_LO16",
- [R_MIPS_SCN_DISP] = "MIPS_SCN_DISP",
- [R_MIPS_REL16] = "MIPS_REL16",
- [R_MIPS_ADD_IMMEDIATE] = "MIPS_ADD_IMMEDIATE",
- [R_MIPS_PJUMP] = "MIPS_PJUMP",
- [R_MIPS_RELGOT] = "MIPS_RELGOT",
- [R_MIPS_JALR] = "MIPS_JALR"
- };
-
- if (type < 0 || type >= R_MIPS_NUM)
- return NULL;
-
- return map_table[type];
-}
-
-
-const char *
-mips_segment_type_name (int type, char *buf, size_t len)
-{
- static const struct
- {
- int type;
- const char *str;
- } mips_segments[] =
- {
- { PT_MIPS_REGINFO, "MIPS_REGINFO" },
- { PT_MIPS_RTPROC, "MIPS_RTPROC" },
- { PT_MIPS_OPTIONS, "MIPS_OPTIONS" }
- };
-#define nsegments (sizeof (mips_segments) / sizeof (mips_segments[0]))
- size_t cnt;
-
- for (cnt = 0; cnt < nsegments; ++cnt)
- if (type == mips_segments[cnt].type)
- return mips_segments[cnt].str;
-
- /* We don't know the segment type. */
- return NULL;
-}
-
-
-const char *
-mips_section_type_name (int type, char *buf, size_t len)
-{
- static const struct
- {
- int type;
- const char *str;
- } mips_sections[] =
- {
- { SHT_MIPS_LIBLIST, "MIPS_LIBLIST" },
- { SHT_MIPS_MSYM, "MIPS_MSYM" },
- { SHT_MIPS_CONFLICT, "MIPS_CONFLICT" },
- { SHT_MIPS_GPTAB, "MIPS_GPTAB" },
- { SHT_MIPS_UCODE, "MIPS_UCODE" },
- { SHT_MIPS_DEBUG, "MIPS_DEBUG" },
- { SHT_MIPS_REGINFO, "MIPS_REGINFO" },
- { SHT_MIPS_PACKAGE, "MIPS_PACKAGE" },
- { SHT_MIPS_PACKSYM, "MIPS_PACKSYM" },
- { SHT_MIPS_RELD, "MIPS_RELD" },
- { SHT_MIPS_IFACE, "MIPS_IFACE" },
- { SHT_MIPS_CONTENT, "MIPS_CONTENT" },
- { SHT_MIPS_OPTIONS, "MIPS_OPTIONS" },
- { SHT_MIPS_SHDR, "MIPS_SHDR" },
- { SHT_MIPS_FDESC, "MIPS_FDESC" },
- { SHT_MIPS_EXTSYM, "MIPS_EXTSYM" },
- { SHT_MIPS_DENSE, "MIPS_DENSE" },
- { SHT_MIPS_PDESC, "MIPS_PDESC" },
- { SHT_MIPS_LOCSYM, "MIPS_LOCSYM" },
- { SHT_MIPS_AUXSYM, "MIPS_AUXSYM" },
- { SHT_MIPS_OPTSYM, "MIPS_OPTSYM" },
- { SHT_MIPS_LOCSTR, "MIPS_LOCSTR" },
- { SHT_MIPS_LINE, "MIPS_LINE" },
- { SHT_MIPS_RFDESC, "MIPS_RFDESC" },
- { SHT_MIPS_DELTASYM, "MIPS_DELTASYM" },
- { SHT_MIPS_DELTAINST, "MIPS_DELTAINST" },
- { SHT_MIPS_DELTACLASS, "MIPS_DELTACLASS" },
- { SHT_MIPS_DWARF, "MIPS_DWARF" },
- { SHT_MIPS_DELTADECL, "MIPS_DELTADECL" },
- { SHT_MIPS_SYMBOL_LIB, "MIPS_SYMBOL_LIB" },
- { SHT_MIPS_EVENTS, "MIPS_EVENTS" },
- { SHT_MIPS_TRANSLATE, "MIPS_TRANSLATE" },
- { SHT_MIPS_PIXIE, "MIPS_PIXIE" },
- { SHT_MIPS_XLATE, "MIPS_XLATE" },
- { SHT_MIPS_XLATE_DEBUG, "MIPS_XLATE_DEBUG" },
- { SHT_MIPS_WHIRL, "MIPS_WHIRL" },
- { SHT_MIPS_EH_REGION, "MIPS_EH_REGION" },
- { SHT_MIPS_XLATE_OLD, "MIPS_XLATE_OLD" },
- { SHT_MIPS_PDR_EXCEPTION, "MIPS_PDR_EXCEPTION" }
- };
-#define nsections (sizeof (mips_sections) / sizeof (mips_sections[0]))
- size_t cnt;
-
- for (cnt = 0; cnt < nsections; ++cnt)
- if (type == mips_sections[cnt].type)
- return mips_sections[cnt].str;
-
- /* We don't know the section type. */
- return NULL;
-}
-
-
-const char *
-mips_machine_flag_name (Elf64_Word *flags)
-{
- static const struct
- {
- unsigned int mask;
- unsigned int flag;
- const char *str;
- } mips_flags[] =
- {
- { EF_MIPS_NOREORDER, EF_MIPS_NOREORDER, "noreorder" },
- { EF_MIPS_PIC, EF_MIPS_PIC, "pic" },
- { EF_MIPS_CPIC, EF_MIPS_CPIC, "cpic" },
- { EF_MIPS_ABI2, EF_MIPS_ABI2, "abi2" },
- { EF_MIPS_ARCH, E_MIPS_ARCH_1, "mips1" },
- { EF_MIPS_ARCH, E_MIPS_ARCH_2, "mips2" },
- { EF_MIPS_ARCH, E_MIPS_ARCH_3, "mips3" },
- { EF_MIPS_ARCH, E_MIPS_ARCH_4, "mips4" },
- { EF_MIPS_ARCH, E_MIPS_ARCH_5, "mips5" }
- };
-#define nflags (sizeof (mips_flags) / sizeof (mips_flags[0]))
- size_t cnt;
-
- for (cnt = 0; cnt < nflags; ++cnt)
- if ((*flags & mips_flags[cnt].mask) == mips_flags[cnt].flag)
- {
- *flags &= ~mips_flags[cnt].mask;
- return mips_flags[cnt].str;
- }
-
- /* We don't know the flag. */
- return NULL;
-}
-
-
-const char *
-mips_dynamic_tag_name (int64_t tag, char *buf, size_t len)
-{
- static const struct
- {
- int tag;
- const char *str;
- } mips_dtags[] =
- {
- { DT_MIPS_RLD_VERSION, "MIPS_RLD_VERSION" },
- { DT_MIPS_TIME_STAMP, "MIPS_TIME_STAMP" },
- { DT_MIPS_ICHECKSUM, "MIPS_ICHECKSUM" },
- { DT_MIPS_IVERSION, "MIPS_IVERSION" },
- { DT_MIPS_FLAGS, "MIPS_FLAGS" },
- { DT_MIPS_BASE_ADDRESS, "MIPS_BASE_ADDRESS" },
- { DT_MIPS_MSYM, "MIPS_MSYM" },
- { DT_MIPS_CONFLICT, "MIPS_CONFLICT" },
- { DT_MIPS_LIBLIST, "MIPS_LIBLIST" },
- { DT_MIPS_LOCAL_GOTNO, "MIPS_LOCAL_GOTNO" },
- { DT_MIPS_CONFLICTNO, "MIPS_CONFLICTNO" },
- { DT_MIPS_LIBLISTNO, "MIPS_LIBLISTNO" },
- { DT_MIPS_SYMTABNO, "MIPS_SYMTABNO" },
- { DT_MIPS_UNREFEXTNO, "MIPS_UNREFEXTNO" },
- { DT_MIPS_GOTSYM, "MIPS_GOTSYM" },
- { DT_MIPS_HIPAGENO, "MIPS_HIPAGENO" },
- { DT_MIPS_RLD_MAP, "MIPS_RLD_MAP" },
- { DT_MIPS_DELTA_CLASS, "MIPS_DELTA_CLASS" },
- { DT_MIPS_DELTA_CLASS_NO, "MIPS_DELTA_CLASS_NO" },
- { DT_MIPS_DELTA_INSTANCE, "MIPS_DELTA_INSTANCE" },
- { DT_MIPS_DELTA_INSTANCE_NO, "MIPS_DELTA_INSTANCE_NO" },
- { DT_MIPS_DELTA_RELOC, "MIPS_DELTA_RELOC" },
- { DT_MIPS_DELTA_RELOC_NO, "MIPS_DELTA_RELOC_NO" },
- { DT_MIPS_DELTA_SYM, "MIPS_DELTA_SYM" },
- { DT_MIPS_DELTA_SYM_NO, "MIPS_DELTA_SYM_NO" },
- { DT_MIPS_DELTA_CLASSSYM, "MIPS_DELTA_CLASSSYM" },
- { DT_MIPS_DELTA_CLASSSYM_NO, "MIPS_DELTA_CLASSSYM_NO" },
- { DT_MIPS_CXX_FLAGS, "MIPS_CXX_FLAGS" },
- { DT_MIPS_PIXIE_INIT, "MIPS_PIXIE_INIT" },
- { DT_MIPS_SYMBOL_LIB, "MIPS_SYMBOL_LIB" },
- { DT_MIPS_LOCALPAGE_GOTIDX, "MIPS_LOCALPAGE_GOTIDX" },
- { DT_MIPS_LOCAL_GOTIDX, "MIPS_LOCAL_GOTIDX" },
- { DT_MIPS_HIDDEN_GOTIDX, "MIPS_HIDDEN_GOTIDX" },
- { DT_MIPS_PROTECTED_GOTIDX, "MIPS_PROTECTED_GOTIDX" },
- { DT_MIPS_OPTIONS, "MIPS_OPTIONS" },
- { DT_MIPS_INTERFACE, "MIPS_INTERFACE" },
- { DT_MIPS_DYNSTR_ALIGN, "MIPS_DYNSTR_ALIGN" },
- { DT_MIPS_INTERFACE_SIZE, "MIPS_INTERFACE_SIZE" },
- { DT_MIPS_RLD_TEXT_RESOLVE_ADDR, "MIPS_RLD_TEXT_RESOLVE_ADDR" },
- { DT_MIPS_PERF_SUFFIX, "MIPS_PERF_SUFFIX" },
- { DT_MIPS_COMPACT_SIZE, "MIPS_COMPACT_SIZE" },
- { DT_MIPS_GP_VALUE, "MIPS_GP_VALUE" },
- { DT_MIPS_AUX_DYNAMIC, "MIPS_AUX_DYNAMIC" },
- };
-#define ndtags (sizeof (mips_dtags) / sizeof (mips_dtags[0]))
- size_t cnt;
-
- for (cnt = 0; cnt < ndtags; ++cnt)
- if (tag == mips_dtags[cnt].tag)
- return mips_dtags[cnt].str;
-
- /* We don't know this dynamic tag. */
- return NULL;
-}
diff --git a/libebl/ppc64_destr.c b/libebl/ppc64_destr.c
deleted file mode 100644
index 9fd38021..00000000
--- a/libebl/ppc64_destr.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Destructor for PPC64 specific backend library.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_ppc64.h>
-
-
-void
-ppc64_destr (bh)
- Ebl *bh;
-{
- /* Nothing to do so far. */
-}
diff --git a/libebl/ppc64_init.c b/libebl/ppc64_init.c
deleted file mode 100644
index fec963b2..00000000
--- a/libebl/ppc64_init.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Initialization of PPC64 specific backend library.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_ppc64.h>
-
-
-int
-ppc64_init (elf, machine, eh, ehlen)
- Elf *elf;
- GElf_Half machine;
- Ebl *eh;
- size_t ehlen;
-{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return 1;
-
- /* We handle it. */
- eh->name = "PowerPC 64-bit";
- eh->reloc_type_name = ppc64_reloc_type_name;
- eh->reloc_type_check = ppc64_reloc_type_check;
- eh->reloc_valid_use = ppc64_reloc_valid_use;
- eh->dynamic_tag_name = ppc64_dynamic_tag_name;
- eh->destr = ppc64_destr;
-
- return 0;
-}
diff --git a/libebl/ppc64_symbol.c b/libebl/ppc64_symbol.c
deleted file mode 100644
index 9ab53667..00000000
--- a/libebl/ppc64_symbol.c
+++ /dev/null
@@ -1,206 +0,0 @@
-/* PPC64 specific symbolic name handling.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <elf.h>
-#include <stddef.h>
-
-#include <libebl_ppc64.h>
-
-
-/* Return of the backend. */
-const char *
-ppc64_backend_name (void)
-{
- return "ppc64";
-}
-
-
-/* Relocation mapping table. */
-static struct
-{
- const char *name;
- enum { both = 0, rel = 1, exec = 2 } appear;
-} reloc_map_table[] =
- {
- // XXX Check all the appear values.
- [R_PPC64_NONE] = { "R_PPC64_NONE", both },
- [R_PPC64_ADDR32] = { "R_PPC64_ADDR32", both },
- [R_PPC64_ADDR24] = { "R_PPC64_ADDR24", both },
- [R_PPC64_ADDR16] = { "R_PPC64_ADDR16", both },
- [R_PPC64_ADDR16_LO] = { "R_PPC64_ADDR16_LO", both },
- [R_PPC64_ADDR16_HI] = { "R_PPC64_ADDR16_HI", both },
- [R_PPC64_ADDR16_HA] = { "R_PPC64_ADDR16_HA", both },
- [R_PPC64_ADDR14] = { "R_PPC64_ADDR14", both },
- [R_PPC64_ADDR14_BRTAKEN] = { "R_PPC64_ADDR14_BRTAKEN", exec },
- [R_PPC64_ADDR14_BRNTAKEN] = { "R_PPC64_ADDR14_BRNTAKEN", exec },
- [R_PPC64_REL24] = { "R_PPC64_REL24", both },
- [R_PPC64_REL14] = { "R_PPC64_REL14", both },
- [R_PPC64_REL14_BRTAKEN] = { "R_PPC64_REL14_BRTAKEN", exec },
- [R_PPC64_REL14_BRNTAKEN] = { "R_PPC64_REL14_BRNTAKEN", exec },
- [R_PPC64_GOT16] = { "R_PPC64_GOT16", rel },
- [R_PPC64_GOT16_LO] = { "R_PPC64_GOT16_LO", rel },
- [R_PPC64_GOT16_HI] = { "R_PPC64_GOT16_HI", rel },
- [R_PPC64_GOT16_HA] = { "R_PPC64_GOT16_HA", rel },
- [R_PPC64_COPY] = { "R_PPC64_COPY", exec },
- [R_PPC64_GLOB_DAT] = { "R_PPC64_GLOB_DAT", exec },
- [R_PPC64_JMP_SLOT] = { "R_PPC64_JMP_SLOT", exec },
- [R_PPC64_RELATIVE] = { "R_PPC64_RELATIVE", exec },
- [R_PPC64_UADDR32] = { "R_PPC64_UADDR32", exec },
- [R_PPC64_UADDR16] = { "R_PPC64_UADDR16", exec },
- [R_PPC64_REL32] = { "R_PPC64_REL32", exec },
- [R_PPC64_PLT32] = { "R_PPC64_PLT32", exec },
- [R_PPC64_PLTREL32] = { "R_PPC64_PLTREL32", both },
- [R_PPC64_PLT16_LO] = { "R_PPC64_PLT16_LO", both },
- [R_PPC64_PLT16_HI] = { "R_PPC64_PLT16_HI", both },
- [R_PPC64_PLT16_HA] = { "R_PPC64_PLT16_HA", both },
- [R_PPC64_SECTOFF] = { "R_PPC64_SECTOFF", both },
- [R_PPC64_SECTOFF_LO] = { "R_PPC64_SECTOFF_LO", both },
- [R_PPC64_SECTOFF_HI] = { "R_PPC64_SECTOFF_HI", both },
- [R_PPC64_SECTOFF_HA] = { "R_PPC64_SECTOFF_HA", both },
- [R_PPC64_ADDR30] = { "R_PPC64_ADDR30", both },
- [R_PPC64_ADDR64] = { "R_PPC64_ADDR64", both },
- [R_PPC64_ADDR16_HIGHER] = { "R_PPC64_ADDR16_HIGHER", both },
- [R_PPC64_ADDR16_HIGHERA] = { "R_PPC64_ADDR16_HIGHERA", both },
- [R_PPC64_ADDR16_HIGHEST] = { "R_PPC64_ADDR16_HIGHEST", both },
- [R_PPC64_ADDR16_HIGHESTA] = { "R_PPC64_ADDR16_HIGHESTA", both },
- [R_PPC64_UADDR64] = { "R_PPC64_UADDR64", both },
- [R_PPC64_REL64] = { "R_PPC64_REL64", both },
- [R_PPC64_PLT64] = { "R_PPC64_PLT64", both },
- [R_PPC64_PLTREL64] = { "R_PPC64_PLTREL64", both },
- [R_PPC64_TOC16] = { "R_PPC64_TOC16", both },
- [R_PPC64_TOC16_LO] = { "R_PPC64_TOC16_LO", both },
- [R_PPC64_TOC16_HI] = { "R_PPC64_TOC16_HI", both },
- [R_PPC64_TOC16_HA] = { "R_PPC64_TOC16_HA", both },
- [R_PPC64_TOC] = { "R_PPC64_TOC", both },
- [R_PPC64_PLTGOT16] = { "R_PPC64_PLTGOT16", both },
- [R_PPC64_PLTGOT16_LO] = { "R_PPC64_PLTGOT16_LO", both },
- [R_PPC64_PLTGOT16_HI] = { "R_PPC64_PLTGOT16_HI", both },
- [R_PPC64_PLTGOT16_HA] = { "R_PPC64_PLTGOT16_HA", both },
- [R_PPC64_ADDR16_DS] = { "R_PPC64_ADDR16_DS", both },
- [R_PPC64_ADDR16_LO_DS] = { "R_PPC64_ADDR16_LO_DS", both },
- [R_PPC64_GOT16_DS] = { "R_PPC64_GOT16_DS", both },
- [R_PPC64_GOT16_LO_DS] = { "R_PPC64_GOT16_LO_DS", both },
- [R_PPC64_PLT16_LO_DS] = { "R_PPC64_PLT16_LO_DS", both },
- [R_PPC64_SECTOFF_DS] = { "R_PPC64_SECTOFF_DS", both },
- [R_PPC64_SECTOFF_LO_DS] = { "R_PPC64_SECTOFF_LO_DS", both },
- [R_PPC64_TOC16_DS] = { "R_PPC64_TOC16_DS", both },
- [R_PPC64_TOC16_LO_DS] = { "R_PPC64_TOC16_LO_DS", both },
- [R_PPC64_PLTGOT16_DS] = { "R_PPC64_PLTGOT16_DS", both },
- [R_PPC64_PLTGOT16_LO_DS] = { "R_PPC64_PLTGOT16_LO_DS", both },
- [R_PPC64_TLS] = { "R_PPC64_TLS", both },
- [R_PPC64_DTPMOD64] = { "R_PPC64_DTPMOD64", both },
- [R_PPC64_TPREL16] = { "R_PPC64_TPREL16", both },
- [R_PPC64_TPREL16_LO] = { "R_PPC64_TPREL16_LO", both },
- [R_PPC64_TPREL16_HI] = { "R_PPC64_TPREL16_HI", both },
- [R_PPC64_TPREL16_HA] = { "R_PPC64_TPREL16_HA", both },
- [R_PPC64_TPREL64] = { "R_PPC64_TPREL64", both },
- [R_PPC64_DTPREL16] = { "R_PPC64_DTPREL16", both },
- [R_PPC64_DTPREL16_LO] = { "R_PPC64_DTPREL16_LO", both },
- [R_PPC64_DTPREL16_HI] = { "R_PPC64_DTPREL16_HI", both },
- [R_PPC64_DTPREL16_HA] = { "R_PPC64_DTPREL16_HA", both },
- [R_PPC64_DTPREL64] = { "R_PPC64_DTPREL64", both },
- [R_PPC64_GOT_TLSGD16] = { "R_PPC64_GOT_TLSGD16", both },
- [R_PPC64_GOT_TLSGD16_LO] = { "R_PPC64_GOT_TLSGD16_LO", both },
- [R_PPC64_GOT_TLSGD16_HI] = { "R_PPC64_GOT_TLSGD16_HI", both },
- [R_PPC64_GOT_TLSGD16_HA] = { "R_PPC64_GOT_TLSGD16_HA", both },
- [R_PPC64_GOT_TLSLD16] = { "R_PPC64_GOT_TLSLD16", both },
- [R_PPC64_GOT_TLSLD16_LO] = { "R_PPC64_GOT_TLSLD16_LO", both },
- [R_PPC64_GOT_TLSLD16_HI] = { "R_PPC64_GOT_TLSLD16_HI", both },
- [R_PPC64_GOT_TLSLD16_HA] = { "R_PPC64_GOT_TLSLD16_HA", both },
- [R_PPC64_GOT_TPREL16_DS] = { "R_PPC64_GOT_TPREL16_DS", both },
- [R_PPC64_GOT_TPREL16_LO_DS] = { "R_PPC64_GOT_TPREL16_LO_DS", both },
- [R_PPC64_GOT_TPREL16_HI] = { "R_PPC64_GOT_TPREL16_HI", both },
- [R_PPC64_GOT_TPREL16_HA] = { "R_PPC64_GOT_TPREL16_HA", both },
- [R_PPC64_GOT_DTPREL16_DS] = { "R_PPC64_GOT_DTPREL16_DS", both },
- [R_PPC64_GOT_DTPREL16_LO_DS] = { "R_PPC64_GOT_DTPREL16_LO_DS", both },
- [R_PPC64_GOT_DTPREL16_HI] = { "R_PPC64_GOT_DTPREL16_HI", both },
- [R_PPC64_GOT_DTPREL16_HA] = { "R_PPC64_GOT_DTPREL16_HA", both },
- [R_PPC64_TPREL16_DS] = { "R_PPC64_TPREL16_DS", both },
- [R_PPC64_TPREL16_LO_DS] = { "R_PPC64_TPREL16_LO_DS", both },
- [R_PPC64_TPREL16_HIGHER] = { "R_PPC64_TPREL16_HIGHER", both },
- [R_PPC64_TPREL16_HIGHERA] = { "R_PPC64_TPREL16_HIGHERA", both },
- [R_PPC64_TPREL16_HIGHEST] = { "R_PPC64_TPREL16_HIGHEST", both },
- [R_PPC64_TPREL16_HIGHESTA] = { "R_PPC64_TPREL16_HIGHESTA", both },
- [R_PPC64_DTPREL16_DS] = { "R_PPC64_DTPREL16_DS", both },
- [R_PPC64_DTPREL16_LO_DS] = { "R_PPC64_DTPREL16_LO_DS", both },
- [R_PPC64_DTPREL16_HIGHER] = { "R_PPC64_DTPREL16_HIGHER", both },
- [R_PPC64_DTPREL16_HIGHERA] = { "R_PPC64_DTPREL16_HIGHERA", both },
- [R_PPC64_DTPREL16_HIGHEST] = { "R_PPC64_DTPREL16_HIGHEST", both },
- [R_PPC64_DTPREL16_HIGHESTA] = { "R_PPC64_DTPREL16_HIGHESTA", both }
- };
-
-
-/* Determine relocation type string for PPC. */
-const char *
-ppc64_reloc_type_name (int type, char *buf, size_t len)
-{
- if (type < R_PPC64_NONE || type >= R_PPC64_NUM)
- return NULL;
-
- return reloc_map_table[type].name;
-}
-
-
-/* Check for correct relocation type. */
-bool
-ppc64_reloc_type_check (int type)
-{
- return (type >= R_PPC64_NONE && type < R_PPC64_NUM
- && reloc_map_table[type].name != NULL) ? true : false;
-}
-
-
-/* Check for correct relocation type use. */
-bool
-ppc64_reloc_valid_use (Elf *elf, int type)
-{
- if (type < R_PPC64_NONE || type >= R_PPC64_NUM
- || reloc_map_table[type].name == NULL)
- return false;
-
- Elf64_Ehdr *ehdr = elf64_getehdr (elf);
- assert (ehdr != NULL);
-
- if (reloc_map_table[type].appear == rel)
- return ehdr->e_type == ET_REL;
-
- if (reloc_map_table[type].appear == exec)
- return ehdr->e_type != ET_REL;
-
- assert (reloc_map_table[type].appear == both);
- return true;
-}
-
-
-const char *
-ppc64_dynamic_tag_name (int64_t tag, char *buf, size_t len)
-{
- switch (tag)
- {
- case DT_PPC64_GLINK:
- return "PPC64_GLINK";
- case DT_PPC64_OPD:
- return "PPC64_OPD";
- case DT_PPC64_OPDSZ:
- return "PPC64_OPDSZ";
- default:
- break;
- }
- return NULL;
-}
diff --git a/libebl/ppc_destr.c b/libebl/ppc_destr.c
deleted file mode 100644
index 219de067..00000000
--- a/libebl/ppc_destr.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Destructor for PPC specific backend library.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_ppc.h>
-
-
-void
-ppc_destr (bh)
- Ebl *bh;
-{
- /* Nothing to do so far. */
-}
diff --git a/libebl/ppc_init.c b/libebl/ppc_init.c
deleted file mode 100644
index 9b45bd73..00000000
--- a/libebl/ppc_init.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Initialization of PPC specific backend library.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_ppc.h>
-
-
-int
-ppc_init (elf, machine, eh, ehlen)
- Elf *elf;
- GElf_Half machine;
- Ebl *eh;
- size_t ehlen;
-{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return 1;
-
- /* We handle it. */
- eh->name = "PowerPC";
- eh->reloc_type_name = ppc_reloc_type_name;
- eh->reloc_type_check = ppc_reloc_type_check;
- eh->reloc_valid_use = ppc_reloc_valid_use;
- eh->destr = ppc_destr;
-
- return 0;
-}
diff --git a/libebl/ppc_symbol.c b/libebl/ppc_symbol.c
deleted file mode 100644
index 08a9fef7..00000000
--- a/libebl/ppc_symbol.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/* PPC specific symbolic name handling.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <elf.h>
-#include <stddef.h>
-
-#include <libebl_ppc.h>
-
-
-/* Return of the backend. */
-const char *
-ppc_backend_name (void)
-{
- return "ppc";
-}
-
-
-/* Relocation mapping table. */
-static struct
-{
- const char *name;
- enum { both = 0, rel = 1, exec = 2 } appear;
-} reloc_map_table[] =
- {
- // XXX Check all the appear values.
- [R_PPC_NONE] = { "R_PPC_NONE", both },
- [R_PPC_ADDR32] = { "R_PPC_ADDR32", both },
- [R_PPC_ADDR24] = { "R_PPC_ADDR24", both },
- [R_PPC_ADDR16] = { "R_PPC_ADDR16", both },
- [R_PPC_ADDR16_LO] = { "R_PPC_ADDR16_LO", both },
- [R_PPC_ADDR16_HI] = { "R_PPC_ADDR16_HI", both },
- [R_PPC_ADDR16_HA] = { "R_PPC_ADDR16_HA", both },
- [R_PPC_ADDR14] = { "R_PPC_ADDR14", exec },
- [R_PPC_ADDR14_BRTAKEN] = { "R_PPC_ADDR14_BRTAKEN", exec },
- [R_PPC_ADDR14_BRNTAKEN] = { "R_PPC_ADDR14_BRNTAKEN", exec },
- [R_PPC_REL24] = { "R_PPC_REL24", both },
- [R_PPC_REL14] = { "R_PPC_REL14", both },
- [R_PPC_REL14_BRTAKEN] = { "R_PPC_REL14_BRTAKEN", exec },
- [R_PPC_REL14_BRNTAKEN] = { "R_PPC_REL14_BRNTAKEN", exec },
- [R_PPC_GOT16] = { "R_PPC_GOT16", rel },
- [R_PPC_GOT16_LO] = { "R_PPC_GOT16_LO", rel },
- [R_PPC_GOT16_HI] = { "R_PPC_GOT16_HI", rel },
- [R_PPC_GOT16_HA] = { "R_PPC_GOT16_HA", rel },
- [R_PPC_PLTREL24] = { "R_PPC_PLTREL24", rel },
- [R_PPC_COPY] = { "R_PPC_COPY", exec },
- [R_PPC_GLOB_DAT] = { "R_PPC_GLOB_DAT", exec },
- [R_PPC_JMP_SLOT] = { "R_PPC_JMP_SLOT", exec },
- [R_PPC_RELATIVE] = { "R_PPC_RELATIVE", exec },
- [R_PPC_LOCAL24PC] = { "R_PPC_LOCAL24PC", rel },
- [R_PPC_UADDR32] = { "R_PPC_UADDR32", exec },
- [R_PPC_UADDR16] = { "R_PPC_UADDR16", exec },
- [R_PPC_REL32] = { "R_PPC_REL32", exec },
- [R_PPC_PLT32] = { "R_PPC_PLT32", exec },
- [R_PPC_PLTREL32] = { "R_PPC_PLTREL32", both },
- [R_PPC_PLT16_LO] = { "R_PPC_PLT16_LO", both },
- [R_PPC_PLT16_HI] = { "R_PPC_PLT16_HI", both },
- [R_PPC_PLT16_HA] = { "R_PPC_PLT16_HA", both },
- [R_PPC_SDAREL16] = { "R_PPC_SDAREL16", both },
- [R_PPC_SECTOFF] = { "R_PPC_SECTOFF", both },
- [R_PPC_SECTOFF_LO] = { "R_PPC_SECTOFF_LO", both },
- [R_PPC_SECTOFF_HI] = { "R_PPC_SECTOFF_HI", both },
- [R_PPC_SECTOFF_HA] = { "R_PPC_SECTOFF_HA", both },
- [R_PPC_TLS] = { "R_PPC_TLS", both },
- [R_PPC_DTPMOD32] = { "R_PPC_DTPMOD32", exec },
- [R_PPC_TPREL16] = { "R_PPC_TPREL16", rel },
- [R_PPC_TPREL16_LO] = { "R_PPC_TPREL16_LO", rel },
- [R_PPC_TPREL16_HI] = { "R_PPC_TPREL16_HI", rel },
- [R_PPC_TPREL16_HA] = { "R_PPC_TPREL16_HA", rel },
- [R_PPC_TPREL32] = { "R_PPC_TPREL32", exec },
- [R_PPC_DTPREL16] = { "R_PPC_DTPREL16", rel },
- [R_PPC_DTPREL16_LO] = { "R_PPC_DTPREL16_LO", rel },
- [R_PPC_DTPREL16_HI] = { "R_PPC_DTPREL16_HI", rel },
- [R_PPC_DTPREL16_HA] = { "R_PPC_DTPREL16_HA", rel },
- [R_PPC_DTPREL32] = { "R_PPC_DTPREL32", exec },
- [R_PPC_GOT_TLSGD16] = { "R_PPC_GOT_TLSGD16", exec },
- [R_PPC_GOT_TLSGD16_LO] = { "R_PPC_GOT_TLSGD16_LO", exec },
- [R_PPC_GOT_TLSGD16_HI] = { "R_PPC_GOT_TLSGD16_HI", exec },
- [R_PPC_GOT_TLSGD16_HA] = { "R_PPC_GOT_TLSGD16_HA", exec },
- [R_PPC_GOT_TLSLD16] = { "R_PPC_GOT_TLSLD16", exec },
- [R_PPC_GOT_TLSLD16_LO] = { "R_PPC_GOT_TLSLD16_LO", exec },
- [R_PPC_GOT_TLSLD16_HI] = { "R_PPC_GOT_TLSLD16_HI", exec },
- [R_PPC_GOT_TLSLD16_HA] = { "R_PPC_GOT_TLSLD16_HA", exec },
- [R_PPC_GOT_TPREL16] = { "R_PPC_GOT_TPREL16", exec },
- [R_PPC_GOT_TPREL16_LO] = { "R_PPC_GOT_TPREL16_LO", exec },
- [R_PPC_GOT_TPREL16_HI] = { "R_PPC_GOT_TPREL16_HI", exec },
- [R_PPC_GOT_TPREL16_HA] = { "R_PPC_GOT_TPREL16_HA", exec },
- [R_PPC_GOT_DTPREL16] = { "R_PPC_GOT_DTPREL16", exec },
- [R_PPC_GOT_DTPREL16_LO] = { "R_PPC_GOT_DTPREL16_LO", exec },
- [R_PPC_GOT_DTPREL16_HI] = { "R_PPC_GOT_DTPREL16_HI", exec },
- [R_PPC_GOT_DTPREL16_HA] = { "R_PPC_GOT_DTPREL16_HA", exec }
- };
-
-
-/* Determine relocation type string for PPC. */
-const char *
-ppc_reloc_type_name (int type, char *buf, size_t len)
-{
- if (type < 0 || type >= R_PPC_NUM)
- return NULL;
-
- return reloc_map_table[type].name;
-}
-
-
-/* Check for correct relocation type. */
-bool
-ppc_reloc_type_check (int type)
-{
- return (type >= R_PPC_NONE && type < R_PPC_NUM
- && reloc_map_table[type].name != NULL) ? true : false;
-}
-
-
-/* Check for correct relocation type use. */
-bool
-ppc_reloc_valid_use (Elf *elf, int type)
-{
- if (type < R_PPC_NONE || type >= R_PPC_NUM
- || reloc_map_table[type].name == NULL)
- return false;
-
- Elf32_Ehdr *ehdr = elf32_getehdr (elf);
- assert (ehdr != NULL);
-
- if (reloc_map_table[type].appear == rel)
- return ehdr->e_type == ET_REL;
-
- if (reloc_map_table[type].appear == exec)
- return ehdr->e_type != ET_REL;
-
- assert (reloc_map_table[type].appear == both);
- return true;
-}
diff --git a/libebl/sh_destr.c b/libebl/sh_destr.c
deleted file mode 100644
index f6b03b3a..00000000
--- a/libebl/sh_destr.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Destructor for SH specific backend library.
- Copyright (C) 2000. 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_sh.h>
-
-
-void
-sh_destr (bh)
- Ebl *bh;
-{
- /* Nothing to do so far. */
-}
diff --git a/libebl/sh_init.c b/libebl/sh_init.c
deleted file mode 100644
index cc26640b..00000000
--- a/libebl/sh_init.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Initialization of SH specific backend library.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_sh.h>
-
-
-int
-sh_init (elf, machine, eh, ehlen)
- Elf *elf;
- GElf_Half machine;
- Ebl *eh;
- size_t ehlen;
-{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return 1;
-
- /* We handle it. */
- eh->name = "Hitachi SH";
- eh->reloc_type_name = sh_reloc_type_name;
- eh->destr = sh_destr;
-
- return 0;
-}
diff --git a/libebl/sh_symbol.c b/libebl/sh_symbol.c
deleted file mode 100644
index 6211ab51..00000000
--- a/libebl/sh_symbol.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* SH specific relocation handling.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <elf.h>
-#include <stddef.h>
-
-#include <libebl_sh.h>
-
-
-/* Return of the backend. */
-const char *
-sh_backend_name (void)
-{
- return "sh";
-}
-
-
-/* Determine relocation type string for SH. */
-const char *
-sh_reloc_type_name (int type, char *buf, size_t len)
-{
- static const char *map_table1[] =
- {
- [R_SH_NONE] = "R_SH_NONE",
- [R_SH_DIR32] = "R_SH_DIR32",
- [R_SH_REL32] = "R_SH_REL32",
- [R_SH_DIR8WPN] = "R_SH_DIR8WPN",
- [R_SH_IND12W] = "R_SH_IND12W",
- [R_SH_DIR8WPL] = "R_SH_DIR8WPL",
- [R_SH_DIR8WPZ] = "R_SH_DIR8WPZ",
- [R_SH_DIR8BP] = "R_SH_DIR8BP",
- [R_SH_DIR8W] = "R_SH_DIR8W",
- [R_SH_DIR8L] = "R_SH_DIR8L",
- [R_SH_SWITCH16] = "R_SH_SWITCH16",
- [R_SH_SWITCH32] = "R_SH_SWITCH32",
- [R_SH_USES] = "R_SH_USES",
- [R_SH_COUNT] = "R_SH_COUNT",
- [R_SH_ALIGN] = "R_SH_ALIGN",
- [R_SH_CODE] = "R_SH_CODE",
- [R_SH_DATA] = "R_SH_DATA",
- [R_SH_LABEL] = "R_SH_LABEL",
- [R_SH_SWITCH8] = "R_SH_SWITCH8",
- [R_SH_GNU_VTINHERIT] ="R_SH_GNU_VTINHERIT",
- [R_SH_GNU_VTENTRY] = "R_SH_GNU_VTENTRY"
- };
- static const char *map_table2[] =
- {
- [R_SH_TLS_GD_32] = "R_SH_TLS_GD_32",
- [R_SH_TLS_LD_32] = "R_SH_TLS_LD_32",
- [R_SH_TLS_LDO_32] = "R_SH_TLS_LDO_32",
- [R_SH_TLS_IE_32] = "R_SH_TLS_IE_32",
- [R_SH_TLS_LE_32] = "R_SH_TLS_LE_32",
- [R_SH_TLS_DTPMOD32] = "R_SH_TLS_DTPMOD32",
- [R_SH_TLS_DTPOFF32] = "R_SH_TLS_DTPOFF32",
- [R_SH_TLS_TPOFF32] = "R_SH_TLS_TPOFF32",
- [R_SH_GOT32 - R_SH_GOT32] = "R_SH_GOT32",
- [R_SH_PLT32 - R_SH_GOT32] = "R_SH_PLT32",
- [R_SH_COPY - R_SH_GOT32] = "R_SH_COPY",
- [R_SH_GLOB_DAT - R_SH_GOT32] = "R_SH_GLOB_DAT",
- [R_SH_JMP_SLOT - R_SH_GOT32] = "R_SH_JMP_SLOT",
- [R_SH_RELATIVE - R_SH_GOT32] = "R_SH_RELATIVE",
- [R_SH_GOTOFF - R_SH_GOT32] = "R_SH_GOTOFF",
- [R_SH_GOTPC - R_SH_GOT32] = "R_SH_GOTPC"
- };
-
- if (type >= 0
- && (size_t) type < sizeof (map_table1) / sizeof (map_table1[0]))
- return map_table1[type];
-
- if ((type - R_SH_TLS_GD_32) >= 0
- && ((size_t) (type - R_SH_TLS_GD_32)
- < sizeof (map_table2) / sizeof (map_table2[0])))
- return map_table2[type - R_SH_TLS_GD_32];
-
- return NULL;
-}
diff --git a/libebl/sparc_destr.c b/libebl/sparc_destr.c
deleted file mode 100644
index ced22917..00000000
--- a/libebl/sparc_destr.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Destructor for SPARC specific backend library.
- Copyright (C) 2002 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_sparc.h>
-
-
-void
-sparc_destr (bh)
- Ebl *bh;
-{
- /* Nothing to do so far. */
-}
diff --git a/libebl/sparc_init.c b/libebl/sparc_init.c
deleted file mode 100644
index 2bb1f790..00000000
--- a/libebl/sparc_init.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Initialization of SPARC specific backend library.
- Copyright (C) 2002 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_sparc.h>
-
-
-int
-sparc_init (elf, machine, eh, ehlen)
- Elf *elf;
- GElf_Half machine;
- Ebl *eh;
- size_t ehlen;
-{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return 1;
-
- /* We handle it. */
- if (machine == EM_SPARCV9)
- eh->name = "SPARC v9";
- else if (machine == EM_SPARC32PLUS)
- eh->name = "SPARC v8+";
- else
- eh->name = "SPARC";
- eh->reloc_type_name = sparc_reloc_type_name;
- eh->reloc_type_check = sparc_reloc_type_check;
- //eh->core_note = sparc_core_note;
- eh->destr = sparc_destr;
-
- return 0;
-}
diff --git a/libebl/sparc_symbol.c b/libebl/sparc_symbol.c
deleted file mode 100644
index eed31d11..00000000
--- a/libebl/sparc_symbol.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/* SPARC specific symbolic name handling.
- Copyright (C) 2002, 2003 Red Hat, Inc.
- Written by Jakub Jelinek <jakub@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <elf.h>
-#include <stddef.h>
-
-#include <libebl_sparc.h>
-
-
-/* Return of the backend. */
-const char *
-sparc_backend_name (void)
-{
- return "sparc";
-}
-
-
-/* Relocation mapping table. */
-static const char *reloc_map_table[] =
- {
- [R_SPARC_NONE] = "R_SPARC_NONE",
- [R_SPARC_8] = "R_SPARC_8",
- [R_SPARC_16] = "R_SPARC_16",
- [R_SPARC_32] = "R_SPARC_32",
- [R_SPARC_DISP8] = "R_SPARC_DISP8",
- [R_SPARC_DISP16] = "R_SPARC_DISP16",
- [R_SPARC_DISP32] = "R_SPARC_DISP32",
- [R_SPARC_WDISP30] = "R_SPARC_WDISP30",
- [R_SPARC_WDISP22] = "R_SPARC_WDISP22",
- [R_SPARC_HI22] = "R_SPARC_HI22",
- [R_SPARC_22] = "R_SPARC_22",
- [R_SPARC_13] = "R_SPARC_13",
- [R_SPARC_LO10] = "R_SPARC_LO10",
- [R_SPARC_GOT10] = "R_SPARC_GOT10",
- [R_SPARC_GOT13] = "R_SPARC_GOT13",
- [R_SPARC_GOT22] = "R_SPARC_GOT22",
- [R_SPARC_PC10] = "R_SPARC_PC10",
- [R_SPARC_PC22] = "R_SPARC_PC22",
- [R_SPARC_WPLT30] = "R_SPARC_WPLT30",
- [R_SPARC_COPY] = "R_SPARC_COPY",
- [R_SPARC_GLOB_DAT] = "R_SPARC_GLOB_DAT",
- [R_SPARC_JMP_SLOT] = "R_SPARC_JMP_SLOT",
- [R_SPARC_RELATIVE] = "R_SPARC_RELATIVE",
- [R_SPARC_UA32] = "R_SPARC_UA32",
- [R_SPARC_PLT32] = "R_SPARC_PLT32",
- [R_SPARC_HIPLT22] = "R_SPARC_HIPLT22",
- [R_SPARC_LOPLT10] = "R_SPARC_LOPLT10",
- [R_SPARC_PCPLT32] = "R_SPARC_PCPLT32",
- [R_SPARC_PCPLT22] = "R_SPARC_PCPLT22",
- [R_SPARC_PCPLT10] = "R_SPARC_PCPLT10",
- [R_SPARC_10] = "R_SPARC_10",
- [R_SPARC_11] = "R_SPARC_11",
- [R_SPARC_64] = "R_SPARC_64",
- [R_SPARC_OLO10] = "R_SPARC_OLO10",
- [R_SPARC_HH22] = "R_SPARC_HH22",
- [R_SPARC_HM10] = "R_SPARC_HM10",
- [R_SPARC_LM22] = "R_SPARC_LM22",
- [R_SPARC_PC_HH22] = "R_SPARC_PC_HH22",
- [R_SPARC_PC_HM10] = "R_SPARC_PC_HM10",
- [R_SPARC_PC_LM22] = "R_SPARC_PC_LM22",
- [R_SPARC_WDISP16] = "R_SPARC_WDISP16",
- [R_SPARC_WDISP19] = "R_SPARC_WDISP19",
- [R_SPARC_7] = "R_SPARC_7",
- [R_SPARC_5] = "R_SPARC_5",
- [R_SPARC_6] = "R_SPARC_6",
- [R_SPARC_DISP64] = "R_SPARC_DISP64",
- [R_SPARC_PLT64] = "R_SPARC_PLT64",
- [R_SPARC_HIX22] = "R_SPARC_HIX22",
- [R_SPARC_LOX10] = "R_SPARC_LOX10",
- [R_SPARC_H44] = "R_SPARC_H44",
- [R_SPARC_M44] = "R_SPARC_M44",
- [R_SPARC_L44] = "R_SPARC_L44",
- [R_SPARC_REGISTER] = "R_SPARC_REGISTER",
- [R_SPARC_UA64] = "R_SPARC_UA64",
- [R_SPARC_UA16] = "R_SPARC_UA16",
- [R_SPARC_TLS_GD_HI22] = "R_SPARC_TLS_GD_HI22",
- [R_SPARC_TLS_GD_LO10] = "R_SPARC_TLS_GD_LO10",
- [R_SPARC_TLS_GD_ADD] = "R_SPARC_TLS_GD_ADD",
- [R_SPARC_TLS_GD_CALL] = "R_SPARC_TLS_GD_CALL",
- [R_SPARC_TLS_LDM_HI22] = "R_SPARC_TLS_LDM_HI22",
- [R_SPARC_TLS_LDM_LO10] = "R_SPARC_TLS_LDM_LO10",
- [R_SPARC_TLS_LDM_ADD] = "R_SPARC_TLS_LDM_ADD",
- [R_SPARC_TLS_LDM_CALL] = "R_SPARC_TLS_LDM_CALL",
- [R_SPARC_TLS_LDO_HIX22] = "R_SPARC_TLS_LDO_HIX22",
- [R_SPARC_TLS_LDO_LOX10] = "R_SPARC_TLS_LDO_LOX10",
- [R_SPARC_TLS_LDO_ADD] = "R_SPARC_TLS_LDO_ADD",
- [R_SPARC_TLS_IE_HI22] = "R_SPARC_TLS_IE_HI22",
- [R_SPARC_TLS_IE_LO10] = "R_SPARC_TLS_IE_LO10",
- [R_SPARC_TLS_IE_LD] = "R_SPARC_TLS_IE_LD",
- [R_SPARC_TLS_IE_LDX] = "R_SPARC_TLS_IE_LDX",
- [R_SPARC_TLS_IE_ADD] = "R_SPARC_TLS_IE_ADD",
- [R_SPARC_TLS_LE_HIX22] = "R_SPARC_TLS_LE_HIX22",
- [R_SPARC_TLS_LE_LOX10] = "R_SPARC_TLS_LE_LOX10",
- [R_SPARC_TLS_DTPMOD32] = "R_SPARC_TLS_DTPMOD32",
- [R_SPARC_TLS_DTPMOD64] = "R_SPARC_TLS_DTPMOD64",
- [R_SPARC_TLS_DTPOFF32] = "R_SPARC_TLS_DTPOFF32",
- [R_SPARC_TLS_DTPOFF64] = "R_SPARC_TLS_DTPOFF64",
- [R_SPARC_TLS_TPOFF32] = "R_SPARC_TLS_TPOFF32",
- [R_SPARC_TLS_TPOFF64] = "R_SPARC_TLS_TPOFF64"
- };
-
-
-/* Determine relocation type string for sparc. */
-const char *
-sparc_reloc_type_name (int type, char *buf, size_t len)
-{
- /* High 24 bits of r_type are used for second addend in R_SPARC_OLO10. */
- if ((type & 0xff) == R_SPARC_OLO10)
- return reloc_map_table[type & 0xff];
-
- if (type < 0 || type >= R_SPARC_NUM)
- return NULL;
-
- return reloc_map_table[type];
-}
-
-
-/* Check for correct relocation type. */
-bool
-sparc_reloc_type_check (int type)
-{
- if ((type & 0xff) == R_SPARC_OLO10)
- return true;
- return (type >= R_SPARC_NONE && type < R_SPARC_NUM
- && reloc_map_table[type] != NULL) ? true : false;
-}
diff --git a/libebl/x86_64_destr.c b/libebl/x86_64_destr.c
deleted file mode 100644
index 754ccc99..00000000
--- a/libebl/x86_64_destr.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Destructor for x86_64 specific backend library.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_x86_64.h>
-
-
-void
-x86_64_destr (bh)
- Ebl *bh;
-{
- /* Nothing to do so far. */
-}
diff --git a/libebl/x86_64_init.c b/libebl/x86_64_init.c
deleted file mode 100644
index 5d922059..00000000
--- a/libebl/x86_64_init.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Initialization of x86-64 specific backend library.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl_x86_64.h>
-
-
-int
-x86_64_init (elf, machine, eh, ehlen)
- Elf *elf;
- GElf_Half machine;
- Ebl *eh;
- size_t ehlen;
-{
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return 1;
-
- /* We handle it. */
- eh->name = "AMD x86-64";
- eh->reloc_type_name = x86_64_reloc_type_name;
- eh->reloc_type_check = x86_64_reloc_type_check;
- eh->reloc_valid_use = x86_64_reloc_valid_use;
- //eh->core_note = i386_core_note;
- eh->destr = x86_64_destr;
-
- return 0;
-}
diff --git a/libebl/x86_64_symbol.c b/libebl/x86_64_symbol.c
deleted file mode 100644
index b0f53ea9..00000000
--- a/libebl/x86_64_symbol.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/* x86_64 specific symbolic name handling.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <elf.h>
-#include <stddef.h>
-
-#include <libebl_x86_64.h>
-
-
-/* Return of the backend. */
-const char *
-x86_64_backend_name (void)
-{
- return "x86-64";
-}
-
-
-/* Relocation mapping table. */
-static struct
-{
- const char *name;
- enum { both = 0, rel = 1, exec = 2 } appear;
-} reloc_map_table[] =
- {
- [R_X86_64_NONE] = { "R_X86_64_NONE", both },
- [R_X86_64_64] = { "R_X86_64_64", rel },
- [R_X86_64_PC32] = { "R_X86_64_PC32", rel },
- [R_X86_64_GOT32] = { "R_X86_64_GOT32", rel },
- [R_X86_64_PLT32] = { "R_X86_64_PLT32", rel },
- [R_X86_64_COPY] = { "R_X86_64_COPY", exec },
- [R_X86_64_GLOB_DAT] = { "R_X86_64_GLOB_DAT", exec },
- [R_X86_64_JUMP_SLOT] = { "R_X86_64_JUMP_SLOT", exec },
- [R_X86_64_RELATIVE] = { "R_X86_64_RELATIVE", exec },
- [R_X86_64_GOTPCREL] = { "R_X86_64_GOTPCREL", exec },
- [R_X86_64_32] = { "R_X86_64_32", rel },
- [R_X86_64_32S] = { "R_X86_64_32S", rel },
- [R_X86_64_16] = { "R_X86_64_16", rel },
- [R_X86_64_PC16] = { "R_X86_64_PC16", rel },
- [R_X86_64_8] = { "R_X86_64_8", rel },
- [R_X86_64_PC8] = { "R_X86_64_PC8", rel },
- [R_X86_64_DTPMOD64] = { "R_X86_64_DTPMOD64", rel },
- [R_X86_64_DTPOFF64] = { "R_X86_64_DTPOFF64", rel },
- [R_X86_64_TPOFF64] = { "R_X86_64_TPOFF64", rel },
- [R_X86_64_TLSGD] = { "R_X86_64_TLSGD", rel },
- [R_X86_64_TLSLD] = { "R_X86_64_TLSLD", rel },
- [R_X86_64_DTPOFF32] = { "R_X86_64_DTPOFF32", rel },
- [R_X86_64_GOTTPOFF] = { "R_X86_64_GOTTPOFF", rel },
- [R_X86_64_TPOFF32] = { "R_X86_64_TPOFF32", rel }
- };
-
-
-/* Determine relocation type string for x86-64. */
-const char *
-x86_64_reloc_type_name (int type, char *buf, size_t len)
-{
- if (type < 0 || type >= R_X86_64_NUM)
- return NULL;
-
- return reloc_map_table[type].name;
-}
-
-
-/* Check for correct relocation type. */
-bool
-x86_64_reloc_type_check (int type)
-{
- return (type >= R_X86_64_NONE && type < R_X86_64_NUM
- && reloc_map_table[type].name != NULL) ? true : false;
-}
-
-
-/* Check for correct relocation type use. */
-bool
-x86_64_reloc_valid_use (Elf *elf, int type)
-{
- if (type < R_X86_64_NONE || type >= R_X86_64_NUM
- || reloc_map_table[type].name == NULL)
- return false;
-
- Elf64_Ehdr *ehdr = elf64_getehdr (elf);
- assert (ehdr != NULL);
-
- if (reloc_map_table[type].appear == rel)
- return ehdr->e_type == ET_REL;
-
- if (reloc_map_table[type].appear == exec)
- return ehdr->e_type != ET_REL;
-
- assert (reloc_map_table[type].appear == both);
- return true;
-}
diff --git a/libelf-po/ChangeLog b/libelf-po/ChangeLog
deleted file mode 100644
index 78eb2ff1..00000000
--- a/libelf-po/ChangeLog
+++ /dev/null
@@ -1,11 +0,0 @@
-2004-01-18 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.in.in: Set PACKAGE to libelf.
-
-2004-01-17 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.in.in: Find mkinstalldirs script in right directory.
-
-2003-08-11 Ulrich Drepper <drepper@redhat.com>
-
- * Moved to CVS archive.
diff --git a/libelf-po/Makefile b/libelf-po/Makefile
deleted file mode 100644
index afd56475..00000000
--- a/libelf-po/Makefile
+++ /dev/null
@@ -1,369 +0,0 @@
-# Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2002 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU General Public
-# License but which still want to provide support for the GNU gettext
-# functionality.
-# Please note that the actual code of GNU gettext is covered by the GNU
-# General Public License and is *not* in the public domain.
-
-PACKAGE = libelf
-VERSION = 0.97
-
-SHELL = /bin/sh
-
-
-srcdir = .
-top_srcdir = ..
-
-
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-exec_prefix = ${prefix}
-datadir = ${prefix}/share
-localedir = $(datadir)/locale
-gettextsrcdir = $(datadir)/gettext/po
-top_builddir = ..
-
-INSTALL = /usr/bin/install -c
-INSTALL_DATA = ${INSTALL} -m 644
-MKINSTALLDIRS = config/mkinstalldirs
-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
-
-GMSGFMT = /usr/bin/msgfmt
-MSGFMT = /usr/bin/msgfmt
-XGETTEXT = /usr/bin/xgettext
-MSGMERGE = msgmerge
-MSGMERGE_UPDATE = /usr/bin/msgmerge --update
-MSGINIT = msginit
-MSGCONV = msgconv
-MSGFILTER = msgfilter
-
-POFILES =
-GMOFILES =
-UPDATEPOFILES =
-DUMMYPOFILES =
-DISTFILES.common = Makefile.in.in Makevars \
-$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
-DISTFILES = $(DISTFILES.common) POTFILES.in $(DOMAIN).pot \
-$(POFILES) $(GMOFILES) \
-$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
-
-POTFILES = \
- ../libelf/elf_error.c
-
-CATALOGS =
-
-# Makevars gets inserted here. (Don't remove this line!)
-# Makefile variables for PO directory in any package using GNU gettext.
-
-# Usually the message domain is the same as the package name.
-DOMAIN = $(PACKAGE)
-
-# These two variables depend on the location of this directory.
-subdir = po
-top_builddir = ..
-
-# These options get passed to xgettext.
-XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
-
-# This is the copyright holder that gets inserted into the header of the
-# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
-# package. (Note that the msgstr strings, extracted from the package's
-# sources, belong to the copyright holder of the package.) Translators are
-# expected to transfer the copyright for their translations to this person
-# or entity, or to disclaim their copyright. The empty string stands for
-# the public domain; in this case the translators are expected to disclaim
-# their copyright.
-COPYRIGHT_HOLDER = Red Hat, Inc.
-
-# This is the list of locale categories, beyond LC_MESSAGES, for which the
-# message catalogs shall be used. It is usually empty.
-EXTRA_LOCALE_CATEGORIES =
-
-.SUFFIXES:
-.SUFFIXES: .po .gmo .mo .nop .po-update
-
-.po.mo:
- $(MSGFMT) -c -o $@ $<
-
-.po.gmo:
- @lang=`echo $* | sed -e 's,.*/,,'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
- cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po
-
-
-all: all-yes
-
-all-yes: $(CATALOGS)
-all-no:
-
-# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
-# otherwise packages like GCC can not be built if only parts of the source
-# have been downloaded.
-
-$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in
- $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
- --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
- --files-from=$(srcdir)/POTFILES.in \
- --copyright-holder='$(COPYRIGHT_HOLDER)' \
- && test ! -f $(DOMAIN).po \
- || ( rm -f $(srcdir)/$(DOMAIN).pot \
- && mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot )
-
-$(srcdir)/$(DOMAIN).pot:
- $(MAKE) $(DOMAIN).pot-update
-
-$(POFILES): $(srcdir)/$(DOMAIN).pot
- @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
- cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
-
-
-install: install-exec install-data
-install-exec:
-install-data: install-data-yes
- if test "$(PACKAGE)" = "gettext"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- for file in $(DISTFILES.common); do \
- $(INSTALL_DATA) $(srcdir)/$$file \
- $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-install-data-no: all
-install-data-yes: all
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
- if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
- $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
- echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
- fi; \
- done; \
- done
-
-install-strip: install
-
-installdirs: installdirs-exec installdirs-data
-installdirs-exec:
-installdirs-data: installdirs-data-yes
- if test "$(PACKAGE)" = "gettext"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- else \
- : ; \
- fi
-installdirs-data-no:
-installdirs-data-yes:
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- fi; \
- done; \
- done
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall: uninstall-exec uninstall-data
-uninstall-exec:
-uninstall-data: uninstall-data-yes
- if test "$(PACKAGE)" = "gettext"; then \
- for file in $(DISTFILES.common); do \
- rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-uninstall-data-no:
-uninstall-data-yes:
- catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- done; \
- done
-
-check: all
-
-dvi info tags TAGS ID:
-
-mostlyclean:
- rm -f core core.* $(DOMAIN).po *.new.po
- rm -fr *.o
-
-clean: mostlyclean
-
-distclean: clean
- rm -f Makefile Makefile.in POTFILES *.mo
-
-maintainer-clean: distclean
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
- rm -f $(GMOFILES)
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir:
- $(MAKE) update-po
- @$(MAKE) dist2
-# This is a separate target because 'update-po' must be executed before.
-dist2: $(DISTFILES)
- dists="$(DISTFILES)"; \
- if test -f $(srcdir)/ChangeLog; then dists="$$dists ChangeLog"; fi; \
- if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
- for file in $$dists; do \
- if test -f $$file; then \
- cp -p $$file $(distdir); \
- else \
- cp -p $(srcdir)/$$file $(distdir); \
- fi; \
- done
-
-update-po: Makefile
- $(MAKE) $(DOMAIN).pot-update
- $(MAKE) $(UPDATEPOFILES)
- $(MAKE) update-gmo
-
-# General rule for updating PO files.
-
-.nop.po-update:
- @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
- if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
- tmpdir=`pwd`; \
- echo "$$lang:"; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
- cd $(srcdir); \
- if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
- rm -f $$tmpdir/$$lang.new.po; \
- else \
- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
- :; \
- else \
- echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
- exit 1; \
- fi; \
- fi; \
- else \
- echo "msgmerge for $$lang.po failed!" 1>&2; \
- rm -f $$tmpdir/$$lang.new.po; \
- fi
-
-$(DUMMYPOFILES):
-
-update-gmo: Makefile $(GMOFILES)
- @:
-
-Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
- $(SHELL) ./config.status
-
-force:
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-# Special Makefile rules for English message catalogs with quotation marks.
-
-DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
-
-.SUFFIXES: .insert-header .po-update-en
-
-en@quot.po-update: en@quot.po-update-en
-en@boldquot.po-update: en@boldquot.po-update-en
-
-.insert-header.po-update-en:
- @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
- if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
- tmpdir=`pwd`; \
- echo "$$lang:"; \
- ll=`echo $$lang | sed -e 's/@.*//'`; \
- LC_ALL=C; export LC_ALL; \
- cd $(srcdir); \
- if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
- rm -f $$tmpdir/$$lang.new.po; \
- else \
- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
- :; \
- else \
- echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
- exit 1; \
- fi; \
- fi; \
- else \
- echo "creation of $$lang.po failed!" 1>&2; \
- rm -f $$tmpdir/$$lang.new.po; \
- fi
-
-en@quot.insert-header: insert-header.sin
- sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
-
-en@boldquot.insert-header: insert-header.sin
- sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
-
-mostlyclean: mostlyclean-quot
-mostlyclean-quot:
- rm -f *.insert-header
diff --git a/libelf-po/Makefile.in b/libelf-po/Makefile.in
deleted file mode 100644
index 21eb20d3..00000000
--- a/libelf-po/Makefile.in
+++ /dev/null
@@ -1,301 +0,0 @@
-# Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2002 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU General Public
-# License but which still want to provide support for the GNU gettext
-# functionality.
-# Please note that the actual code of GNU gettext is covered by the GNU
-# General Public License and is *not* in the public domain.
-
-PACKAGE = libelf
-VERSION = 0.97
-
-SHELL = /bin/sh
-
-
-srcdir = .
-top_srcdir = ..
-
-
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-exec_prefix = ${prefix}
-datadir = ${prefix}/share
-localedir = $(datadir)/locale
-gettextsrcdir = $(datadir)/gettext/po
-top_builddir = ..
-
-INSTALL = /usr/bin/install -c
-INSTALL_DATA = ${INSTALL} -m 644
-MKINSTALLDIRS = config/mkinstalldirs
-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
-
-GMSGFMT = /usr/bin/msgfmt
-MSGFMT = /usr/bin/msgfmt
-XGETTEXT = /usr/bin/xgettext
-MSGMERGE = msgmerge
-MSGMERGE_UPDATE = /usr/bin/msgmerge --update
-MSGINIT = msginit
-MSGCONV = msgconv
-MSGFILTER = msgfilter
-
-POFILES = @POFILES@
-GMOFILES = @GMOFILES@
-UPDATEPOFILES = @UPDATEPOFILES@
-DUMMYPOFILES = @DUMMYPOFILES@
-DISTFILES.common = Makefile.in.in Makevars \
-$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
-DISTFILES = $(DISTFILES.common) POTFILES.in $(DOMAIN).pot \
-$(POFILES) $(GMOFILES) \
-$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
-
-POTFILES = \
-
-CATALOGS = @CATALOGS@
-
-# Makevars gets inserted here. (Don't remove this line!)
-
-.SUFFIXES:
-.SUFFIXES: .po .gmo .mo .nop .po-update
-
-.po.mo:
- $(MSGFMT) -c -o $@ $<
-
-.po.gmo:
- @lang=`echo $* | sed -e 's,.*/,,'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
- cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po
-
-
-all: all-yes
-
-all-yes: $(CATALOGS)
-all-no:
-
-# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
-# otherwise packages like GCC can not be built if only parts of the source
-# have been downloaded.
-
-$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in
- $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
- --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
- --files-from=$(srcdir)/POTFILES.in \
- --copyright-holder='$(COPYRIGHT_HOLDER)' \
- && test ! -f $(DOMAIN).po \
- || ( rm -f $(srcdir)/$(DOMAIN).pot \
- && mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot )
-
-$(srcdir)/$(DOMAIN).pot:
- $(MAKE) $(DOMAIN).pot-update
-
-$(POFILES): $(srcdir)/$(DOMAIN).pot
- @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
- cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
-
-
-install: install-exec install-data
-install-exec:
-install-data: install-data-yes
- if test "$(PACKAGE)" = "gettext"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- for file in $(DISTFILES.common); do \
- $(INSTALL_DATA) $(srcdir)/$$file \
- $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-install-data-no: all
-install-data-yes: all
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
- if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
- $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
- echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
- fi; \
- done; \
- done
-
-install-strip: install
-
-installdirs: installdirs-exec installdirs-data
-installdirs-exec:
-installdirs-data: installdirs-data-yes
- if test "$(PACKAGE)" = "gettext"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- else \
- : ; \
- fi
-installdirs-data-no:
-installdirs-data-yes:
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- fi; \
- done; \
- done
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall: uninstall-exec uninstall-data
-uninstall-exec:
-uninstall-data: uninstall-data-yes
- if test "$(PACKAGE)" = "gettext"; then \
- for file in $(DISTFILES.common); do \
- rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-uninstall-data-no:
-uninstall-data-yes:
- catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- done; \
- done
-
-check: all
-
-dvi info tags TAGS ID:
-
-mostlyclean:
- rm -f core core.* $(DOMAIN).po *.new.po
- rm -fr *.o
-
-clean: mostlyclean
-
-distclean: clean
- rm -f Makefile Makefile.in POTFILES *.mo
-
-maintainer-clean: distclean
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
- rm -f $(GMOFILES)
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir:
- $(MAKE) update-po
- @$(MAKE) dist2
-# This is a separate target because 'update-po' must be executed before.
-dist2: $(DISTFILES)
- dists="$(DISTFILES)"; \
- if test -f $(srcdir)/ChangeLog; then dists="$$dists ChangeLog"; fi; \
- if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
- for file in $$dists; do \
- if test -f $$file; then \
- cp -p $$file $(distdir); \
- else \
- cp -p $(srcdir)/$$file $(distdir); \
- fi; \
- done
-
-update-po: Makefile
- $(MAKE) $(DOMAIN).pot-update
- $(MAKE) $(UPDATEPOFILES)
- $(MAKE) update-gmo
-
-# General rule for updating PO files.
-
-.nop.po-update:
- @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
- if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
- tmpdir=`pwd`; \
- echo "$$lang:"; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
- cd $(srcdir); \
- if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
- rm -f $$tmpdir/$$lang.new.po; \
- else \
- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
- :; \
- else \
- echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
- exit 1; \
- fi; \
- fi; \
- else \
- echo "msgmerge for $$lang.po failed!" 1>&2; \
- rm -f $$tmpdir/$$lang.new.po; \
- fi
-
-$(DUMMYPOFILES):
-
-update-gmo: Makefile $(GMOFILES)
- @:
-
-Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
- $(SHELL) ./config.status
-
-force:
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libelf-po/Makefile.in.in b/libelf-po/Makefile.in.in
deleted file mode 100644
index 4a7a2688..00000000
--- a/libelf-po/Makefile.in.in
+++ /dev/null
@@ -1,301 +0,0 @@
-# Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2002 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU General Public
-# License but which still want to provide support for the GNU gettext
-# functionality.
-# Please note that the actual code of GNU gettext is covered by the GNU
-# General Public License and is *not* in the public domain.
-
-PACKAGE = libelf
-VERSION = @VERSION@
-
-SHELL = /bin/sh
-@SET_MAKE@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datadir = @datadir@
-localedir = $(datadir)/locale
-gettextsrcdir = $(datadir)/gettext/po
-top_builddir = ..
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
-
-GMSGFMT = @GMSGFMT@
-MSGFMT = @MSGFMT@
-XGETTEXT = @XGETTEXT@
-MSGMERGE = msgmerge
-MSGMERGE_UPDATE = @MSGMERGE@ --update
-MSGINIT = msginit
-MSGCONV = msgconv
-MSGFILTER = msgfilter
-
-POFILES = @POFILES@
-GMOFILES = @GMOFILES@
-UPDATEPOFILES = @UPDATEPOFILES@
-DUMMYPOFILES = @DUMMYPOFILES@
-DISTFILES.common = Makefile.in.in Makevars \
-$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
-DISTFILES = $(DISTFILES.common) POTFILES.in $(DOMAIN).pot \
-$(POFILES) $(GMOFILES) \
-$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
-
-POTFILES = \
-
-CATALOGS = @CATALOGS@
-
-# Makevars gets inserted here. (Don't remove this line!)
-
-.SUFFIXES:
-.SUFFIXES: .po .gmo .mo .nop .po-update
-
-.po.mo:
- $(MSGFMT) -c -o $@ $<
-
-.po.gmo:
- @lang=`echo $* | sed -e 's,.*/,,'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
- cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po
-
-
-all: all-@USE_NLS@
-
-all-yes: $(CATALOGS)
-all-no:
-
-# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
-# otherwise packages like GCC can not be built if only parts of the source
-# have been downloaded.
-
-$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in
- $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
- --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
- --files-from=$(srcdir)/POTFILES.in \
- --copyright-holder='$(COPYRIGHT_HOLDER)' \
- && test ! -f $(DOMAIN).po \
- || ( rm -f $(srcdir)/$(DOMAIN).pot \
- && mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot )
-
-$(srcdir)/$(DOMAIN).pot:
- $(MAKE) $(DOMAIN).pot-update
-
-$(POFILES): $(srcdir)/$(DOMAIN).pot
- @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
- cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
-
-
-install: install-exec install-data
-install-exec:
-install-data: install-data-@USE_NLS@
- if test "$(PACKAGE)" = "gettext"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- for file in $(DISTFILES.common); do \
- $(INSTALL_DATA) $(srcdir)/$$file \
- $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-install-data-no: all
-install-data-yes: all
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
- if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
- $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
- echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
- fi; \
- done; \
- done
-
-install-strip: install
-
-installdirs: installdirs-exec installdirs-data
-installdirs-exec:
-installdirs-data: installdirs-data-@USE_NLS@
- if test "$(PACKAGE)" = "gettext"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- else \
- : ; \
- fi
-installdirs-data-no:
-installdirs-data-yes:
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- fi; \
- done; \
- done
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall: uninstall-exec uninstall-data
-uninstall-exec:
-uninstall-data: uninstall-data-@USE_NLS@
- if test "$(PACKAGE)" = "gettext"; then \
- for file in $(DISTFILES.common); do \
- rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-uninstall-data-no:
-uninstall-data-yes:
- catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- done; \
- done
-
-check: all
-
-dvi info tags TAGS ID:
-
-mostlyclean:
- rm -f core core.* $(DOMAIN).po *.new.po
- rm -fr *.o
-
-clean: mostlyclean
-
-distclean: clean
- rm -f Makefile Makefile.in POTFILES *.mo
-
-maintainer-clean: distclean
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
- rm -f $(GMOFILES)
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir:
- $(MAKE) update-po
- @$(MAKE) dist2
-# This is a separate target because 'update-po' must be executed before.
-dist2: $(DISTFILES)
- dists="$(DISTFILES)"; \
- if test -f $(srcdir)/ChangeLog; then dists="$$dists ChangeLog"; fi; \
- if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
- for file in $$dists; do \
- if test -f $$file; then \
- cp -p $$file $(distdir); \
- else \
- cp -p $(srcdir)/$$file $(distdir); \
- fi; \
- done
-
-update-po: Makefile
- $(MAKE) $(DOMAIN).pot-update
- $(MAKE) $(UPDATEPOFILES)
- $(MAKE) update-gmo
-
-# General rule for updating PO files.
-
-.nop.po-update:
- @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
- if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
- tmpdir=`pwd`; \
- echo "$$lang:"; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
- cd $(srcdir); \
- if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
- rm -f $$tmpdir/$$lang.new.po; \
- else \
- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
- :; \
- else \
- echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
- exit 1; \
- fi; \
- fi; \
- else \
- echo "msgmerge for $$lang.po failed!" 1>&2; \
- rm -f $$tmpdir/$$lang.new.po; \
- fi
-
-$(DUMMYPOFILES):
-
-update-gmo: Makefile $(GMOFILES)
- @:
-
-Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
- $(SHELL) ./config.status
-
-force:
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libelf-po/Makevars b/libelf-po/Makevars
deleted file mode 100644
index 0accb70a..00000000
--- a/libelf-po/Makevars
+++ /dev/null
@@ -1,25 +0,0 @@
-# Makefile variables for PO directory in any package using GNU gettext.
-
-# Usually the message domain is the same as the package name.
-DOMAIN = $(PACKAGE)
-
-# These two variables depend on the location of this directory.
-subdir = po
-top_builddir = ..
-
-# These options get passed to xgettext.
-XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
-
-# This is the copyright holder that gets inserted into the header of the
-# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
-# package. (Note that the msgstr strings, extracted from the package's
-# sources, belong to the copyright holder of the package.) Translators are
-# expected to transfer the copyright for their translations to this person
-# or entity, or to disclaim their copyright. The empty string stands for
-# the public domain; in this case the translators are expected to disclaim
-# their copyright.
-COPYRIGHT_HOLDER = Red Hat, Inc.
-
-# This is the list of locale categories, beyond LC_MESSAGES, for which the
-# message catalogs shall be used. It is usually empty.
-EXTRA_LOCALE_CATEGORIES =
diff --git a/libelf-po/POTFILES b/libelf-po/POTFILES
deleted file mode 100644
index f17f924d..00000000
--- a/libelf-po/POTFILES
+++ /dev/null
@@ -1 +0,0 @@
- ../libelf/elf_error.c
diff --git a/libelf-po/POTFILES.in b/libelf-po/POTFILES.in
deleted file mode 100644
index b25620fb..00000000
--- a/libelf-po/POTFILES.in
+++ /dev/null
@@ -1,5 +0,0 @@
-# List of files which containing translatable strings.
-# Copyright (C) 2000 Red Hat, Inc.
-
-# Library sources
-libelf/elf_error.c
diff --git a/libelf-po/Rules-quot b/libelf-po/Rules-quot
deleted file mode 100644
index 5f46d237..00000000
--- a/libelf-po/Rules-quot
+++ /dev/null
@@ -1,42 +0,0 @@
-# Special Makefile rules for English message catalogs with quotation marks.
-
-DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
-
-.SUFFIXES: .insert-header .po-update-en
-
-en@quot.po-update: en@quot.po-update-en
-en@boldquot.po-update: en@boldquot.po-update-en
-
-.insert-header.po-update-en:
- @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
- if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
- tmpdir=`pwd`; \
- echo "$$lang:"; \
- ll=`echo $$lang | sed -e 's/@.*//'`; \
- LC_ALL=C; export LC_ALL; \
- cd $(srcdir); \
- if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
- rm -f $$tmpdir/$$lang.new.po; \
- else \
- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
- :; \
- else \
- echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
- exit 1; \
- fi; \
- fi; \
- else \
- echo "creation of $$lang.po failed!" 1>&2; \
- rm -f $$tmpdir/$$lang.new.po; \
- fi
-
-en@quot.insert-header: insert-header.sin
- sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
-
-en@boldquot.insert-header: insert-header.sin
- sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
-
-mostlyclean: mostlyclean-quot
-mostlyclean-quot:
- rm -f *.insert-header
diff --git a/libelf-po/boldquot.sed b/libelf-po/boldquot.sed
deleted file mode 100644
index 4b937aa5..00000000
--- a/libelf-po/boldquot.sed
+++ /dev/null
@@ -1,10 +0,0 @@
-s/"\([^"]*\)"/“\1”/g
-s/`\([^`']*\)'/‘\1’/g
-s/ '\([^`']*\)' / ‘\1’ /g
-s/ '\([^`']*\)'$/ ‘\1’/g
-s/^'\([^`']*\)' /‘\1’ /g
-s/“”/""/g
-s/“/“/g
-s/”/”/g
-s/‘/‘/g
-s/’/’/g
diff --git a/libelf-po/insert-header.sin b/libelf-po/insert-header.sin
deleted file mode 100644
index b26de01f..00000000
--- a/libelf-po/insert-header.sin
+++ /dev/null
@@ -1,23 +0,0 @@
-# Sed script that inserts the file called HEADER before the header entry.
-#
-# At each occurrence of a line starting with "msgid ", we execute the following
-# commands. At the first occurrence, insert the file. At the following
-# occurrences, do nothing. The distinction between the first and the following
-# occurrences is achieved by looking at the hold space.
-/^msgid /{
-x
-# Test if the hold space is empty.
-s/m/m/
-ta
-# Yes it was empty. First occurrence. Read the file.
-r HEADER
-# Output the file's contents by reading the next line. But don't lose the
-# current line while doing this.
-g
-N
-bb
-:a
-# The hold space was nonempty. Following occurrences. Do nothing.
-x
-:b
-}
diff --git a/libelf-po/libelf.pot b/libelf-po/libelf.pot
deleted file mode 100644
index dfcd7704..00000000
--- a/libelf-po/libelf.pot
+++ /dev/null
@@ -1,177 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Red Hat, Inc.
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-09-25 12:42-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: libelf/elf_error.c:80
-msgid "no error"
-msgstr ""
-
-#: libelf/elf_error.c:83
-msgid "unknown error"
-msgstr ""
-
-#: libelf/elf_error.c:87
-msgid "unknown version"
-msgstr ""
-
-#: libelf/elf_error.c:91
-msgid "unknown type"
-msgstr ""
-
-#: libelf/elf_error.c:95
-msgid "invalid `Elf' handle"
-msgstr ""
-
-#: libelf/elf_error.c:99
-msgid "invalid size of source operand"
-msgstr ""
-
-#: libelf/elf_error.c:103
-msgid "invalid size of destination operand"
-msgstr ""
-
-#: libelf/elf_error.c:107
-msgid "invalid encoding"
-msgstr ""
-
-#: libelf/elf_error.c:111
-msgid "out of memory"
-msgstr ""
-
-#: libelf/elf_error.c:115
-msgid "invalid file descriptor"
-msgstr ""
-
-#: libelf/elf_error.c:119
-msgid "invalid operation"
-msgstr ""
-
-#: libelf/elf_error.c:123
-msgid "ELF version not set"
-msgstr ""
-
-#: libelf/elf_error.c:127 libelf/elf_error.c:175
-msgid "invalid command"
-msgstr ""
-
-#: libelf/elf_error.c:131 libelf/elf_error.c:191
-msgid "offset out of range"
-msgstr ""
-
-#: libelf/elf_error.c:135
-msgid "invalid fmag field in archive header"
-msgstr ""
-
-#: libelf/elf_error.c:139
-msgid "invalid archive file"
-msgstr ""
-
-#: libelf/elf_error.c:143
-msgid "descriptor is not for an archive"
-msgstr ""
-
-#: libelf/elf_error.c:147
-msgid "no index available"
-msgstr ""
-
-#: libelf/elf_error.c:151
-msgid "cannot read data from file"
-msgstr ""
-
-#: libelf/elf_error.c:155
-msgid "cannot write data to file"
-msgstr ""
-
-#: libelf/elf_error.c:159
-msgid "invalid binary class"
-msgstr ""
-
-#: libelf/elf_error.c:163
-msgid "invalid section index"
-msgstr ""
-
-#: libelf/elf_error.c:167
-msgid "invalid operand"
-msgstr ""
-
-#: libelf/elf_error.c:171
-msgid "invalid section"
-msgstr ""
-
-#: libelf/elf_error.c:179
-msgid "executable header not created first"
-msgstr ""
-
-#: libelf/elf_error.c:183
-msgid "file descriptor disabled"
-msgstr ""
-
-#: libelf/elf_error.c:187
-msgid "archive/member fildes mismatch"
-msgstr ""
-
-#: libelf/elf_error.c:195
-msgid "cannot manipulate null section"
-msgstr ""
-
-#: libelf/elf_error.c:199
-msgid "data/scn mismatch"
-msgstr ""
-
-#: libelf/elf_error.c:203
-msgid "invalid section header"
-msgstr ""
-
-#: libelf/elf_error.c:207
-msgid "invalid data"
-msgstr ""
-
-#: libelf/elf_error.c:211
-msgid "unknown data encoding"
-msgstr ""
-
-#: libelf/elf_error.c:215
-msgid "section `sh_size' too small for data"
-msgstr ""
-
-#: libelf/elf_error.c:219
-msgid "invalid section alignment"
-msgstr ""
-
-#: libelf/elf_error.c:223
-msgid "invalid section entry size"
-msgstr ""
-
-#: libelf/elf_error.c:227
-msgid "update() for write on read-only file"
-msgstr ""
-
-#: libelf/elf_error.c:231
-msgid "no such file"
-msgstr ""
-
-#: libelf/elf_error.c:235
-msgid "only relocatable files can contain section groups"
-msgstr ""
-
-#: libelf/elf_error.c:240
-msgid "program header only allowed in executables and shared objects"
-msgstr ""
-
-#: libelf/elf_error.c:245
-msgid "file has no program header"
-msgstr ""
diff --git a/libelf-po/quot.sed b/libelf-po/quot.sed
deleted file mode 100644
index 0122c463..00000000
--- a/libelf-po/quot.sed
+++ /dev/null
@@ -1,6 +0,0 @@
-s/"\([^"]*\)"/“\1”/g
-s/`\([^`']*\)'/‘\1’/g
-s/ '\([^`']*\)' / ‘\1’ /g
-s/ '\([^`']*\)'$/ ‘\1’/g
-s/^'\([^`']*\)' /‘\1’ /g
-s/“”/""/g
diff --git a/libelf/ChangeLog b/libelf/ChangeLog
deleted file mode 100644
index a92c1915..00000000
--- a/libelf/ChangeLog
+++ /dev/null
@@ -1,62 +0,0 @@
-2004-09-25 Ulrich Drepper <drepper@redhat.com>
-
- * elf32_checksum.c: Make compile with gcc 4.0.
- * elf32_updatefile.c: Likewise.
- * elf32_updatenull.c: Likewise.
- * elf_begin.c: Likewise.
- * elf_error.c: Likewise.
- * elf_getdata.c: Likewise.
- * elf_getident.c: Likewise.
-
-2004-04-01 Ulrich Drepper <drepper@redhat.com>
-
- * elf.h: Update from glibc.
-
-2004-01-23 Ulrich Drepper <drepper@redhat.com>
-
- * elf_update.c: Fix locking.
- * elf_clone.c: Likewise.
-
- * libelf.h: Define ELF_T_LIB.
- * gelf_getlib.c: New file.
- * gelf_update_lib.c: New file.
- * gelf.h: Declare the new functions. Define GElf_Lib.
- * abstract.h: Define Lib, Lib32, Lib64.
- * gelf_xlate.c (__elf_xfctstom): Add ELF_T_LIB entry.
- * gelf_xlate.h: Add entry for ElfXX_Lib.
- * elf_getdata.c: Recognize SHT_GNU_LIBLIST as a known section type.
- * libelf.map: Add new symbols to ELFUTILS_1.1.
- * Makefile.am (libelf_a_SOURCES): Add gelf_getlib.c and
- gelf_update_lib.c.
-
-2004-01-17 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am: Support building with mudflap.
-
- * gelf_xlate.c (INLINE3): Avoid using cast as lvalue.
- * dl-hash.h (_dl_elf_hash): Likewise.
-
-2004-01-05 Ulrich Drepper <drepper@redhat.com>
-
- * elf-knowledge.h: New file. From libelf subdir.
- * Makefile.am (euincludedir): Define.
- (euinclude_HEADERS): Add elf-knowledge.h.
-
-2003-09-24 Ulrich Drepper <drepper@redhat.com>
-
- * elf.h: Define some PT_IA_64_HP_* constants.
-
-2003-09-23 Jakub Jelinek <jakub@redhat.com>
-
- * libelfP.h (struct Elf): Move state.elf64.sizestr_offset after
- state.elf64.scnincr to match state.elf{,32}.
-
-2003-08-12 Ulrich Drepper <drepper@redhat.com>
-
- * elf32_updatefile.c (__updatemmap): When writing back file where
- some sections have not been read in, count their sizes based on
- the section header.
-
-2003-08-11 Ulrich Drepper <drepper@redhat.com>
-
- * Moved to CVS archive.
diff --git a/libelf/Makefile b/libelf/Makefile
deleted file mode 100644
index 064e57bd..00000000
--- a/libelf/Makefile
+++ /dev/null
@@ -1,758 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# libelf/Makefile. Generated from Makefile.in by configure.
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-
-
-SOURCES = $(libelf_a_SOURCES) $(libelf_pic_a_SOURCES) $(libelf_so_SOURCES)
-
-srcdir = .
-top_srcdir = ..
-
-pkgdatadir = $(datadir)/elfutils
-pkglibdir = $(libdir)/elfutils
-pkgincludedir = $(includedir)/elfutils
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = /usr/bin/install -c
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = i686-pc-linux-gnu
-host_triplet = i686-pc-linux-gnu
-noinst_PROGRAMS = $(am__EXEEXT_1)
-#am_libelf_pic_a_OBJECTS =
-subdir = libelf
-DIST_COMMON = $(euinclude_HEADERS) $(include_HEADERS) \
- $(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)" \
- "$(DESTDIR)$(includedir)"
-libLIBRARIES_INSTALL = $(INSTALL_DATA)
-LIBRARIES = $(lib_LIBRARIES) $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libelf_a_AR = $(AR) $(ARFLAGS)
-libelf_a_LIBADD =
-am_libelf_a_OBJECTS = elf_version.$(OBJEXT) elf_hash.$(OBJEXT) \
- elf_error.$(OBJEXT) elf_fill.$(OBJEXT) elf_begin.$(OBJEXT) \
- elf_next.$(OBJEXT) elf_rand.$(OBJEXT) elf_end.$(OBJEXT) \
- elf_kind.$(OBJEXT) gelf_getclass.$(OBJEXT) \
- elf_getbase.$(OBJEXT) elf_getident.$(OBJEXT) \
- elf32_fsize.$(OBJEXT) elf64_fsize.$(OBJEXT) \
- gelf_fsize.$(OBJEXT) elf32_xlatetof.$(OBJEXT) \
- elf32_xlatetom.$(OBJEXT) elf64_xlatetof.$(OBJEXT) \
- elf64_xlatetom.$(OBJEXT) gelf_xlate.$(OBJEXT) \
- elf32_getehdr.$(OBJEXT) elf64_getehdr.$(OBJEXT) \
- gelf_getehdr.$(OBJEXT) elf32_newehdr.$(OBJEXT) \
- elf64_newehdr.$(OBJEXT) gelf_newehdr.$(OBJEXT) \
- gelf_update_ehdr.$(OBJEXT) elf32_getphdr.$(OBJEXT) \
- elf64_getphdr.$(OBJEXT) gelf_getphdr.$(OBJEXT) \
- elf32_newphdr.$(OBJEXT) elf64_newphdr.$(OBJEXT) \
- gelf_newphdr.$(OBJEXT) gelf_update_phdr.$(OBJEXT) \
- elf_getarhdr.$(OBJEXT) elf_getarsym.$(OBJEXT) \
- elf_rawfile.$(OBJEXT) elf_readall.$(OBJEXT) elf_cntl.$(OBJEXT) \
- elf_getscn.$(OBJEXT) elf_nextscn.$(OBJEXT) \
- elf_ndxscn.$(OBJEXT) elf_newscn.$(OBJEXT) \
- elf32_getshdr.$(OBJEXT) elf64_getshdr.$(OBJEXT) \
- gelf_getshdr.$(OBJEXT) gelf_update_shdr.$(OBJEXT) \
- elf_strptr.$(OBJEXT) elf_rawdata.$(OBJEXT) \
- elf_getdata.$(OBJEXT) elf_newdata.$(OBJEXT) \
- elf_flagelf.$(OBJEXT) elf_flagehdr.$(OBJEXT) \
- elf_flagphdr.$(OBJEXT) elf_flagscn.$(OBJEXT) \
- elf_flagshdr.$(OBJEXT) elf_flagdata.$(OBJEXT) \
- elf_memory.$(OBJEXT) elf_update.$(OBJEXT) \
- elf32_updatenull.$(OBJEXT) elf64_updatenull.$(OBJEXT) \
- elf32_updatefile.$(OBJEXT) elf64_updatefile.$(OBJEXT) \
- gelf_getsym.$(OBJEXT) gelf_update_sym.$(OBJEXT) \
- gelf_getversym.$(OBJEXT) gelf_getverneed.$(OBJEXT) \
- gelf_getvernaux.$(OBJEXT) gelf_getverdef.$(OBJEXT) \
- gelf_getverdaux.$(OBJEXT) gelf_getrel.$(OBJEXT) \
- gelf_getrela.$(OBJEXT) gelf_update_rel.$(OBJEXT) \
- gelf_update_rela.$(OBJEXT) gelf_getdyn.$(OBJEXT) \
- gelf_update_dyn.$(OBJEXT) gelf_getmove.$(OBJEXT) \
- gelf_update_move.$(OBJEXT) gelf_getsyminfo.$(OBJEXT) \
- gelf_update_syminfo.$(OBJEXT) gelf_xlatetof.$(OBJEXT) \
- gelf_xlatetom.$(OBJEXT) nlist.$(OBJEXT) \
- gelf_getsymshndx.$(OBJEXT) gelf_update_symshndx.$(OBJEXT) \
- gelf_update_versym.$(OBJEXT) gelf_update_verneed.$(OBJEXT) \
- gelf_update_vernaux.$(OBJEXT) gelf_update_verdef.$(OBJEXT) \
- gelf_update_verdaux.$(OBJEXT) elf_getshnum.$(OBJEXT) \
- elf_getshstrndx.$(OBJEXT) gelf_checksum.$(OBJEXT) \
- elf32_checksum.$(OBJEXT) elf64_checksum.$(OBJEXT) \
- gelf_rawchunk.$(OBJEXT) gelf_freechunk.$(OBJEXT) \
- libelf_crc32.$(OBJEXT) libelf_next_prime.$(OBJEXT) \
- elf_clone.$(OBJEXT) gelf_getlib.$(OBJEXT) \
- gelf_update_lib.$(OBJEXT)
-libelf_a_OBJECTS = $(am_libelf_a_OBJECTS)
-libelf_pic_a_AR = $(AR) $(ARFLAGS)
-libelf_pic_a_LIBADD =
-libelf_pic_a_OBJECTS = $(am_libelf_pic_a_OBJECTS)
-am__EXEEXT_1 = libelf.so$(EXEEXT)
-PROGRAMS = $(noinst_PROGRAMS)
-am_libelf_so_OBJECTS =
-libelf_so_OBJECTS = $(am_libelf_so_OBJECTS)
-libelf_so_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libelf_a_SOURCES) $(libelf_pic_a_SOURCES) \
- $(libelf_so_SOURCES)
-DIST_SOURCES = $(libelf_a_SOURCES) $(libelf_pic_a_SOURCES) \
- $(libelf_so_SOURCES)
-euincludeHEADERS_INSTALL = $(INSTALL_HEADER)
-includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(euinclude_HEADERS) $(include_HEADERS) $(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run aclocal-1.9
-AMDEP_FALSE = #
-AMDEP_TRUE =
-AMTAR = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run tar
-AUTOCONF = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoconf
-AUTOHEADER = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoheader
-AUTOMAKE = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run automake-1.9
-AWK = gawk
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CFLAGS = -g -O2
-CPP = gcc -E
-CPPFLAGS =
-CYGPATH_W = echo
-DATADIRNAME = ${prefix}/share
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H
-DEPDIR = .deps
-ECHO_C =
-ECHO_N = -n
-ECHO_T =
-EGREP = grep -E
-EXEEXT =
-GMSGFMT = /usr/bin/msgfmt
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
-INTLLIBS =
-LDFLAGS =
-LEX = flex
-LEXLIB = -lfl
-LEX_OUTPUT_ROOT = lex.yy
-LIBICONV = -liconv
-LIBINTL =
-LIBOBJS =
-LIBS =
-LOCALEDIR = ${prefix}/share
-LTLIBICONV = -liconv
-LTLIBINTL =
-LTLIBOBJS =
-MAKEINFO = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run makeinfo
-MKINSTALLDIRS = config/mkinstalldirs
-MSGFMT = /usr/bin/msgfmt
-MSGMERGE = /usr/bin/msgmerge
-MUDFLAP_FALSE =
-MUDFLAP_TRUE = #
-NATIVE_LD_FALSE =
-NATIVE_LD_TRUE = #
-OBJEXT = o
-PACKAGE = elfutils
-PACKAGE_BUGREPORT = http://bugzilla.redhat.com/bugzilla/
-PACKAGE_NAME = Red Hat elfutils
-PACKAGE_STRING = Red Hat elfutils 0.97
-PACKAGE_TARNAME = elfutils
-PACKAGE_VERSION = 0.97
-PATH_SEPARATOR = :
-POSUB = po
-RANLIB = ranlib
-SET_MAKE =
-SHELL = /bin/sh
-STRIP =
-USE_NLS = yes
-VERSION = 1
-XGETTEXT = /usr/bin/xgettext
-YACC = bison -y
-ac_ct_CC = gcc
-ac_ct_RANLIB = ranlib
-ac_ct_STRIP =
-am__fastdepCC_FALSE = #
-am__fastdepCC_TRUE =
-am__include = include
-am__leading_dot = .
-am__quote =
-am__tar = ${AMTAR} chof - "$$tardir"
-am__untar = ${AMTAR} xf -
-base_cpu = none
-bindir = ${exec_prefix}/bin
-build = i686-pc-linux-gnu
-build_alias =
-build_cpu = i686
-build_os = linux-gnu
-build_vendor = pc
-datadir = ${prefix}/share
-exec_prefix = ${prefix}
-host = i686-pc-linux-gnu
-host_alias =
-host_cpu = i686
-host_os = linux-gnu
-host_vendor = pc
-includedir = ${prefix}/include
-infodir = ${prefix}/info
-install_sh = /work/elfutils/stock/elfutils-0.97/config/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-localstatedir = ${prefix}/var
-mandir = ${prefix}/man
-mkdir_p = mkdir -p --
-oldincludedir = /usr/include
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-program_transform_name = s,x,x,
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-sysconfdir = ${prefix}/etc
-target_alias =
-AM_CFLAGS = -Wall -Werror -Wshadow
-# XXX gcc has a bug in that it generates warnings for internal symbols.
-# XXX Remove the conditional when gcc is fxied.
-#AM_CFLAGS = -Wall -Wshadow
-INCLUDES = -I$(srcdir) -I$(top_srcdir)/lib -I..
-GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include)
-LINT = splint
-lib_LIBRARIES = libelf.a
-noinst_LIBRARIES = libelf_pic.a
-include_HEADERS = libelf.h gelf.h nlist.h
-euincludedir = $(includedir)/elfutils
-euinclude_HEADERS = elf-knowledge.h
-libelf_a_SOURCES = elf_version.c elf_hash.c elf_error.c elf_fill.c \
- elf_begin.c elf_next.c elf_rand.c elf_end.c elf_kind.c \
- gelf_getclass.c elf_getbase.c elf_getident.c \
- elf32_fsize.c elf64_fsize.c gelf_fsize.c \
- elf32_xlatetof.c elf32_xlatetom.c elf64_xlatetof.c \
- elf64_xlatetom.c gelf_xlate.c \
- elf32_getehdr.c elf64_getehdr.c gelf_getehdr.c \
- elf32_newehdr.c elf64_newehdr.c gelf_newehdr.c \
- gelf_update_ehdr.c \
- elf32_getphdr.c elf64_getphdr.c gelf_getphdr.c \
- elf32_newphdr.c elf64_newphdr.c gelf_newphdr.c \
- gelf_update_phdr.c \
- elf_getarhdr.c elf_getarsym.c \
- elf_rawfile.c elf_readall.c elf_cntl.c \
- elf_getscn.c elf_nextscn.c elf_ndxscn.c elf_newscn.c \
- elf32_getshdr.c elf64_getshdr.c gelf_getshdr.c \
- gelf_update_shdr.c \
- elf_strptr.c elf_rawdata.c elf_getdata.c elf_newdata.c \
- elf_flagelf.c elf_flagehdr.c elf_flagphdr.c elf_flagscn.c \
- elf_flagshdr.c elf_flagdata.c elf_memory.c \
- elf_update.c elf32_updatenull.c elf64_updatenull.c \
- elf32_updatefile.c elf64_updatefile.c \
- gelf_getsym.c gelf_update_sym.c \
- gelf_getversym.c gelf_getverneed.c gelf_getvernaux.c \
- gelf_getverdef.c gelf_getverdaux.c \
- gelf_getrel.c gelf_getrela.c \
- gelf_update_rel.c gelf_update_rela.c \
- gelf_getdyn.c gelf_update_dyn.c \
- gelf_getmove.c gelf_update_move.c \
- gelf_getsyminfo.c gelf_update_syminfo.c \
- gelf_xlatetof.c gelf_xlatetom.c \
- nlist.c \
- gelf_getsymshndx.c gelf_update_symshndx.c \
- gelf_update_versym.c gelf_update_verneed.c \
- gelf_update_vernaux.c gelf_update_verdef.c \
- gelf_update_verdaux.c \
- elf_getshnum.c elf_getshstrndx.c \
- gelf_checksum.c elf32_checksum.c elf64_checksum.c \
- gelf_rawchunk.c gelf_freechunk.c \
- libelf_crc32.c libelf_next_prime.c \
- elf_clone.c \
- gelf_getlib.c gelf_update_lib.c
-
-libelf_pic_a_SOURCES =
-am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os)
-libelf_so_SOURCES =
-noinst_HEADERS = elf.h abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \
- version_xlate.h dl-hash.h
-
-EXTRA_DIST = libelf.map
-CLEANFILES = $(am_libelf_pic_a_OBJECTS)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits libelf/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits libelf/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-libLIBRARIES: $(lib_LIBRARIES)
- @$(NORMAL_INSTALL)
- test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- f=$(am__strip_dir) \
- echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
- $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
- else :; fi; \
- done
- @$(POST_INSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- p=$(am__strip_dir) \
- echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \
- $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \
- else :; fi; \
- done
-
-uninstall-libLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- p=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \
- rm -f "$(DESTDIR)$(libdir)/$$p"; \
- done
-
-clean-libLIBRARIES:
- -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libelf.a: $(libelf_a_OBJECTS) $(libelf_a_DEPENDENCIES)
- -rm -f libelf.a
- $(libelf_a_AR) libelf.a $(libelf_a_OBJECTS) $(libelf_a_LIBADD)
- $(RANLIB) libelf.a
-libelf_pic.a: $(libelf_pic_a_OBJECTS) $(libelf_pic_a_DEPENDENCIES)
- -rm -f libelf_pic.a
- $(libelf_pic_a_AR) libelf_pic.a $(libelf_pic_a_OBJECTS) $(libelf_pic_a_LIBADD)
- $(RANLIB) libelf_pic.a
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-#libelf.so$(EXEEXT): $(libelf_so_OBJECTS) $(libelf_so_DEPENDENCIES)
-# @rm -f libelf.so$(EXEEXT)
-# $(LINK) $(libelf_so_LDFLAGS) $(libelf_so_OBJECTS) $(libelf_so_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-include ./$(DEPDIR)/elf32_checksum.Po
-include ./$(DEPDIR)/elf32_fsize.Po
-include ./$(DEPDIR)/elf32_getehdr.Po
-include ./$(DEPDIR)/elf32_getphdr.Po
-include ./$(DEPDIR)/elf32_getshdr.Po
-include ./$(DEPDIR)/elf32_newehdr.Po
-include ./$(DEPDIR)/elf32_newphdr.Po
-include ./$(DEPDIR)/elf32_updatefile.Po
-include ./$(DEPDIR)/elf32_updatenull.Po
-include ./$(DEPDIR)/elf32_xlatetof.Po
-include ./$(DEPDIR)/elf32_xlatetom.Po
-include ./$(DEPDIR)/elf64_checksum.Po
-include ./$(DEPDIR)/elf64_fsize.Po
-include ./$(DEPDIR)/elf64_getehdr.Po
-include ./$(DEPDIR)/elf64_getphdr.Po
-include ./$(DEPDIR)/elf64_getshdr.Po
-include ./$(DEPDIR)/elf64_newehdr.Po
-include ./$(DEPDIR)/elf64_newphdr.Po
-include ./$(DEPDIR)/elf64_updatefile.Po
-include ./$(DEPDIR)/elf64_updatenull.Po
-include ./$(DEPDIR)/elf64_xlatetof.Po
-include ./$(DEPDIR)/elf64_xlatetom.Po
-include ./$(DEPDIR)/elf_begin.Po
-include ./$(DEPDIR)/elf_clone.Po
-include ./$(DEPDIR)/elf_cntl.Po
-include ./$(DEPDIR)/elf_end.Po
-include ./$(DEPDIR)/elf_error.Po
-include ./$(DEPDIR)/elf_fill.Po
-include ./$(DEPDIR)/elf_flagdata.Po
-include ./$(DEPDIR)/elf_flagehdr.Po
-include ./$(DEPDIR)/elf_flagelf.Po
-include ./$(DEPDIR)/elf_flagphdr.Po
-include ./$(DEPDIR)/elf_flagscn.Po
-include ./$(DEPDIR)/elf_flagshdr.Po
-include ./$(DEPDIR)/elf_getarhdr.Po
-include ./$(DEPDIR)/elf_getarsym.Po
-include ./$(DEPDIR)/elf_getbase.Po
-include ./$(DEPDIR)/elf_getdata.Po
-include ./$(DEPDIR)/elf_getident.Po
-include ./$(DEPDIR)/elf_getscn.Po
-include ./$(DEPDIR)/elf_getshnum.Po
-include ./$(DEPDIR)/elf_getshstrndx.Po
-include ./$(DEPDIR)/elf_hash.Po
-include ./$(DEPDIR)/elf_kind.Po
-include ./$(DEPDIR)/elf_memory.Po
-include ./$(DEPDIR)/elf_ndxscn.Po
-include ./$(DEPDIR)/elf_newdata.Po
-include ./$(DEPDIR)/elf_newscn.Po
-include ./$(DEPDIR)/elf_next.Po
-include ./$(DEPDIR)/elf_nextscn.Po
-include ./$(DEPDIR)/elf_rand.Po
-include ./$(DEPDIR)/elf_rawdata.Po
-include ./$(DEPDIR)/elf_rawfile.Po
-include ./$(DEPDIR)/elf_readall.Po
-include ./$(DEPDIR)/elf_strptr.Po
-include ./$(DEPDIR)/elf_update.Po
-include ./$(DEPDIR)/elf_version.Po
-include ./$(DEPDIR)/gelf_checksum.Po
-include ./$(DEPDIR)/gelf_freechunk.Po
-include ./$(DEPDIR)/gelf_fsize.Po
-include ./$(DEPDIR)/gelf_getclass.Po
-include ./$(DEPDIR)/gelf_getdyn.Po
-include ./$(DEPDIR)/gelf_getehdr.Po
-include ./$(DEPDIR)/gelf_getlib.Po
-include ./$(DEPDIR)/gelf_getmove.Po
-include ./$(DEPDIR)/gelf_getphdr.Po
-include ./$(DEPDIR)/gelf_getrel.Po
-include ./$(DEPDIR)/gelf_getrela.Po
-include ./$(DEPDIR)/gelf_getshdr.Po
-include ./$(DEPDIR)/gelf_getsym.Po
-include ./$(DEPDIR)/gelf_getsyminfo.Po
-include ./$(DEPDIR)/gelf_getsymshndx.Po
-include ./$(DEPDIR)/gelf_getverdaux.Po
-include ./$(DEPDIR)/gelf_getverdef.Po
-include ./$(DEPDIR)/gelf_getvernaux.Po
-include ./$(DEPDIR)/gelf_getverneed.Po
-include ./$(DEPDIR)/gelf_getversym.Po
-include ./$(DEPDIR)/gelf_newehdr.Po
-include ./$(DEPDIR)/gelf_newphdr.Po
-include ./$(DEPDIR)/gelf_rawchunk.Po
-include ./$(DEPDIR)/gelf_update_dyn.Po
-include ./$(DEPDIR)/gelf_update_ehdr.Po
-include ./$(DEPDIR)/gelf_update_lib.Po
-include ./$(DEPDIR)/gelf_update_move.Po
-include ./$(DEPDIR)/gelf_update_phdr.Po
-include ./$(DEPDIR)/gelf_update_rel.Po
-include ./$(DEPDIR)/gelf_update_rela.Po
-include ./$(DEPDIR)/gelf_update_shdr.Po
-include ./$(DEPDIR)/gelf_update_sym.Po
-include ./$(DEPDIR)/gelf_update_syminfo.Po
-include ./$(DEPDIR)/gelf_update_symshndx.Po
-include ./$(DEPDIR)/gelf_update_verdaux.Po
-include ./$(DEPDIR)/gelf_update_verdef.Po
-include ./$(DEPDIR)/gelf_update_vernaux.Po
-include ./$(DEPDIR)/gelf_update_verneed.Po
-include ./$(DEPDIR)/gelf_update_versym.Po
-include ./$(DEPDIR)/gelf_xlate.Po
-include ./$(DEPDIR)/gelf_xlatetof.Po
-include ./$(DEPDIR)/gelf_xlatetom.Po
-include ./$(DEPDIR)/libelf_crc32.Po
-include ./$(DEPDIR)/libelf_next_prime.Po
-include ./$(DEPDIR)/nlist.Po
-
-.c.o:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c $<
-
-.c.obj:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-euincludeHEADERS: $(euinclude_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(euincludedir)" || $(mkdir_p) "$(DESTDIR)$(euincludedir)"
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(euincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(euincludedir)/$$f'"; \
- $(euincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-
-uninstall-euincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(euincludedir)/$$f'"; \
- rm -f "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)"
- @list='$(include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
- $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)" "$(DESTDIR)$(includedir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-#install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-#uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLIBRARIES clean-noinstLIBRARIES \
- clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-euincludeHEADERS install-includeHEADERS
-
-install-exec-am: install-libLIBRARIES
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-euincludeHEADERS uninstall-includeHEADERS \
- uninstall-info-am uninstall-libLIBRARIES
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLIBRARIES clean-noinstLIBRARIES clean-noinstPROGRAMS \
- ctags distclean distclean-compile distclean-generic \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
- install-euincludeHEADERS install-exec install-exec-am \
- install-includeHEADERS install-info install-info-am \
- install-libLIBRARIES install-man install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-euincludeHEADERS \
- uninstall-includeHEADERS uninstall-info-am \
- uninstall-libLIBRARIES
-
-libelf.so: libelf_pic.a libelf.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libelf.map,--no-undefined \
- -Wl,--soname,$@.$(VERSION),-z-defs
- ln -fs $@ $@.$(VERSION)
-
-%.os: %.c %.o
- if $(COMPILE) -c -o $@ -fpic -DPIC -DSHARED -MT $@ -MD -MP \
- -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \
- then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
- rm -f "$(DEPDIR)/$*.Tpo"; \
- else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
- fi
-
-install: install-am libelf.so
- $(mkinstalldirs) $(DESTDIR)$(libdir)
- $(INSTALL_PROGRAM) libelf.so $(DESTDIR)$(libdir)/libelf-$(PACKAGE_VERSION).so
- ln -fs libelf-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libelf.so.$(VERSION)
- ln -fs libelf.so.$(VERSION) $(DESTDIR)$(libdir)/libelf.so
-
-uninstall: uninstall-am
- rm -f $(DESTDIR)$(libdir)/libelf-$(PACKAGE_VERSION).so
- rm -f $(DESTDIR)$(libdir)/libelf.so.$(VERSION)
- rm -f $(DESTDIR)$(libdir)/libelf.so
-
-.PSEUDO: lint
-lint:
- $(LINT) $(DEFS) $(INCLUDES) $(GCC_INCLUDE) -f $(top_srcdir)/splint.rc \
- $(addprefix $(srcdir)/,$(libelf_a_SOURCES))
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libelf/Makefile.am b/libelf/Makefile.am
deleted file mode 100644
index 3481858e..00000000
--- a/libelf/Makefile.am
+++ /dev/null
@@ -1,127 +0,0 @@
-## Process this file with automake to create Makefile.in
-## Configure input file for elfutils.
-##
-## Copyright (C) 1996-2001, 2002, 2003, 2004 Red Hat, Inc.
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation, version 2.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software Foundation,
-## Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-##
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H
-# XXX gcc has a bug in that it generates warnings for internal symbols.
-# XXX Remove the conditional when gcc is fxied.
-if MUDFLAP
-AM_CFLAGS = -Wall -Wshadow
-else
-AM_CFLAGS = -Wall -Werror -Wshadow
-endif
-INCLUDES = -I$(srcdir) -I$(top_srcdir)/lib -I..
-GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include)
-VERSION = 1
-PACKAGE_VERSION = @PACKAGE_VERSION@
-
-LINT = splint
-
-lib_LIBRARIES = libelf.a
-if !MUDFLAP
-noinst_LIBRARIES = libelf_pic.a
-noinst_PROGRAMS = $(noinst_LIBRARIES:_pic.a=.so)
-endif
-include_HEADERS = libelf.h gelf.h nlist.h
-
-euincludedir = $(includedir)/elfutils
-euinclude_HEADERS = elf-knowledge.h
-
-libelf_a_SOURCES = elf_version.c elf_hash.c elf_error.c elf_fill.c \
- elf_begin.c elf_next.c elf_rand.c elf_end.c elf_kind.c \
- gelf_getclass.c elf_getbase.c elf_getident.c \
- elf32_fsize.c elf64_fsize.c gelf_fsize.c \
- elf32_xlatetof.c elf32_xlatetom.c elf64_xlatetof.c \
- elf64_xlatetom.c gelf_xlate.c \
- elf32_getehdr.c elf64_getehdr.c gelf_getehdr.c \
- elf32_newehdr.c elf64_newehdr.c gelf_newehdr.c \
- gelf_update_ehdr.c \
- elf32_getphdr.c elf64_getphdr.c gelf_getphdr.c \
- elf32_newphdr.c elf64_newphdr.c gelf_newphdr.c \
- gelf_update_phdr.c \
- elf_getarhdr.c elf_getarsym.c \
- elf_rawfile.c elf_readall.c elf_cntl.c \
- elf_getscn.c elf_nextscn.c elf_ndxscn.c elf_newscn.c \
- elf32_getshdr.c elf64_getshdr.c gelf_getshdr.c \
- gelf_update_shdr.c \
- elf_strptr.c elf_rawdata.c elf_getdata.c elf_newdata.c \
- elf_flagelf.c elf_flagehdr.c elf_flagphdr.c elf_flagscn.c \
- elf_flagshdr.c elf_flagdata.c elf_memory.c \
- elf_update.c elf32_updatenull.c elf64_updatenull.c \
- elf32_updatefile.c elf64_updatefile.c \
- gelf_getsym.c gelf_update_sym.c \
- gelf_getversym.c gelf_getverneed.c gelf_getvernaux.c \
- gelf_getverdef.c gelf_getverdaux.c \
- gelf_getrel.c gelf_getrela.c \
- gelf_update_rel.c gelf_update_rela.c \
- gelf_getdyn.c gelf_update_dyn.c \
- gelf_getmove.c gelf_update_move.c \
- gelf_getsyminfo.c gelf_update_syminfo.c \
- gelf_xlatetof.c gelf_xlatetom.c \
- nlist.c \
- gelf_getsymshndx.c gelf_update_symshndx.c \
- gelf_update_versym.c gelf_update_verneed.c \
- gelf_update_vernaux.c gelf_update_verdef.c \
- gelf_update_verdaux.c \
- elf_getshnum.c elf_getshstrndx.c \
- gelf_checksum.c elf32_checksum.c elf64_checksum.c \
- gelf_rawchunk.c gelf_freechunk.c \
- libelf_crc32.c libelf_next_prime.c \
- elf_clone.c \
- gelf_getlib.c gelf_update_lib.c
-
-if !MUDFLAP
-libelf_pic_a_SOURCES =
-am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os)
-
-libelf_so_SOURCES =
-libelf.so: libelf_pic.a libelf.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libelf.map,--no-undefined \
- -Wl,--soname,$@.$(VERSION),-z-defs
- ln -fs $@ $@.$(VERSION)
-
-%.os: %.c %.o
- if $(COMPILE) -c -o $@ -fpic -DPIC -DSHARED -MT $@ -MD -MP \
- -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \
- then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
- rm -f "$(DEPDIR)/$*.Tpo"; \
- else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
- fi
-
-install: install-am libelf.so
- $(mkinstalldirs) $(DESTDIR)$(libdir)
- $(INSTALL_PROGRAM) libelf.so $(DESTDIR)$(libdir)/libelf-$(PACKAGE_VERSION).so
- ln -fs libelf-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libelf.so.$(VERSION)
- ln -fs libelf.so.$(VERSION) $(DESTDIR)$(libdir)/libelf.so
-
-uninstall: uninstall-am
- rm -f $(DESTDIR)$(libdir)/libelf-$(PACKAGE_VERSION).so
- rm -f $(DESTDIR)$(libdir)/libelf.so.$(VERSION)
- rm -f $(DESTDIR)$(libdir)/libelf.so
-endif
-
-.PSEUDO: lint
-lint:
- $(LINT) $(DEFS) $(INCLUDES) $(GCC_INCLUDE) -f $(top_srcdir)/splint.rc \
- $(addprefix $(srcdir)/,$(libelf_a_SOURCES))
-
-noinst_HEADERS = elf.h abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \
- version_xlate.h dl-hash.h
-EXTRA_DIST = libelf.map
-
-CLEANFILES = $(am_libelf_pic_a_OBJECTS)
diff --git a/libelf/Makefile.in b/libelf/Makefile.in
deleted file mode 100644
index eb76e52d..00000000
--- a/libelf/Makefile.in
+++ /dev/null
@@ -1,758 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-
-SOURCES = $(libelf_a_SOURCES) $(libelf_pic_a_SOURCES) $(libelf_so_SOURCES)
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-@MUDFLAP_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1)
-@MUDFLAP_TRUE@am_libelf_pic_a_OBJECTS =
-subdir = libelf
-DIST_COMMON = $(euinclude_HEADERS) $(include_HEADERS) \
- $(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)" \
- "$(DESTDIR)$(includedir)"
-libLIBRARIES_INSTALL = $(INSTALL_DATA)
-LIBRARIES = $(lib_LIBRARIES) $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libelf_a_AR = $(AR) $(ARFLAGS)
-libelf_a_LIBADD =
-am_libelf_a_OBJECTS = elf_version.$(OBJEXT) elf_hash.$(OBJEXT) \
- elf_error.$(OBJEXT) elf_fill.$(OBJEXT) elf_begin.$(OBJEXT) \
- elf_next.$(OBJEXT) elf_rand.$(OBJEXT) elf_end.$(OBJEXT) \
- elf_kind.$(OBJEXT) gelf_getclass.$(OBJEXT) \
- elf_getbase.$(OBJEXT) elf_getident.$(OBJEXT) \
- elf32_fsize.$(OBJEXT) elf64_fsize.$(OBJEXT) \
- gelf_fsize.$(OBJEXT) elf32_xlatetof.$(OBJEXT) \
- elf32_xlatetom.$(OBJEXT) elf64_xlatetof.$(OBJEXT) \
- elf64_xlatetom.$(OBJEXT) gelf_xlate.$(OBJEXT) \
- elf32_getehdr.$(OBJEXT) elf64_getehdr.$(OBJEXT) \
- gelf_getehdr.$(OBJEXT) elf32_newehdr.$(OBJEXT) \
- elf64_newehdr.$(OBJEXT) gelf_newehdr.$(OBJEXT) \
- gelf_update_ehdr.$(OBJEXT) elf32_getphdr.$(OBJEXT) \
- elf64_getphdr.$(OBJEXT) gelf_getphdr.$(OBJEXT) \
- elf32_newphdr.$(OBJEXT) elf64_newphdr.$(OBJEXT) \
- gelf_newphdr.$(OBJEXT) gelf_update_phdr.$(OBJEXT) \
- elf_getarhdr.$(OBJEXT) elf_getarsym.$(OBJEXT) \
- elf_rawfile.$(OBJEXT) elf_readall.$(OBJEXT) elf_cntl.$(OBJEXT) \
- elf_getscn.$(OBJEXT) elf_nextscn.$(OBJEXT) \
- elf_ndxscn.$(OBJEXT) elf_newscn.$(OBJEXT) \
- elf32_getshdr.$(OBJEXT) elf64_getshdr.$(OBJEXT) \
- gelf_getshdr.$(OBJEXT) gelf_update_shdr.$(OBJEXT) \
- elf_strptr.$(OBJEXT) elf_rawdata.$(OBJEXT) \
- elf_getdata.$(OBJEXT) elf_newdata.$(OBJEXT) \
- elf_flagelf.$(OBJEXT) elf_flagehdr.$(OBJEXT) \
- elf_flagphdr.$(OBJEXT) elf_flagscn.$(OBJEXT) \
- elf_flagshdr.$(OBJEXT) elf_flagdata.$(OBJEXT) \
- elf_memory.$(OBJEXT) elf_update.$(OBJEXT) \
- elf32_updatenull.$(OBJEXT) elf64_updatenull.$(OBJEXT) \
- elf32_updatefile.$(OBJEXT) elf64_updatefile.$(OBJEXT) \
- gelf_getsym.$(OBJEXT) gelf_update_sym.$(OBJEXT) \
- gelf_getversym.$(OBJEXT) gelf_getverneed.$(OBJEXT) \
- gelf_getvernaux.$(OBJEXT) gelf_getverdef.$(OBJEXT) \
- gelf_getverdaux.$(OBJEXT) gelf_getrel.$(OBJEXT) \
- gelf_getrela.$(OBJEXT) gelf_update_rel.$(OBJEXT) \
- gelf_update_rela.$(OBJEXT) gelf_getdyn.$(OBJEXT) \
- gelf_update_dyn.$(OBJEXT) gelf_getmove.$(OBJEXT) \
- gelf_update_move.$(OBJEXT) gelf_getsyminfo.$(OBJEXT) \
- gelf_update_syminfo.$(OBJEXT) gelf_xlatetof.$(OBJEXT) \
- gelf_xlatetom.$(OBJEXT) nlist.$(OBJEXT) \
- gelf_getsymshndx.$(OBJEXT) gelf_update_symshndx.$(OBJEXT) \
- gelf_update_versym.$(OBJEXT) gelf_update_verneed.$(OBJEXT) \
- gelf_update_vernaux.$(OBJEXT) gelf_update_verdef.$(OBJEXT) \
- gelf_update_verdaux.$(OBJEXT) elf_getshnum.$(OBJEXT) \
- elf_getshstrndx.$(OBJEXT) gelf_checksum.$(OBJEXT) \
- elf32_checksum.$(OBJEXT) elf64_checksum.$(OBJEXT) \
- gelf_rawchunk.$(OBJEXT) gelf_freechunk.$(OBJEXT) \
- libelf_crc32.$(OBJEXT) libelf_next_prime.$(OBJEXT) \
- elf_clone.$(OBJEXT) gelf_getlib.$(OBJEXT) \
- gelf_update_lib.$(OBJEXT)
-libelf_a_OBJECTS = $(am_libelf_a_OBJECTS)
-libelf_pic_a_AR = $(AR) $(ARFLAGS)
-libelf_pic_a_LIBADD =
-libelf_pic_a_OBJECTS = $(am_libelf_pic_a_OBJECTS)
-@MUDFLAP_FALSE@am__EXEEXT_1 = libelf.so$(EXEEXT)
-PROGRAMS = $(noinst_PROGRAMS)
-am_libelf_so_OBJECTS =
-libelf_so_OBJECTS = $(am_libelf_so_OBJECTS)
-libelf_so_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libelf_a_SOURCES) $(libelf_pic_a_SOURCES) \
- $(libelf_so_SOURCES)
-DIST_SOURCES = $(libelf_a_SOURCES) $(libelf_pic_a_SOURCES) \
- $(libelf_so_SOURCES)
-euincludeHEADERS_INSTALL = $(INSTALL_HEADER)
-includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(euinclude_HEADERS) $(include_HEADERS) $(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GMSGFMT = @GMSGFMT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
-MUDFLAP_FALSE = @MUDFLAP_FALSE@
-MUDFLAP_TRUE = @MUDFLAP_TRUE@
-NATIVE_LD_FALSE = @NATIVE_LD_FALSE@
-NATIVE_LD_TRUE = @NATIVE_LD_TRUE@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VERSION = 1
-XGETTEXT = @XGETTEXT@
-YACC = @YACC@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-base_cpu = @base_cpu@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-@MUDFLAP_FALSE@AM_CFLAGS = -Wall -Werror -Wshadow
-# XXX gcc has a bug in that it generates warnings for internal symbols.
-# XXX Remove the conditional when gcc is fxied.
-@MUDFLAP_TRUE@AM_CFLAGS = -Wall -Wshadow
-INCLUDES = -I$(srcdir) -I$(top_srcdir)/lib -I..
-GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include)
-LINT = splint
-lib_LIBRARIES = libelf.a
-@MUDFLAP_FALSE@noinst_LIBRARIES = libelf_pic.a
-include_HEADERS = libelf.h gelf.h nlist.h
-euincludedir = $(includedir)/elfutils
-euinclude_HEADERS = elf-knowledge.h
-libelf_a_SOURCES = elf_version.c elf_hash.c elf_error.c elf_fill.c \
- elf_begin.c elf_next.c elf_rand.c elf_end.c elf_kind.c \
- gelf_getclass.c elf_getbase.c elf_getident.c \
- elf32_fsize.c elf64_fsize.c gelf_fsize.c \
- elf32_xlatetof.c elf32_xlatetom.c elf64_xlatetof.c \
- elf64_xlatetom.c gelf_xlate.c \
- elf32_getehdr.c elf64_getehdr.c gelf_getehdr.c \
- elf32_newehdr.c elf64_newehdr.c gelf_newehdr.c \
- gelf_update_ehdr.c \
- elf32_getphdr.c elf64_getphdr.c gelf_getphdr.c \
- elf32_newphdr.c elf64_newphdr.c gelf_newphdr.c \
- gelf_update_phdr.c \
- elf_getarhdr.c elf_getarsym.c \
- elf_rawfile.c elf_readall.c elf_cntl.c \
- elf_getscn.c elf_nextscn.c elf_ndxscn.c elf_newscn.c \
- elf32_getshdr.c elf64_getshdr.c gelf_getshdr.c \
- gelf_update_shdr.c \
- elf_strptr.c elf_rawdata.c elf_getdata.c elf_newdata.c \
- elf_flagelf.c elf_flagehdr.c elf_flagphdr.c elf_flagscn.c \
- elf_flagshdr.c elf_flagdata.c elf_memory.c \
- elf_update.c elf32_updatenull.c elf64_updatenull.c \
- elf32_updatefile.c elf64_updatefile.c \
- gelf_getsym.c gelf_update_sym.c \
- gelf_getversym.c gelf_getverneed.c gelf_getvernaux.c \
- gelf_getverdef.c gelf_getverdaux.c \
- gelf_getrel.c gelf_getrela.c \
- gelf_update_rel.c gelf_update_rela.c \
- gelf_getdyn.c gelf_update_dyn.c \
- gelf_getmove.c gelf_update_move.c \
- gelf_getsyminfo.c gelf_update_syminfo.c \
- gelf_xlatetof.c gelf_xlatetom.c \
- nlist.c \
- gelf_getsymshndx.c gelf_update_symshndx.c \
- gelf_update_versym.c gelf_update_verneed.c \
- gelf_update_vernaux.c gelf_update_verdef.c \
- gelf_update_verdaux.c \
- elf_getshnum.c elf_getshstrndx.c \
- gelf_checksum.c elf32_checksum.c elf64_checksum.c \
- gelf_rawchunk.c gelf_freechunk.c \
- libelf_crc32.c libelf_next_prime.c \
- elf_clone.c \
- gelf_getlib.c gelf_update_lib.c
-
-@MUDFLAP_FALSE@libelf_pic_a_SOURCES =
-@MUDFLAP_FALSE@am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os)
-@MUDFLAP_FALSE@libelf_so_SOURCES =
-noinst_HEADERS = elf.h abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \
- version_xlate.h dl-hash.h
-
-EXTRA_DIST = libelf.map
-CLEANFILES = $(am_libelf_pic_a_OBJECTS)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits libelf/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits libelf/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-libLIBRARIES: $(lib_LIBRARIES)
- @$(NORMAL_INSTALL)
- test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- f=$(am__strip_dir) \
- echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
- $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
- else :; fi; \
- done
- @$(POST_INSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- p=$(am__strip_dir) \
- echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \
- $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \
- else :; fi; \
- done
-
-uninstall-libLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- p=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \
- rm -f "$(DESTDIR)$(libdir)/$$p"; \
- done
-
-clean-libLIBRARIES:
- -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libelf.a: $(libelf_a_OBJECTS) $(libelf_a_DEPENDENCIES)
- -rm -f libelf.a
- $(libelf_a_AR) libelf.a $(libelf_a_OBJECTS) $(libelf_a_LIBADD)
- $(RANLIB) libelf.a
-libelf_pic.a: $(libelf_pic_a_OBJECTS) $(libelf_pic_a_DEPENDENCIES)
- -rm -f libelf_pic.a
- $(libelf_pic_a_AR) libelf_pic.a $(libelf_pic_a_OBJECTS) $(libelf_pic_a_LIBADD)
- $(RANLIB) libelf_pic.a
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-@MUDFLAP_TRUE@libelf.so$(EXEEXT): $(libelf_so_OBJECTS) $(libelf_so_DEPENDENCIES)
-@MUDFLAP_TRUE@ @rm -f libelf.so$(EXEEXT)
-@MUDFLAP_TRUE@ $(LINK) $(libelf_so_LDFLAGS) $(libelf_so_OBJECTS) $(libelf_so_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32_checksum.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32_fsize.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32_getehdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32_getphdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32_getshdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32_newehdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32_newphdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32_updatefile.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32_updatenull.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32_xlatetof.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32_xlatetom.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64_checksum.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64_fsize.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64_getehdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64_getphdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64_getshdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64_newehdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64_newphdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64_updatefile.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64_updatenull.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64_xlatetof.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64_xlatetom.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_begin.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_clone.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_cntl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_end.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_error.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_fill.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_flagdata.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_flagehdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_flagelf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_flagphdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_flagscn.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_flagshdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_getarhdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_getarsym.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_getbase.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_getdata.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_getident.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_getscn.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_getshnum.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_getshstrndx.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_hash.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_kind.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_memory.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_ndxscn.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_newdata.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_newscn.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_next.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_nextscn.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_rand.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_rawdata.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_rawfile.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_readall.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_strptr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_update.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf_version.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_checksum.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_freechunk.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_fsize.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getclass.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getdyn.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getehdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getlib.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getmove.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getphdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getrel.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getrela.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getshdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getsym.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getsyminfo.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getsymshndx.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getverdaux.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getverdef.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getvernaux.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getverneed.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_getversym.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_newehdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_newphdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_rawchunk.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_dyn.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_ehdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_lib.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_move.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_phdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_rel.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_rela.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_shdr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_sym.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_syminfo.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_symshndx.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_verdaux.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_verdef.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_vernaux.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_verneed.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_update_versym.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_xlate.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_xlatetof.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gelf_xlatetom.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelf_crc32.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelf_next_prime.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlist.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-euincludeHEADERS: $(euinclude_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(euincludedir)" || $(mkdir_p) "$(DESTDIR)$(euincludedir)"
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(euincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(euincludedir)/$$f'"; \
- $(euincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-
-uninstall-euincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(euinclude_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(euincludedir)/$$f'"; \
- rm -f "$(DESTDIR)$(euincludedir)/$$f"; \
- done
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)"
- @list='$(include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
- $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(euincludedir)" "$(DESTDIR)$(includedir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-@MUDFLAP_TRUE@install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-@MUDFLAP_TRUE@uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLIBRARIES clean-noinstLIBRARIES \
- clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-euincludeHEADERS install-includeHEADERS
-
-install-exec-am: install-libLIBRARIES
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-euincludeHEADERS uninstall-includeHEADERS \
- uninstall-info-am uninstall-libLIBRARIES
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLIBRARIES clean-noinstLIBRARIES clean-noinstPROGRAMS \
- ctags distclean distclean-compile distclean-generic \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
- install-euincludeHEADERS install-exec install-exec-am \
- install-includeHEADERS install-info install-info-am \
- install-libLIBRARIES install-man install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-euincludeHEADERS \
- uninstall-includeHEADERS uninstall-info-am \
- uninstall-libLIBRARIES
-
-@MUDFLAP_FALSE@libelf.so: libelf_pic.a libelf.map
-@MUDFLAP_FALSE@ $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
-@MUDFLAP_FALSE@ -Wl,--version-script,$(srcdir)/libelf.map,--no-undefined \
-@MUDFLAP_FALSE@ -Wl,--soname,$@.$(VERSION),-z-defs
-@MUDFLAP_FALSE@ ln -fs $@ $@.$(VERSION)
-
-@MUDFLAP_FALSE@%.os: %.c %.o
-@MUDFLAP_FALSE@ if $(COMPILE) -c -o $@ -fpic -DPIC -DSHARED -MT $@ -MD -MP \
-@MUDFLAP_FALSE@ -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \
-@MUDFLAP_FALSE@ then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
-@MUDFLAP_FALSE@ rm -f "$(DEPDIR)/$*.Tpo"; \
-@MUDFLAP_FALSE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
-@MUDFLAP_FALSE@ fi
-
-@MUDFLAP_FALSE@install: install-am libelf.so
-@MUDFLAP_FALSE@ $(mkinstalldirs) $(DESTDIR)$(libdir)
-@MUDFLAP_FALSE@ $(INSTALL_PROGRAM) libelf.so $(DESTDIR)$(libdir)/libelf-$(PACKAGE_VERSION).so
-@MUDFLAP_FALSE@ ln -fs libelf-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libelf.so.$(VERSION)
-@MUDFLAP_FALSE@ ln -fs libelf.so.$(VERSION) $(DESTDIR)$(libdir)/libelf.so
-
-@MUDFLAP_FALSE@uninstall: uninstall-am
-@MUDFLAP_FALSE@ rm -f $(DESTDIR)$(libdir)/libelf-$(PACKAGE_VERSION).so
-@MUDFLAP_FALSE@ rm -f $(DESTDIR)$(libdir)/libelf.so.$(VERSION)
-@MUDFLAP_FALSE@ rm -f $(DESTDIR)$(libdir)/libelf.so
-
-.PSEUDO: lint
-lint:
- $(LINT) $(DEFS) $(INCLUDES) $(GCC_INCLUDE) -f $(top_srcdir)/splint.rc \
- $(addprefix $(srcdir)/,$(libelf_a_SOURCES))
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libelf/abstract.h b/libelf/abstract.h
deleted file mode 100644
index d14034eb..00000000
--- a/libelf/abstract.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/* Abstract description of component ELF types.
- Copyright (C) 1998, 1999, 2000, 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-/* ELF header. */
-#define Ehdr(Bits, Ext) \
-START (Bits, Ehdr, Ext##Ehdr) \
- TYPE_EXTRA (unsigned char e_ident[EI_NIDENT];) \
- TYPE_XLATE (memmove (tdest->e_ident, tsrc->e_ident, EI_NIDENT);) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), e_type) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), e_machine) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), e_version) \
- TYPE_NAME (ElfW2(Bits, Ext##Addr), e_entry) \
- TYPE_NAME (ElfW2(Bits, Ext##Off), e_phoff) \
- TYPE_NAME (ElfW2(Bits, Ext##Off), e_shoff) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), e_flags) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), e_ehsize) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), e_phentsize) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), e_phnum) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), e_shentsize) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), e_shnum) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), e_shstrndx) \
-END (Bits, Ext##Ehdr)
-
-#define Ehdr32(Ext) \
- Ehdr(32, Ext)
-#define Ehdr64(Ext) \
- Ehdr(64, Ext)
-
-
-/* Program header. */
-#define Phdr32(Ext) \
-START (32, Phdr, Ext##Phdr) \
- TYPE_NAME (ElfW2(32, Ext##Word), p_type) \
- TYPE_NAME (ElfW2(32, Ext##Off), p_offset) \
- TYPE_NAME (ElfW2(32, Ext##Addr), p_vaddr) \
- TYPE_NAME (ElfW2(32, Ext##Addr), p_paddr) \
- TYPE_NAME (ElfW2(32, Ext##Word), p_filesz) \
- TYPE_NAME (ElfW2(32, Ext##Word), p_memsz) \
- TYPE_NAME (ElfW2(32, Ext##Word), p_flags) \
- TYPE_NAME (ElfW2(32, Ext##Word), p_align) \
-END (32, Ext##Phdr)
-#define Phdr64(Ext) \
-START (64, Phdr, Ext##Phdr) \
- TYPE_NAME (ElfW2(64, Ext##Word), p_type) \
- TYPE_NAME (ElfW2(64, Ext##Word), p_flags) \
- TYPE_NAME (ElfW2(64, Ext##Off), p_offset) \
- TYPE_NAME (ElfW2(64, Ext##Addr), p_vaddr) \
- TYPE_NAME (ElfW2(64, Ext##Addr), p_paddr) \
- TYPE_NAME (ElfW2(64, Ext##Xword), p_filesz) \
- TYPE_NAME (ElfW2(64, Ext##Xword), p_memsz) \
- TYPE_NAME (ElfW2(64, Ext##Xword), p_align) \
-END (64, Ext##Phdr)
-
-
-/* Section header. */
-#define Shdr32(Ext) \
-START (32, Shdr, Ext##Shdr) \
- TYPE_NAME (ElfW2(32, Ext##Word), sh_name) \
- TYPE_NAME (ElfW2(32, Ext##Word), sh_type) \
- TYPE_NAME (ElfW2(32, Ext##Word), sh_flags) \
- TYPE_NAME (ElfW2(32, Ext##Addr), sh_addr) \
- TYPE_NAME (ElfW2(32, Ext##Off), sh_offset) \
- TYPE_NAME (ElfW2(32, Ext##Word), sh_size) \
- TYPE_NAME (ElfW2(32, Ext##Word), sh_link) \
- TYPE_NAME (ElfW2(32, Ext##Word), sh_info) \
- TYPE_NAME (ElfW2(32, Ext##Word), sh_addralign) \
- TYPE_NAME (ElfW2(32, Ext##Word), sh_entsize) \
-END (32, Ext##Shdr)
-#define Shdr64(Ext) \
-START (64, Shdr, Ext##Shdr) \
- TYPE_NAME (ElfW2(64, Ext##Word), sh_name) \
- TYPE_NAME (ElfW2(64, Ext##Word), sh_type) \
- TYPE_NAME (ElfW2(64, Ext##Xword), sh_flags) \
- TYPE_NAME (ElfW2(64, Ext##Addr), sh_addr) \
- TYPE_NAME (ElfW2(64, Ext##Off), sh_offset) \
- TYPE_NAME (ElfW2(64, Ext##Xword), sh_size) \
- TYPE_NAME (ElfW2(64, Ext##Word), sh_link) \
- TYPE_NAME (ElfW2(64, Ext##Word), sh_info) \
- TYPE_NAME (ElfW2(64, Ext##Xword), sh_addralign) \
- TYPE_NAME (ElfW2(64, Ext##Xword), sh_entsize) \
-END (64, Ext##Shdr)
-
-
-/* Symbol table. */
-#define Sym32(Ext) \
-START (32, Sym, Ext##Sym) \
- TYPE_NAME (ElfW2(32, Ext##Word), st_name) \
- TYPE_NAME (ElfW2(32, Ext##Addr), st_value) \
- TYPE_NAME (ElfW2(32, Ext##Word), st_size) \
- TYPE_EXTRA (unsigned char st_info;) \
- TYPE_XLATE (tdest->st_info = tsrc->st_info;) \
- TYPE_EXTRA (unsigned char st_other;) \
- TYPE_XLATE (tdest->st_other = tsrc->st_other;) \
- TYPE_NAME (ElfW2(32, Ext##Half), st_shndx) \
-END (32, Ext##Sym)
-#define Sym64(Ext) \
-START (64, Sym, Ext##Sym) \
- TYPE_NAME (ElfW2(64, Ext##Word), st_name) \
- TYPE_EXTRA (unsigned char st_info;) \
- TYPE_XLATE (tdest->st_info = tsrc->st_info;) \
- TYPE_EXTRA (unsigned char st_other;) \
- TYPE_XLATE (tdest->st_other = tsrc->st_other;) \
- TYPE_NAME (ElfW2(64, Ext##Half), st_shndx) \
- TYPE_NAME (ElfW2(64, Ext##Addr), st_value) \
- TYPE_NAME (ElfW2(64, Ext##Xword), st_size) \
-END (64, Ext##Sym)
-
-
-/* Relocation. */
-#define Rel32(Ext) \
-START (32, Rel, Ext##Rel) \
- TYPE_NAME (ElfW2(32, Ext##Addr), r_offset) \
- TYPE_NAME (ElfW2(32, Ext##Word), r_info) \
-END (32, Ext##Rel)
-#define Rel64(Ext) \
-START (64, Rel, Ext##Rel) \
- TYPE_NAME (ElfW2(64, Ext##Addr), r_offset) \
- TYPE_NAME (ElfW2(64, Ext##Xword), r_info) \
-END (64, Ext##Rel)
-
-#define Rela32(Ext) \
-START (32, Rela, Ext##Rela) \
- TYPE_NAME (ElfW2(32, Ext##Addr), r_offset) \
- TYPE_NAME (ElfW2(32, Ext##Word), r_info) \
- TYPE_NAME (ElfW2(32, Ext##Sword), r_addend) \
-END (32, Ext##Rela)
-#define Rela64(Ext) \
-START (64, Rela, Ext##Rela) \
- TYPE_NAME (ElfW2(64, Ext##Addr), r_offset) \
- TYPE_NAME (ElfW2(64, Ext##Xword), r_info) \
- TYPE_NAME (ElfW2(64, Ext##Sxword), r_addend) \
-END (64, Ext##Rela)
-
-
-/* Note entry header. */
-#define Note(Bits, Ext) \
-START (Bits, Nhdr, Ext##Nhdr) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), n_namesz) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), n_descsz) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), n_type) \
-END (Bits, Ext##Nhdr)
-
-#define Note32(Ext) \
- Note (32, Ext)
-#define Note64(Ext) \
- Note (64, Ext)
-
-
-/* Dynamic section data. */
-#define Dyn32(Ext) \
-START (32, Dyn, Ext##Dyn) \
- TYPE_NAME (ElfW2(32, Ext##Sword), d_tag) \
- TYPE_EXTRA (union {) \
- TYPE_EXTRA (ElfW2(32, Ext##Word) d_val;) \
- TYPE_EXTRA (ElfW2(32, Ext##Addr) d_ptr;) \
- TYPE_XLATE (Elf32_cvt_Addr1 (&tdest->d_un.d_val, &tsrc->d_un.d_val);) \
- TYPE_EXTRA (ElfW2(32, Ext##Off) d_off;) \
- TYPE_EXTRA (} d_un;) \
-END (32, Ext##Dyn)
-#define Dyn64(Ext) \
-START (64, Dyn, Ext##Dyn) \
- TYPE_NAME (ElfW2(64, Ext##Xword), d_tag) \
- TYPE_EXTRA (union {) \
- TYPE_EXTRA (ElfW2(64, Ext##Xword) d_val;) \
- TYPE_EXTRA (ElfW2(64, Ext##Addr) d_ptr;) \
- TYPE_XLATE (Elf64_cvt_Addr1 (&tdest->d_un.d_val, &tsrc->d_un.d_val);) \
- TYPE_EXTRA (} d_un;) \
-END (64, Ext##Dyn)
-
-
-#ifndef GENERATE_CONVERSION
-/* Version definitions. */
-# define Verdef(Bits, Ext) \
-START (Bits, Verdef, Ext##Verdef) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), vd_version) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), vd_flags) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), vd_ndx) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), vd_cnt) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), vd_hash) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), vd_aux) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), vd_next) \
-END (Bits, Ext##Verdef)
-
-# define Verdef32(Ext) \
- Verdef (32, Ext)
-# define Verdef64(Ext) \
- Verdef (64, Ext)
-
-# define Verdaux(Bits, Ext) \
-START (Bits, Verdaux, Ext##Verdaux) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), vda_name) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), vda_next) \
-END (Bits, Ext##Verdaux)
-
-# define Verdaux32(Ext) \
- Verdaux (32, Ext)
-# define Verdaux64(Ext) \
- Verdaux (64, Ext)
-
-/* Required versions. */
-# define Verneed(Bits, Ext) \
-START (Bits, Verneed, Ext##Verneed) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), vn_version) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), vn_cnt) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), vn_file) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), vn_aux) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), vn_next) \
-END (Bits, Ext##Verneed)
-
-# define Verneed32(Ext) \
- Verneed (32, Ext)
-# define Verneed64(Ext) \
- Verneed (64, Ext)
-
-# define Vernaux(Bits, Ext) \
-START (Bits, Vernaux, Ext##Vernaux) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), vna_hash) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), vna_flags) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), vna_other) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), vna_name) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), vna_next) \
-END (Bits, Ext##Vernaux)
-
-# define Vernaux32(Ext) \
- Vernaux (32, Ext)
-# define Vernaux64(Ext) \
- Vernaux (64, Ext)
-#endif
-
-/* Symbol information. */
-#define Syminfo(Bits, Ext) \
-START (Bits, Syminfo, Ext##Syminfo) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), si_boundto) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), si_flags) \
-END (Bits, Ext##Syminfo)
-
-#define Syminfo32(Ext) \
- Syminfo (32, Ext)
-#define Syminfo64(Ext) \
- Syminfo (64, Ext)
-
-/* Move information. */
-#define Move(Bits, Ext) \
-START (Bits, Move, Ext##Move) \
- TYPE_NAME (ElfW2(Bits, Ext##Xword), m_value) \
- TYPE_NAME (ElfW2(Bits, Ext##Xword), m_info) \
- TYPE_NAME (ElfW2(Bits, Ext##Xword), m_poffset) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), m_repeat) \
- TYPE_NAME (ElfW2(Bits, Ext##Half), m_stride) \
-END (Bits, Ext##Move)
-
-#define Move32(Ext) \
- Move (32, Ext)
-#define Move64(Ext) \
- Move (64, Ext)
-
-#define Lib(Bits, Ext) \
-START (Bits, Lib, Ext##Lib) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), l_name) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), l_time_stamp) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), l_checksum) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), l_version) \
- TYPE_NAME (ElfW2(Bits, Ext##Word), l_flags) \
-END (Bits, Ext##Lib)
-
-#define Lib32(Ext) \
- Lib (32, Ext)
-#define Lib64(Ext) \
- Lib (64, Ext)
diff --git a/libelf/common.h b/libelf/common.h
deleted file mode 100644
index ad41bb98..00000000
--- a/libelf/common.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Common definitions for handling files in memory or only on disk.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef _COMMON_H
-#define _COMMON_H 1
-
-#include <ar.h>
-//#include <byteswap.h>
-//#include <endian.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-static inline Elf_Kind
-determine_kind (void *buf, size_t len)
-{
- /* First test for an archive. */
- if (len >= SARMAG && memcmp (buf, ARMAG, SARMAG) == 0)
- return ELF_K_AR;
-
- /* Next try ELF files. */
- if (len >= EI_NIDENT && memcmp (buf, ELFMAG, SELFMAG) == 0)
- {
- /* Could be an ELF file. */
- int eclass = (int) ((unsigned char *) buf)[EI_CLASS];
- int data = (int) ((unsigned char *) buf)[EI_DATA];
- int version = (int) ((unsigned char *) buf)[EI_VERSION];
-
- if (eclass > ELFCLASSNONE && eclass < ELFCLASSNUM
- && data > ELFDATANONE && data < ELFDATANUM
- && version > EV_NONE && version < EV_NUM)
- return ELF_K_ELF;
- }
-
- /* We do not know this file type. */
- return ELF_K_NONE;
-}
-
-
-/* Allocate an Elf descriptor and fill in the generic information. */
-static inline Elf *
-allocate_elf (int fildes, void *map_address, off_t offset, size_t maxsize,
- Elf_Cmd cmd, Elf *parent, Elf_Kind kind, size_t extra)
-{
- Elf *result = (Elf *) calloc (1, sizeof (Elf) + extra);
- if (result == NULL)
- __libelf_seterrno (ELF_E_NOMEM);
- else
- {
- result->kind = kind;
- result->ref_count = 1;
- result->cmd = cmd;
- result->fildes = fildes;
- result->start_offset = offset;
- result->maximum_size = maxsize;
- result->map_address = map_address;
- result->parent = parent;
-
- rwlock_init (result->lock);
- }
-
- return result;
-}
-
-
-/* Acquire lock for the descriptor and all children. */
-static void
-libelf_acquire_all (Elf *elf)
-{
- rwlock_wrlock (elf->lock);
-
- if (elf->kind == ELF_K_AR)
- {
- Elf *child = elf->state.ar.children;
-
- while (child != NULL)
- {
- if (child->ref_count != 0)
- libelf_acquire_all (child);
- child = child->next;
- }
- }
-}
-
-/* Release own lock and those of the children. */
-static void
-libelf_release_all (Elf *elf)
-{
- if (elf->kind == ELF_K_AR)
- {
- Elf *child = elf->state.ar.children;
-
- while (child != NULL)
- {
- if (child->ref_count != 0)
- libelf_release_all (child);
- child = child->next;
- }
- }
-
- rwlock_unlock (elf->lock);
-}
-
-
-/* Macro to convert endianess in place. It determines the function it
- has to use itself. */
-#define CONVERT(Var) \
- (Var) = (sizeof (Var) == 1 \
- ? (Var) \
- : (sizeof (Var) == 2 \
- ? bswap_16 (Var) \
- : (sizeof (Var) == 4 \
- ? bswap_32 (Var) \
- : bswap_64 (Var))))
-
-#define CONVERT_TO(Dst, Var) \
- (Dst) = (sizeof (Var) == 1 \
- ? (Var) \
- : (sizeof (Var) == 2 \
- ? bswap_16 (Var) \
- : (sizeof (Var) == 4 \
- ? bswap_32 (Var) \
- : bswap_64 (Var))))
-
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-# define MY_ELFDATA ELFDATA2LSB
-#else
-# define MY_ELFDATA ELFDATA2MSB
-#endif
-
-#endif /* common.h */
diff --git a/libelf/dl-hash.h b/libelf/dl-hash.h
deleted file mode 100644
index c8e89626..00000000
--- a/libelf/dl-hash.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Compute hash value for given string according to ELF standard.
- Copyright (C) 1995-1998, 2002, 2004 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1995.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef _DL_HASH_H
-#define _DL_HASH_H 1
-
-
-/* This is the hashing function specified by the ELF ABI. In the
- first five operations no overflow is possible so we optimized it a
- bit. */
-static inline unsigned int
-__attribute__ ((__pure__))
-_dl_elf_hash (const char *name)
-{
- const unsigned char *iname = (const unsigned char *) name;
- unsigned int hash = (unsigned int) *iname++;
- if (*iname != '\0')
- {
- hash = (hash << 4) + (unsigned int) *iname++;
- if (*iname != '\0')
- {
- hash = (hash << 4) + (unsigned int) *iname++;
- if (*iname != '\0')
- {
- hash = (hash << 4) + (unsigned int) *iname++;
- if (*iname != '\0')
- {
- hash = (hash << 4) + (unsigned int) *iname++;
- while (*iname != '\0')
- {
- unsigned int hi;
- hash = (hash << 4) + (unsigned int) *iname++;
- hi = hash & 0xf0000000;
-
- /* The algorithm specified in the ELF ABI is as
- follows:
-
- if (hi != 0)
- hash ^= hi >> 24;
-
- hash &= ~hi;
-
- But the following is equivalent and a lot
- faster, especially on modern processors. */
-
- hash ^= hi;
- hash ^= hi >> 24;
- }
- }
- }
- }
- }
- return hash;
-}
-
-#endif /* dl-hash.h */
diff --git a/libelf/elf-knowledge.h b/libelf/elf-knowledge.h
deleted file mode 100644
index c44e37f7..00000000
--- a/libelf/elf-knowledge.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Accumulation of various pieces of knowledge about ELF.
- Copyright (C) 2000, 2001, 2002, 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef _ELF_KNOWLEDGE_H
-#define _ELF_KNOWLEDGE_H 1
-
-
-/* Test whether a section can be stripped or not. */
-#define SECTION_STRIP_P(ebl, elf, ehdr, shdr, name, remove_comment, remove_debug) \
- (/* Sections which are allocated are not removed. */ \
- ((shdr)->sh_flags & SHF_ALLOC) == 0 \
- /* We never remove .note sections. */ \
- && (shdr)->sh_type != SHT_NOTE \
- /* If only debug information should be removed check the name. There \
- is unfortunately no way. */ \
- && (!remove_debug \
- || ebl_debugscn_p (ebl, name) \
- || (((shdr)->sh_type == SHT_RELA || (shdr)->sh_type == SHT_REL) \
- && ({ Elf_Scn *scn_l = elf_getscn (elf, (shdr)->sh_info); \
- GElf_Shdr shdr_mem_l; \
- GElf_Shdr *shdr_l = gelf_getshdr (scn_l, &shdr_mem_l); \
- const char *s_l; \
- shdr_l != NULL \
- && (s_l = elf_strptr (elf, \
- ((GElf_Ehdr *) (ehdr))->e_shstrndx, \
- shdr_l->sh_name)) != NULL \
- && ebl_debugscn_p (ebl, s_l); }))) \
- && ((shdr)->sh_type != SHT_PROGBITS \
- /* Never remove .gnu.warning.* sections. */ \
- || (strncmp (name, ".gnu.warning.", sizeof ".gnu.warning." - 1) != 0 \
- /* We remove .comment sections only if explicitly told to do so. */ \
- && ((remove_comment) || strcmp (name, ".comment") != 0))) \
- /* So far we do not remove any of the non-standard sections. \
- XXX Maybe in future. */ \
- && (shdr)->sh_type < SHT_NUM)
-
-
-/* Test whether `sh_info' field in section header contains a section
- index. There are two kinds of sections doing this:
-
- - the sections containing relocation information reference in this
- field the section to which the relocations apply;
-
- - section with the SHF_INFO_LINK flag set to signal that `sh_info'
- references a section. This allows correct handling of unknown
- sections. */
-#define SH_INFO_LINK_P(Shdr) \
- ((Shdr)->sh_type == SHT_REL || (Shdr)->sh_type == SHT_RELA \
- || ((Shdr)->sh_flags & SHF_INFO_LINK) != 0)
-
-
-/* When combining ELF section flags we must distinguish two kinds:
-
- - flags which cause problem if not added to the result even if not
- present in all input sections
-
- - flags which cause problem if added to the result if not present
- in all input sections
-
- The following definition is for the general case. There might be
- machine specific extensions. */
-#define SH_FLAGS_COMBINE(Flags1, Flags2) \
- (((Flags1 | Flags2) \
- & (SHF_WRITE | SHF_ALLOC | SHF_EXECINSTR | SHF_LINK_ORDER \
- | SHF_OS_NONCONFORMING | SHF_GROUP)) \
- | (Flags1 & Flags2 & (SHF_MERGE | SHF_STRINGS | SHF_INFO_LINK)))
-
-/* Similar macro: return the bits of the flags which necessarily must
- match if two sections are automatically combined. Sections still
- can be forcefully combined in which case SH_FLAGS_COMBINE can be
- used to determine the combined flags. */
-#define SH_FLAGS_IMPORTANT(Flags) \
- ((Flags) & ~((GElf_Xword) 0 | SHF_LINK_ORDER | SHF_OS_NONCONFORMING))
-
-
-/* Size of an entry in the hash table. The ELF specification says all
- entries are regardless of platform 32-bits in size. Early 64-bit
- ports (namely Alpha for Linux) got this wrong. The wording was not
- clear.
-
- Several years later the ABI for the 64-bit S390s was developed.
- Many things were copied from the IA-64 ABI (which uses the correct
- 32-bit entry size) but what do these people do? They use 64-bit
- entries. It is really shocking to see what kind of morons are out
- there. And even worse: they are allowed to design ABIs. */
-#define SH_ENTSIZE_HASH(Ehdr) \
- ((Ehdr)->e_machine == EM_ALPHA \
- || ((Ehdr)->e_machine == EM_S390 \
- && (Ehdr)->e_ident[EI_CLASS] == ELFCLASS64) ? 8 : 4)
-
-#endif /* elf-knowledge.h */
diff --git a/libelf/elf.h b/libelf/elf.h
deleted file mode 100644
index f963eac5..00000000
--- a/libelf/elf.h
+++ /dev/null
@@ -1,2457 +0,0 @@
-/* This file defines standard ELF types, structures, and macros.
- Copyright (C) 1995-2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _ELF_H
-#define _ELF_H 1
-
-//#include <features.h>
-
-/* Standard ELF types. */
-
-#include <stdint.h>
-
-/* Type for a 16-bit quantity. */
-typedef uint16_t Elf32_Half;
-typedef uint16_t Elf64_Half;
-
-/* Types for signed and unsigned 32-bit quantities. */
-typedef uint32_t Elf32_Word;
-typedef int32_t Elf32_Sword;
-typedef uint32_t Elf64_Word;
-typedef int32_t Elf64_Sword;
-
-/* Types for signed and unsigned 64-bit quantities. */
-typedef uint64_t Elf32_Xword;
-typedef int64_t Elf32_Sxword;
-typedef uint64_t Elf64_Xword;
-typedef int64_t Elf64_Sxword;
-
-/* Type of addresses. */
-typedef uint32_t Elf32_Addr;
-typedef uint64_t Elf64_Addr;
-
-/* Type of file offsets. */
-typedef uint32_t Elf32_Off;
-typedef uint64_t Elf64_Off;
-
-/* Type for section indices, which are 16-bit quantities. */
-typedef uint16_t Elf32_Section;
-typedef uint16_t Elf64_Section;
-
-/* Type for version symbol information. */
-typedef Elf32_Half Elf32_Versym;
-typedef Elf64_Half Elf64_Versym;
-
-
-/* The ELF file header. This appears at the start of every ELF file. */
-
-#define EI_NIDENT (16)
-
-typedef struct
-{
- unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */
- Elf32_Half e_type; /* Object file type */
- Elf32_Half e_machine; /* Architecture */
- Elf32_Word e_version; /* Object file version */
- Elf32_Addr e_entry; /* Entry point virtual address */
- Elf32_Off e_phoff; /* Program header table file offset */
- Elf32_Off e_shoff; /* Section header table file offset */
- Elf32_Word e_flags; /* Processor-specific flags */
- Elf32_Half e_ehsize; /* ELF header size in bytes */
- Elf32_Half e_phentsize; /* Program header table entry size */
- Elf32_Half e_phnum; /* Program header table entry count */
- Elf32_Half e_shentsize; /* Section header table entry size */
- Elf32_Half e_shnum; /* Section header table entry count */
- Elf32_Half e_shstrndx; /* Section header string table index */
-} Elf32_Ehdr;
-
-typedef struct
-{
- unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */
- Elf64_Half e_type; /* Object file type */
- Elf64_Half e_machine; /* Architecture */
- Elf64_Word e_version; /* Object file version */
- Elf64_Addr e_entry; /* Entry point virtual address */
- Elf64_Off e_phoff; /* Program header table file offset */
- Elf64_Off e_shoff; /* Section header table file offset */
- Elf64_Word e_flags; /* Processor-specific flags */
- Elf64_Half e_ehsize; /* ELF header size in bytes */
- Elf64_Half e_phentsize; /* Program header table entry size */
- Elf64_Half e_phnum; /* Program header table entry count */
- Elf64_Half e_shentsize; /* Section header table entry size */
- Elf64_Half e_shnum; /* Section header table entry count */
- Elf64_Half e_shstrndx; /* Section header string table index */
-} Elf64_Ehdr;
-
-/* Fields in the e_ident array. The EI_* macros are indices into the
- array. The macros under each EI_* macro are the values the byte
- may have. */
-
-#define EI_MAG0 0 /* File identification byte 0 index */
-#define ELFMAG0 0x7f /* Magic number byte 0 */
-
-#define EI_MAG1 1 /* File identification byte 1 index */
-#define ELFMAG1 'E' /* Magic number byte 1 */
-
-#define EI_MAG2 2 /* File identification byte 2 index */
-#define ELFMAG2 'L' /* Magic number byte 2 */
-
-#define EI_MAG3 3 /* File identification byte 3 index */
-#define ELFMAG3 'F' /* Magic number byte 3 */
-
-/* Conglomeration of the identification bytes, for easy testing as a word. */
-#define ELFMAG "\177ELF"
-#define SELFMAG 4
-
-#define EI_CLASS 4 /* File class byte index */
-#define ELFCLASSNONE 0 /* Invalid class */
-#define ELFCLASS32 1 /* 32-bit objects */
-#define ELFCLASS64 2 /* 64-bit objects */
-#define ELFCLASSNUM 3
-
-#define EI_DATA 5 /* Data encoding byte index */
-#define ELFDATANONE 0 /* Invalid data encoding */
-#define ELFDATA2LSB 1 /* 2's complement, little endian */
-#define ELFDATA2MSB 2 /* 2's complement, big endian */
-#define ELFDATANUM 3
-
-#define EI_VERSION 6 /* File version byte index */
- /* Value must be EV_CURRENT */
-
-#define EI_OSABI 7 /* OS ABI identification */
-#define ELFOSABI_NONE 0 /* UNIX System V ABI */
-#define ELFOSABI_SYSV 0 /* Alias. */
-#define ELFOSABI_HPUX 1 /* HP-UX */
-#define ELFOSABI_NETBSD 2 /* NetBSD. */
-#define ELFOSABI_LINUX 3 /* Linux. */
-#define ELFOSABI_SOLARIS 6 /* Sun Solaris. */
-#define ELFOSABI_AIX 7 /* IBM AIX. */
-#define ELFOSABI_IRIX 8 /* SGI Irix. */
-#define ELFOSABI_FREEBSD 9 /* FreeBSD. */
-#define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX. */
-#define ELFOSABI_MODESTO 11 /* Novell Modesto. */
-#define ELFOSABI_OPENBSD 12 /* OpenBSD. */
-#define ELFOSABI_ARM 97 /* ARM */
-#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
-
-#define EI_ABIVERSION 8 /* ABI version */
-
-#define EI_PAD 9 /* Byte index of padding bytes */
-
-/* Legal values for e_type (object file type). */
-
-#define ET_NONE 0 /* No file type */
-#define ET_REL 1 /* Relocatable file */
-#define ET_EXEC 2 /* Executable file */
-#define ET_DYN 3 /* Shared object file */
-#define ET_CORE 4 /* Core file */
-#define ET_NUM 5 /* Number of defined types */
-#define ET_LOOS 0xfe00 /* OS-specific range start */
-#define ET_HIOS 0xfeff /* OS-specific range end */
-#define ET_LOPROC 0xff00 /* Processor-specific range start */
-#define ET_HIPROC 0xffff /* Processor-specific range end */
-
-/* Legal values for e_machine (architecture). */
-
-#define EM_NONE 0 /* No machine */
-#define EM_M32 1 /* AT&T WE 32100 */
-#define EM_SPARC 2 /* SUN SPARC */
-#define EM_386 3 /* Intel 80386 */
-#define EM_68K 4 /* Motorola m68k family */
-#define EM_88K 5 /* Motorola m88k family */
-#define EM_860 7 /* Intel 80860 */
-#define EM_MIPS 8 /* MIPS R3000 big-endian */
-#define EM_S370 9 /* IBM System/370 */
-#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */
-
-#define EM_PARISC 15 /* HPPA */
-#define EM_VPP500 17 /* Fujitsu VPP500 */
-#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */
-#define EM_960 19 /* Intel 80960 */
-#define EM_PPC 20 /* PowerPC */
-#define EM_PPC64 21 /* PowerPC 64-bit */
-#define EM_S390 22 /* IBM S390 */
-
-#define EM_V800 36 /* NEC V800 series */
-#define EM_FR20 37 /* Fujitsu FR20 */
-#define EM_RH32 38 /* TRW RH-32 */
-#define EM_RCE 39 /* Motorola RCE */
-#define EM_ARM 40 /* ARM */
-#define EM_FAKE_ALPHA 41 /* Digital Alpha */
-#define EM_SH 42 /* Hitachi SH */
-#define EM_SPARCV9 43 /* SPARC v9 64-bit */
-#define EM_TRICORE 44 /* Siemens Tricore */
-#define EM_ARC 45 /* Argonaut RISC Core */
-#define EM_H8_300 46 /* Hitachi H8/300 */
-#define EM_H8_300H 47 /* Hitachi H8/300H */
-#define EM_H8S 48 /* Hitachi H8S */
-#define EM_H8_500 49 /* Hitachi H8/500 */
-#define EM_IA_64 50 /* Intel Merced */
-#define EM_MIPS_X 51 /* Stanford MIPS-X */
-#define EM_COLDFIRE 52 /* Motorola Coldfire */
-#define EM_68HC12 53 /* Motorola M68HC12 */
-#define EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator*/
-#define EM_PCP 55 /* Siemens PCP */
-#define EM_NCPU 56 /* Sony nCPU embeeded RISC */
-#define EM_NDR1 57 /* Denso NDR1 microprocessor */
-#define EM_STARCORE 58 /* Motorola Start*Core processor */
-#define EM_ME16 59 /* Toyota ME16 processor */
-#define EM_ST100 60 /* STMicroelectronic ST100 processor */
-#define EM_TINYJ 61 /* Advanced Logic Corp. Tinyj emb.fam*/
-#define EM_X86_64 62 /* AMD x86-64 architecture */
-#define EM_PDSP 63 /* Sony DSP Processor */
-
-#define EM_FX66 66 /* Siemens FX66 microcontroller */
-#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */
-#define EM_ST7 68 /* STmicroelectronics ST7 8 bit mc */
-#define EM_68HC16 69 /* Motorola MC68HC16 microcontroller */
-#define EM_68HC11 70 /* Motorola MC68HC11 microcontroller */
-#define EM_68HC08 71 /* Motorola MC68HC08 microcontroller */
-#define EM_68HC05 72 /* Motorola MC68HC05 microcontroller */
-#define EM_SVX 73 /* Silicon Graphics SVx */
-#define EM_ST19 74 /* STMicroelectronics ST19 8 bit mc */
-#define EM_VAX 75 /* Digital VAX */
-#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */
-#define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded processor */
-#define EM_FIREPATH 78 /* Element 14 64-bit DSP Processor */
-#define EM_ZSP 79 /* LSI Logic 16-bit DSP Processor */
-#define EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */
-#define EM_HUANY 81 /* Harvard University machine-independent object files */
-#define EM_PRISM 82 /* SiTera Prism */
-#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */
-#define EM_FR30 84 /* Fujitsu FR30 */
-#define EM_D10V 85 /* Mitsubishi D10V */
-#define EM_D30V 86 /* Mitsubishi D30V */
-#define EM_V850 87 /* NEC v850 */
-#define EM_M32R 88 /* Mitsubishi M32R */
-#define EM_MN10300 89 /* Matsushita MN10300 */
-#define EM_MN10200 90 /* Matsushita MN10200 */
-#define EM_PJ 91 /* picoJava */
-#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
-#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */
-#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
-#define EM_NUM 95
-
-/* If it is necessary to assign new unofficial EM_* values, please
- pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the
- chances of collision with official or non-GNU unofficial values. */
-
-#define EM_ALPHA 0x9026
-
-/* Legal values for e_version (version). */
-
-#define EV_NONE 0 /* Invalid ELF version */
-#define EV_CURRENT 1 /* Current version */
-#define EV_NUM 2
-
-/* Section header. */
-
-typedef struct
-{
- Elf32_Word sh_name; /* Section name (string tbl index) */
- Elf32_Word sh_type; /* Section type */
- Elf32_Word sh_flags; /* Section flags */
- Elf32_Addr sh_addr; /* Section virtual addr at execution */
- Elf32_Off sh_offset; /* Section file offset */
- Elf32_Word sh_size; /* Section size in bytes */
- Elf32_Word sh_link; /* Link to another section */
- Elf32_Word sh_info; /* Additional section information */
- Elf32_Word sh_addralign; /* Section alignment */
- Elf32_Word sh_entsize; /* Entry size if section holds table */
-} Elf32_Shdr;
-
-typedef struct
-{
- Elf64_Word sh_name; /* Section name (string tbl index) */
- Elf64_Word sh_type; /* Section type */
- Elf64_Xword sh_flags; /* Section flags */
- Elf64_Addr sh_addr; /* Section virtual addr at execution */
- Elf64_Off sh_offset; /* Section file offset */
- Elf64_Xword sh_size; /* Section size in bytes */
- Elf64_Word sh_link; /* Link to another section */
- Elf64_Word sh_info; /* Additional section information */
- Elf64_Xword sh_addralign; /* Section alignment */
- Elf64_Xword sh_entsize; /* Entry size if section holds table */
-} Elf64_Shdr;
-
-/* Special section indices. */
-
-#define SHN_UNDEF 0 /* Undefined section */
-#define SHN_LORESERVE 0xff00 /* Start of reserved indices */
-#define SHN_LOPROC 0xff00 /* Start of processor-specific */
-#define SHN_BEFORE 0xff00 /* Order section before all others
- (Solaris). */
-#define SHN_AFTER 0xff01 /* Order section after all others
- (Solaris). */
-#define SHN_HIPROC 0xff1f /* End of processor-specific */
-#define SHN_LOOS 0xff20 /* Start of OS-specific */
-#define SHN_HIOS 0xff3f /* End of OS-specific */
-#define SHN_ABS 0xfff1 /* Associated symbol is absolute */
-#define SHN_COMMON 0xfff2 /* Associated symbol is common */
-#define SHN_XINDEX 0xffff /* Index is in extra table. */
-#define SHN_HIRESERVE 0xffff /* End of reserved indices */
-
-/* Legal values for sh_type (section type). */
-
-#define SHT_NULL 0 /* Section header table entry unused */
-#define SHT_PROGBITS 1 /* Program data */
-#define SHT_SYMTAB 2 /* Symbol table */
-#define SHT_STRTAB 3 /* String table */
-#define SHT_RELA 4 /* Relocation entries with addends */
-#define SHT_HASH 5 /* Symbol hash table */
-#define SHT_DYNAMIC 6 /* Dynamic linking information */
-#define SHT_NOTE 7 /* Notes */
-#define SHT_NOBITS 8 /* Program space with no data (bss) */
-#define SHT_REL 9 /* Relocation entries, no addends */
-#define SHT_SHLIB 10 /* Reserved */
-#define SHT_DYNSYM 11 /* Dynamic linker symbol table */
-#define SHT_INIT_ARRAY 14 /* Array of constructors */
-#define SHT_FINI_ARRAY 15 /* Array of destructors */
-#define SHT_PREINIT_ARRAY 16 /* Array of pre-constructors */
-#define SHT_GROUP 17 /* Section group */
-#define SHT_SYMTAB_SHNDX 18 /* Extended section indeces */
-#define SHT_NUM 19 /* Number of defined types. */
-#define SHT_LOOS 0x60000000 /* Start OS-specific */
-#define SHT_GNU_LIBLIST 0x6ffffff7 /* Prelink library list */
-#define SHT_CHECKSUM 0x6ffffff8 /* Checksum for DSO content. */
-#define SHT_LOSUNW 0x6ffffffa /* Sun-specific low bound. */
-#define SHT_SUNW_move 0x6ffffffa
-#define SHT_SUNW_COMDAT 0x6ffffffb
-#define SHT_SUNW_syminfo 0x6ffffffc
-#define SHT_GNU_verdef 0x6ffffffd /* Version definition section. */
-#define SHT_GNU_verneed 0x6ffffffe /* Version needs section. */
-#define SHT_GNU_versym 0x6fffffff /* Version symbol table. */
-#define SHT_HISUNW 0x6fffffff /* Sun-specific high bound. */
-#define SHT_HIOS 0x6fffffff /* End OS-specific type */
-#define SHT_LOPROC 0x70000000 /* Start of processor-specific */
-#define SHT_HIPROC 0x7fffffff /* End of processor-specific */
-#define SHT_LOUSER 0x80000000 /* Start of application-specific */
-#define SHT_HIUSER 0x8fffffff /* End of application-specific */
-
-/* Legal values for sh_flags (section flags). */
-
-#define SHF_WRITE (1 << 0) /* Writable */
-#define SHF_ALLOC (1 << 1) /* Occupies memory during execution */
-#define SHF_EXECINSTR (1 << 2) /* Executable */
-#define SHF_MERGE (1 << 4) /* Might be merged */
-#define SHF_STRINGS (1 << 5) /* Contains nul-terminated strings */
-#define SHF_INFO_LINK (1 << 6) /* `sh_info' contains SHT index */
-#define SHF_LINK_ORDER (1 << 7) /* Preserve order after combining */
-#define SHF_OS_NONCONFORMING (1 << 8) /* Non-standard OS specific handling
- required */
-#define SHF_GROUP (1 << 9) /* Section is member of a group. */
-#define SHF_TLS (1 << 10) /* Section hold thread-local data. */
-#define SHF_MASKOS 0x0ff00000 /* OS-specific. */
-#define SHF_MASKPROC 0xf0000000 /* Processor-specific */
-#define SHF_ORDERED (1 << 30) /* Special ordering requirement
- (Solaris). */
-#define SHF_EXCLUDE (1 << 31) /* Section is excluded unless
- referenced or allocated (Solaris).*/
-
-/* Section group handling. */
-#define GRP_COMDAT 0x1 /* Mark group as COMDAT. */
-
-/* Symbol table entry. */
-
-typedef struct
-{
- Elf32_Word st_name; /* Symbol name (string tbl index) */
- Elf32_Addr st_value; /* Symbol value */
- Elf32_Word st_size; /* Symbol size */
- unsigned char st_info; /* Symbol type and binding */
- unsigned char st_other; /* Symbol visibility */
- Elf32_Section st_shndx; /* Section index */
-} Elf32_Sym;
-
-typedef struct
-{
- Elf64_Word st_name; /* Symbol name (string tbl index) */
- unsigned char st_info; /* Symbol type and binding */
- unsigned char st_other; /* Symbol visibility */
- Elf64_Section st_shndx; /* Section index */
- Elf64_Addr st_value; /* Symbol value */
- Elf64_Xword st_size; /* Symbol size */
-} Elf64_Sym;
-
-/* The syminfo section if available contains additional information about
- every dynamic symbol. */
-
-typedef struct
-{
- Elf32_Half si_boundto; /* Direct bindings, symbol bound to */
- Elf32_Half si_flags; /* Per symbol flags */
-} Elf32_Syminfo;
-
-typedef struct
-{
- Elf64_Half si_boundto; /* Direct bindings, symbol bound to */
- Elf64_Half si_flags; /* Per symbol flags */
-} Elf64_Syminfo;
-
-/* Possible values for si_boundto. */
-#define SYMINFO_BT_SELF 0xffff /* Symbol bound to self */
-#define SYMINFO_BT_PARENT 0xfffe /* Symbol bound to parent */
-#define SYMINFO_BT_LOWRESERVE 0xff00 /* Beginning of reserved entries */
-
-/* Possible bitmasks for si_flags. */
-#define SYMINFO_FLG_DIRECT 0x0001 /* Direct bound symbol */
-#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-thru symbol for translator */
-#define SYMINFO_FLG_COPY 0x0004 /* Symbol is a copy-reloc */
-#define SYMINFO_FLG_LAZYLOAD 0x0008 /* Symbol bound to object to be lazy
- loaded */
-/* Syminfo version values. */
-#define SYMINFO_NONE 0
-#define SYMINFO_CURRENT 1
-#define SYMINFO_NUM 2
-
-
-/* How to extract and insert information held in the st_info field. */
-
-#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
-#define ELF32_ST_TYPE(val) ((val) & 0xf)
-#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
-
-/* Both Elf32_Sym and Elf64_Sym use the same one-byte st_info field. */
-#define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
-#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
-#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))
-
-/* Legal values for ST_BIND subfield of st_info (symbol binding). */
-
-#define STB_LOCAL 0 /* Local symbol */
-#define STB_GLOBAL 1 /* Global symbol */
-#define STB_WEAK 2 /* Weak symbol */
-#define STB_NUM 3 /* Number of defined types. */
-#define STB_LOOS 10 /* Start of OS-specific */
-#define STB_HIOS 12 /* End of OS-specific */
-#define STB_LOPROC 13 /* Start of processor-specific */
-#define STB_HIPROC 15 /* End of processor-specific */
-
-/* Legal values for ST_TYPE subfield of st_info (symbol type). */
-
-#define STT_NOTYPE 0 /* Symbol type is unspecified */
-#define STT_OBJECT 1 /* Symbol is a data object */
-#define STT_FUNC 2 /* Symbol is a code object */
-#define STT_SECTION 3 /* Symbol associated with a section */
-#define STT_FILE 4 /* Symbol's name is file name */
-#define STT_COMMON 5 /* Symbol is a common data object */
-#define STT_TLS 6 /* Symbol is thread-local data object*/
-#define STT_NUM 7 /* Number of defined types. */
-#define STT_LOOS 10 /* Start of OS-specific */
-#define STT_HIOS 12 /* End of OS-specific */
-#define STT_LOPROC 13 /* Start of processor-specific */
-#define STT_HIPROC 15 /* End of processor-specific */
-
-
-/* Symbol table indices are found in the hash buckets and chain table
- of a symbol hash table section. This special index value indicates
- the end of a chain, meaning no further symbols are found in that bucket. */
-
-#define STN_UNDEF 0 /* End of a chain. */
-
-
-/* How to extract and insert information held in the st_other field. */
-
-#define ELF32_ST_VISIBILITY(o) ((o) & 0x03)
-
-/* For ELF64 the definitions are the same. */
-#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)
-
-/* Symbol visibility specification encoded in the st_other field. */
-#define STV_DEFAULT 0 /* Default symbol visibility rules */
-#define STV_INTERNAL 1 /* Processor specific hidden class */
-#define STV_HIDDEN 2 /* Sym unavailable in other modules */
-#define STV_PROTECTED 3 /* Not preemptible, not exported */
-
-
-/* Relocation table entry without addend (in section of type SHT_REL). */
-
-typedef struct
-{
- Elf32_Addr r_offset; /* Address */
- Elf32_Word r_info; /* Relocation type and symbol index */
-} Elf32_Rel;
-
-/* I have seen two different definitions of the Elf64_Rel and
- Elf64_Rela structures, so we'll leave them out until Novell (or
- whoever) gets their act together. */
-/* The following, at least, is used on Sparc v9, MIPS, and Alpha. */
-
-typedef struct
-{
- Elf64_Addr r_offset; /* Address */
- Elf64_Xword r_info; /* Relocation type and symbol index */
-} Elf64_Rel;
-
-/* Relocation table entry with addend (in section of type SHT_RELA). */
-
-typedef struct
-{
- Elf32_Addr r_offset; /* Address */
- Elf32_Word r_info; /* Relocation type and symbol index */
- Elf32_Sword r_addend; /* Addend */
-} Elf32_Rela;
-
-typedef struct
-{
- Elf64_Addr r_offset; /* Address */
- Elf64_Xword r_info; /* Relocation type and symbol index */
- Elf64_Sxword r_addend; /* Addend */
-} Elf64_Rela;
-
-/* How to extract and insert information held in the r_info field. */
-
-#define ELF32_R_SYM(val) ((val) >> 8)
-#define ELF32_R_TYPE(val) ((val) & 0xff)
-#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
-
-#define ELF64_R_SYM(i) ((i) >> 32)
-#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
-#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))
-
-/* Program segment header. */
-
-typedef struct
-{
- Elf32_Word p_type; /* Segment type */
- Elf32_Off p_offset; /* Segment file offset */
- Elf32_Addr p_vaddr; /* Segment virtual address */
- Elf32_Addr p_paddr; /* Segment physical address */
- Elf32_Word p_filesz; /* Segment size in file */
- Elf32_Word p_memsz; /* Segment size in memory */
- Elf32_Word p_flags; /* Segment flags */
- Elf32_Word p_align; /* Segment alignment */
-} Elf32_Phdr;
-
-typedef struct
-{
- Elf64_Word p_type; /* Segment type */
- Elf64_Word p_flags; /* Segment flags */
- Elf64_Off p_offset; /* Segment file offset */
- Elf64_Addr p_vaddr; /* Segment virtual address */
- Elf64_Addr p_paddr; /* Segment physical address */
- Elf64_Xword p_filesz; /* Segment size in file */
- Elf64_Xword p_memsz; /* Segment size in memory */
- Elf64_Xword p_align; /* Segment alignment */
-} Elf64_Phdr;
-
-/* Legal values for p_type (segment type). */
-
-#define PT_NULL 0 /* Program header table entry unused */
-#define PT_LOAD 1 /* Loadable program segment */
-#define PT_DYNAMIC 2 /* Dynamic linking information */
-#define PT_INTERP 3 /* Program interpreter */
-#define PT_NOTE 4 /* Auxiliary information */
-#define PT_SHLIB 5 /* Reserved */
-#define PT_PHDR 6 /* Entry for header table itself */
-#define PT_TLS 7 /* Thread-local storage segment */
-#define PT_NUM 8 /* Number of defined types */
-#define PT_LOOS 0x60000000 /* Start of OS-specific */
-#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */
-#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */
-#define PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */
-#define PT_LOSUNW 0x6ffffffa
-#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */
-#define PT_SUNWSTACK 0x6ffffffb /* Stack segment */
-#define PT_HISUNW 0x6fffffff
-#define PT_HIOS 0x6fffffff /* End of OS-specific */
-#define PT_LOPROC 0x70000000 /* Start of processor-specific */
-#define PT_HIPROC 0x7fffffff /* End of processor-specific */
-
-/* Legal values for p_flags (segment flags). */
-
-#define PF_X (1 << 0) /* Segment is executable */
-#define PF_W (1 << 1) /* Segment is writable */
-#define PF_R (1 << 2) /* Segment is readable */
-#define PF_MASKOS 0x0ff00000 /* OS-specific */
-#define PF_MASKPROC 0xf0000000 /* Processor-specific */
-
-/* Legal values for note segment descriptor types for core files. */
-
-#define NT_PRSTATUS 1 /* Contains copy of prstatus struct */
-#define NT_FPREGSET 2 /* Contains copy of fpregset struct */
-#define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */
-#define NT_PRXREG 4 /* Contains copy of prxregset struct */
-#define NT_TASKSTRUCT 4 /* Contains copy of task structure */
-#define NT_PLATFORM 5 /* String from sysinfo(SI_PLATFORM) */
-#define NT_AUXV 6 /* Contains copy of auxv array */
-#define NT_GWINDOWS 7 /* Contains copy of gwindows struct */
-#define NT_ASRS 8 /* Contains copy of asrset struct */
-#define NT_PSTATUS 10 /* Contains copy of pstatus struct */
-#define NT_PSINFO 13 /* Contains copy of psinfo struct */
-#define NT_PRCRED 14 /* Contains copy of prcred struct */
-#define NT_UTSNAME 15 /* Contains copy of utsname struct */
-#define NT_LWPSTATUS 16 /* Contains copy of lwpstatus struct */
-#define NT_LWPSINFO 17 /* Contains copy of lwpinfo struct */
-#define NT_PRFPXREG 20 /* Contains copy of fprxregset struct*/
-
-/* Legal values for the note segment descriptor types for object files. */
-
-#define NT_VERSION 1 /* Contains a version string. */
-
-
-/* Dynamic section entry. */
-
-typedef struct
-{
- Elf32_Sword d_tag; /* Dynamic entry type */
- union
- {
- Elf32_Word d_val; /* Integer value */
- Elf32_Addr d_ptr; /* Address value */
- } d_un;
-} Elf32_Dyn;
-
-typedef struct
-{
- Elf64_Sxword d_tag; /* Dynamic entry type */
- union
- {
- Elf64_Xword d_val; /* Integer value */
- Elf64_Addr d_ptr; /* Address value */
- } d_un;
-} Elf64_Dyn;
-
-/* Legal values for d_tag (dynamic entry type). */
-
-#define DT_NULL 0 /* Marks end of dynamic section */
-#define DT_NEEDED 1 /* Name of needed library */
-#define DT_PLTRELSZ 2 /* Size in bytes of PLT relocs */
-#define DT_PLTGOT 3 /* Processor defined value */
-#define DT_HASH 4 /* Address of symbol hash table */
-#define DT_STRTAB 5 /* Address of string table */
-#define DT_SYMTAB 6 /* Address of symbol table */
-#define DT_RELA 7 /* Address of Rela relocs */
-#define DT_RELASZ 8 /* Total size of Rela relocs */
-#define DT_RELAENT 9 /* Size of one Rela reloc */
-#define DT_STRSZ 10 /* Size of string table */
-#define DT_SYMENT 11 /* Size of one symbol table entry */
-#define DT_INIT 12 /* Address of init function */
-#define DT_FINI 13 /* Address of termination function */
-#define DT_SONAME 14 /* Name of shared object */
-#define DT_RPATH 15 /* Library search path (deprecated) */
-#define DT_SYMBOLIC 16 /* Start symbol search here */
-#define DT_REL 17 /* Address of Rel relocs */
-#define DT_RELSZ 18 /* Total size of Rel relocs */
-#define DT_RELENT 19 /* Size of one Rel reloc */
-#define DT_PLTREL 20 /* Type of reloc in PLT */
-#define DT_DEBUG 21 /* For debugging; unspecified */
-#define DT_TEXTREL 22 /* Reloc might modify .text */
-#define DT_JMPREL 23 /* Address of PLT relocs */
-#define DT_BIND_NOW 24 /* Process relocations of object */
-#define DT_INIT_ARRAY 25 /* Array with addresses of init fct */
-#define DT_FINI_ARRAY 26 /* Array with addresses of fini fct */
-#define DT_INIT_ARRAYSZ 27 /* Size in bytes of DT_INIT_ARRAY */
-#define DT_FINI_ARRAYSZ 28 /* Size in bytes of DT_FINI_ARRAY */
-#define DT_RUNPATH 29 /* Library search path */
-#define DT_FLAGS 30 /* Flags for the object being loaded */
-#define DT_ENCODING 32 /* Start of encoded range */
-#define DT_PREINIT_ARRAY 32 /* Array with addresses of preinit fct*/
-#define DT_PREINIT_ARRAYSZ 33 /* size in bytes of DT_PREINIT_ARRAY */
-#define DT_NUM 34 /* Number used */
-#define DT_LOOS 0x6000000d /* Start of OS-specific */
-#define DT_HIOS 0x6ffff000 /* End of OS-specific */
-#define DT_LOPROC 0x70000000 /* Start of processor-specific */
-#define DT_HIPROC 0x7fffffff /* End of processor-specific */
-#define DT_PROCNUM DT_MIPS_NUM /* Most used by any processor */
-
-/* DT_* entries which fall between DT_VALRNGHI & DT_VALRNGLO use the
- Dyn.d_un.d_val field of the Elf*_Dyn structure. This follows Sun's
- approach. */
-#define DT_VALRNGLO 0x6ffffd00
-#define DT_GNU_PRELINKED 0x6ffffdf5 /* Prelinking timestamp */
-#define DT_GNU_CONFLICTSZ 0x6ffffdf6 /* Size of conflict section */
-#define DT_GNU_LIBLISTSZ 0x6ffffdf7 /* Size of library list */
-#define DT_CHECKSUM 0x6ffffdf8
-#define DT_PLTPADSZ 0x6ffffdf9
-#define DT_MOVEENT 0x6ffffdfa
-#define DT_MOVESZ 0x6ffffdfb
-#define DT_FEATURE_1 0x6ffffdfc /* Feature selection (DTF_*). */
-#define DT_POSFLAG_1 0x6ffffdfd /* Flags for DT_* entries, effecting
- the following DT_* entry. */
-#define DT_SYMINSZ 0x6ffffdfe /* Size of syminfo table (in bytes) */
-#define DT_SYMINENT 0x6ffffdff /* Entry size of syminfo */
-#define DT_VALRNGHI 0x6ffffdff
-#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) /* Reverse order! */
-#define DT_VALNUM 12
-
-/* DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the
- Dyn.d_un.d_ptr field of the Elf*_Dyn structure.
-
- If any adjustment is made to the ELF object after it has been
- built these entries will need to be adjusted. */
-#define DT_ADDRRNGLO 0x6ffffe00
-#define DT_GNU_CONFLICT 0x6ffffef8 /* Start of conflict section */
-#define DT_GNU_LIBLIST 0x6ffffef9 /* Library list */
-#define DT_CONFIG 0x6ffffefa /* Configuration information. */
-#define DT_DEPAUDIT 0x6ffffefb /* Dependency auditing. */
-#define DT_AUDIT 0x6ffffefc /* Object auditing. */
-#define DT_PLTPAD 0x6ffffefd /* PLT padding. */
-#define DT_MOVETAB 0x6ffffefe /* Move table. */
-#define DT_SYMINFO 0x6ffffeff /* Syminfo table. */
-#define DT_ADDRRNGHI 0x6ffffeff
-#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) /* Reverse order! */
-#define DT_ADDRNUM 10
-
-/* The versioning entry types. The next are defined as part of the
- GNU extension. */
-#define DT_VERSYM 0x6ffffff0
-
-#define DT_RELACOUNT 0x6ffffff9
-#define DT_RELCOUNT 0x6ffffffa
-
-/* These were chosen by Sun. */
-#define DT_FLAGS_1 0x6ffffffb /* State flags, see DF_1_* below. */
-#define DT_VERDEF 0x6ffffffc /* Address of version definition
- table */
-#define DT_VERDEFNUM 0x6ffffffd /* Number of version definitions */
-#define DT_VERNEED 0x6ffffffe /* Address of table with needed
- versions */
-#define DT_VERNEEDNUM 0x6fffffff /* Number of needed versions */
-#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) /* Reverse order! */
-#define DT_VERSIONTAGNUM 16
-
-/* Sun added these machine-independent extensions in the "processor-specific"
- range. Be compatible. */
-#define DT_AUXILIARY 0x7ffffffd /* Shared object to load before self */
-#define DT_FILTER 0x7fffffff /* Shared object to get values from */
-#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
-#define DT_EXTRANUM 3
-
-/* Values of `d_un.d_val' in the DT_FLAGS entry. */
-#define DF_ORIGIN 0x00000001 /* Object may use DF_ORIGIN */
-#define DF_SYMBOLIC 0x00000002 /* Symbol resolutions starts here */
-#define DF_TEXTREL 0x00000004 /* Object contains text relocations */
-#define DF_BIND_NOW 0x00000008 /* No lazy binding for this object */
-#define DF_STATIC_TLS 0x00000010 /* Module uses the static TLS model */
-
-/* State flags selectable in the `d_un.d_val' element of the DT_FLAGS_1
- entry in the dynamic section. */
-#define DF_1_NOW 0x00000001 /* Set RTLD_NOW for this object. */
-#define DF_1_GLOBAL 0x00000002 /* Set RTLD_GLOBAL for this object. */
-#define DF_1_GROUP 0x00000004 /* Set RTLD_GROUP for this object. */
-#define DF_1_NODELETE 0x00000008 /* Set RTLD_NODELETE for this object.*/
-#define DF_1_LOADFLTR 0x00000010 /* Trigger filtee loading at runtime.*/
-#define DF_1_INITFIRST 0x00000020 /* Set RTLD_INITFIRST for this object*/
-#define DF_1_NOOPEN 0x00000040 /* Set RTLD_NOOPEN for this object. */
-#define DF_1_ORIGIN 0x00000080 /* $ORIGIN must be handled. */
-#define DF_1_DIRECT 0x00000100 /* Direct binding enabled. */
-#define DF_1_TRANS 0x00000200
-#define DF_1_INTERPOSE 0x00000400 /* Object is used to interpose. */
-#define DF_1_NODEFLIB 0x00000800 /* Ignore default lib search path. */
-#define DF_1_NODUMP 0x00001000 /* Object can't be dldump'ed. */
-#define DF_1_CONFALT 0x00002000 /* Configuration alternative created.*/
-#define DF_1_ENDFILTEE 0x00004000 /* Filtee terminates filters search. */
-#define DF_1_DISPRELDNE 0x00008000 /* Disp reloc applied at build time. */
-#define DF_1_DISPRELPND 0x00010000 /* Disp reloc applied at run-time. */
-
-/* Flags for the feature selection in DT_FEATURE_1. */
-#define DTF_1_PARINIT 0x00000001
-#define DTF_1_CONFEXP 0x00000002
-
-/* Flags in the DT_POSFLAG_1 entry effecting only the next DT_* entry. */
-#define DF_P1_LAZYLOAD 0x00000001 /* Lazyload following object. */
-#define DF_P1_GROUPPERM 0x00000002 /* Symbols from next object are not
- generally available. */
-
-/* Version definition sections. */
-
-typedef struct
-{
- Elf32_Half vd_version; /* Version revision */
- Elf32_Half vd_flags; /* Version information */
- Elf32_Half vd_ndx; /* Version Index */
- Elf32_Half vd_cnt; /* Number of associated aux entries */
- Elf32_Word vd_hash; /* Version name hash value */
- Elf32_Word vd_aux; /* Offset in bytes to verdaux array */
- Elf32_Word vd_next; /* Offset in bytes to next verdef
- entry */
-} Elf32_Verdef;
-
-typedef struct
-{
- Elf64_Half vd_version; /* Version revision */
- Elf64_Half vd_flags; /* Version information */
- Elf64_Half vd_ndx; /* Version Index */
- Elf64_Half vd_cnt; /* Number of associated aux entries */
- Elf64_Word vd_hash; /* Version name hash value */
- Elf64_Word vd_aux; /* Offset in bytes to verdaux array */
- Elf64_Word vd_next; /* Offset in bytes to next verdef
- entry */
-} Elf64_Verdef;
-
-
-/* Legal values for vd_version (version revision). */
-#define VER_DEF_NONE 0 /* No version */
-#define VER_DEF_CURRENT 1 /* Current version */
-#define VER_DEF_NUM 2 /* Given version number */
-
-/* Legal values for vd_flags (version information flags). */
-#define VER_FLG_BASE 0x1 /* Version definition of file itself */
-#define VER_FLG_WEAK 0x2 /* Weak version identifier */
-
-/* Versym symbol index values. */
-#define VER_NDX_LOCAL 0 /* Symbol is local. */
-#define VER_NDX_GLOBAL 1 /* Symbol is global. */
-#define VER_NDX_LORESERVE 0xff00 /* Beginning of reserved entries. */
-#define VER_NDX_ELIMINATE 0xff01 /* Symbol is to be eliminated. */
-
-/* Auxialiary version information. */
-
-typedef struct
-{
- Elf32_Word vda_name; /* Version or dependency names */
- Elf32_Word vda_next; /* Offset in bytes to next verdaux
- entry */
-} Elf32_Verdaux;
-
-typedef struct
-{
- Elf64_Word vda_name; /* Version or dependency names */
- Elf64_Word vda_next; /* Offset in bytes to next verdaux
- entry */
-} Elf64_Verdaux;
-
-
-/* Version dependency section. */
-
-typedef struct
-{
- Elf32_Half vn_version; /* Version of structure */
- Elf32_Half vn_cnt; /* Number of associated aux entries */
- Elf32_Word vn_file; /* Offset of filename for this
- dependency */
- Elf32_Word vn_aux; /* Offset in bytes to vernaux array */
- Elf32_Word vn_next; /* Offset in bytes to next verneed
- entry */
-} Elf32_Verneed;
-
-typedef struct
-{
- Elf64_Half vn_version; /* Version of structure */
- Elf64_Half vn_cnt; /* Number of associated aux entries */
- Elf64_Word vn_file; /* Offset of filename for this
- dependency */
- Elf64_Word vn_aux; /* Offset in bytes to vernaux array */
- Elf64_Word vn_next; /* Offset in bytes to next verneed
- entry */
-} Elf64_Verneed;
-
-
-/* Legal values for vn_version (version revision). */
-#define VER_NEED_NONE 0 /* No version */
-#define VER_NEED_CURRENT 1 /* Current version */
-#define VER_NEED_NUM 2 /* Given version number */
-
-/* Auxiliary needed version information. */
-
-typedef struct
-{
- Elf32_Word vna_hash; /* Hash value of dependency name */
- Elf32_Half vna_flags; /* Dependency specific information */
- Elf32_Half vna_other; /* Unused */
- Elf32_Word vna_name; /* Dependency name string offset */
- Elf32_Word vna_next; /* Offset in bytes to next vernaux
- entry */
-} Elf32_Vernaux;
-
-typedef struct
-{
- Elf64_Word vna_hash; /* Hash value of dependency name */
- Elf64_Half vna_flags; /* Dependency specific information */
- Elf64_Half vna_other; /* Unused */
- Elf64_Word vna_name; /* Dependency name string offset */
- Elf64_Word vna_next; /* Offset in bytes to next vernaux
- entry */
-} Elf64_Vernaux;
-
-
-/* Legal values for vna_flags. */
-#define VER_FLG_WEAK 0x2 /* Weak version identifier */
-
-
-/* Auxiliary vector. */
-
-/* This vector is normally only used by the program interpreter. The
- usual definition in an ABI supplement uses the name auxv_t. The
- vector is not usually defined in a standard <elf.h> file, but it
- can't hurt. We rename it to avoid conflicts. The sizes of these
- types are an arrangement between the exec server and the program
- interpreter, so we don't fully specify them here. */
-
-typedef struct
-{
- int a_type; /* Entry type */
- union
- {
- long int a_val; /* Integer value */
- void *a_ptr; /* Pointer value */
- void (*a_fcn) (void); /* Function pointer value */
- } a_un;
-} Elf32_auxv_t;
-
-typedef struct
-{
- long int a_type; /* Entry type */
- union
- {
- long int a_val; /* Integer value */
- void *a_ptr; /* Pointer value */
- void (*a_fcn) (void); /* Function pointer value */
- } a_un;
-} Elf64_auxv_t;
-
-/* Legal values for a_type (entry type). */
-
-#define AT_NULL 0 /* End of vector */
-#define AT_IGNORE 1 /* Entry should be ignored */
-#define AT_EXECFD 2 /* File descriptor of program */
-#define AT_PHDR 3 /* Program headers for program */
-#define AT_PHENT 4 /* Size of program header entry */
-#define AT_PHNUM 5 /* Number of program headers */
-#define AT_PAGESZ 6 /* System page size */
-#define AT_BASE 7 /* Base address of interpreter */
-#define AT_FLAGS 8 /* Flags */
-#define AT_ENTRY 9 /* Entry point of program */
-#define AT_NOTELF 10 /* Program is not ELF */
-#define AT_UID 11 /* Real uid */
-#define AT_EUID 12 /* Effective uid */
-#define AT_GID 13 /* Real gid */
-#define AT_EGID 14 /* Effective gid */
-#define AT_CLKTCK 17 /* Frequency of times() */
-
-/* Some more special a_type values describing the hardware. */
-#define AT_PLATFORM 15 /* String identifying platform. */
-#define AT_HWCAP 16 /* Machine dependent hints about
- processor capabilities. */
-
-/* This entry gives some information about the FPU initialization
- performed by the kernel. */
-#define AT_FPUCW 18 /* Used FPU control word. */
-
-/* Cache block sizes. */
-#define AT_DCACHEBSIZE 19 /* Data cache block size. */
-#define AT_ICACHEBSIZE 20 /* Instruction cache block size. */
-#define AT_UCACHEBSIZE 21 /* Unified cache block size. */
-
-/* A special ignored value for PPC, used by the kernel to control the
- interpretation of the AUXV. Must be > 16. */
-#define AT_IGNOREPPC 22 /* Entry should be ignored. */
-
-#define AT_SECURE 23 /* Boolean, was exec setuid-like? */
-
-/* Pointer to the global system page used for system calls and other
- nice things. */
-#define AT_SYSINFO 32
-#define AT_SYSINFO_EHDR 33
-
-
-/* Note section contents. Each entry in the note section begins with
- a header of a fixed form. */
-
-typedef struct
-{
- Elf32_Word n_namesz; /* Length of the note's name. */
- Elf32_Word n_descsz; /* Length of the note's descriptor. */
- Elf32_Word n_type; /* Type of the note. */
-} Elf32_Nhdr;
-
-typedef struct
-{
- Elf64_Word n_namesz; /* Length of the note's name. */
- Elf64_Word n_descsz; /* Length of the note's descriptor. */
- Elf64_Word n_type; /* Type of the note. */
-} Elf64_Nhdr;
-
-/* Known names of notes. */
-
-/* Solaris entries in the note section have this name. */
-#define ELF_NOTE_SOLARIS "SUNW Solaris"
-
-/* Note entries for GNU systems have this name. */
-#define ELF_NOTE_GNU "GNU"
-
-
-/* Defined types of notes for Solaris. */
-
-/* Value of descriptor (one word) is desired pagesize for the binary. */
-#define ELF_NOTE_PAGESIZE_HINT 1
-
-
-/* Defined note types for GNU systems. */
-
-/* ABI information. The descriptor consists of words:
- word 0: OS descriptor
- word 1: major version of the ABI
- word 2: minor version of the ABI
- word 3: subminor version of the ABI
-*/
-#define ELF_NOTE_ABI 1
-
-/* Known OSes. These value can appear in word 0 of an ELF_NOTE_ABI
- note section entry. */
-#define ELF_NOTE_OS_LINUX 0
-#define ELF_NOTE_OS_GNU 1
-#define ELF_NOTE_OS_SOLARIS2 2
-#define ELF_NOTE_OS_FREEBSD 3
-
-
-/* Move records. */
-typedef struct
-{
- Elf32_Xword m_value; /* Symbol value. */
- Elf32_Word m_info; /* Size and index. */
- Elf32_Word m_poffset; /* Symbol offset. */
- Elf32_Half m_repeat; /* Repeat count. */
- Elf32_Half m_stride; /* Stride info. */
-} Elf32_Move;
-
-typedef struct
-{
- Elf64_Xword m_value; /* Symbol value. */
- Elf64_Xword m_info; /* Size and index. */
- Elf64_Xword m_poffset; /* Symbol offset. */
- Elf64_Half m_repeat; /* Repeat count. */
- Elf64_Half m_stride; /* Stride info. */
-} Elf64_Move;
-
-/* Macro to construct move records. */
-#define ELF32_M_SYM(info) ((info) >> 8)
-#define ELF32_M_SIZE(info) ((unsigned char) (info))
-#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size))
-
-#define ELF64_M_SYM(info) ELF32_M_SYM (info)
-#define ELF64_M_SIZE(info) ELF32_M_SIZE (info)
-#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)
-
-
-/* Motorola 68k specific definitions. */
-
-/* Values for Elf32_Ehdr.e_flags. */
-#define EF_CPU32 0x00810000
-
-/* m68k relocs. */
-
-#define R_68K_NONE 0 /* No reloc */
-#define R_68K_32 1 /* Direct 32 bit */
-#define R_68K_16 2 /* Direct 16 bit */
-#define R_68K_8 3 /* Direct 8 bit */
-#define R_68K_PC32 4 /* PC relative 32 bit */
-#define R_68K_PC16 5 /* PC relative 16 bit */
-#define R_68K_PC8 6 /* PC relative 8 bit */
-#define R_68K_GOT32 7 /* 32 bit PC relative GOT entry */
-#define R_68K_GOT16 8 /* 16 bit PC relative GOT entry */
-#define R_68K_GOT8 9 /* 8 bit PC relative GOT entry */
-#define R_68K_GOT32O 10 /* 32 bit GOT offset */
-#define R_68K_GOT16O 11 /* 16 bit GOT offset */
-#define R_68K_GOT8O 12 /* 8 bit GOT offset */
-#define R_68K_PLT32 13 /* 32 bit PC relative PLT address */
-#define R_68K_PLT16 14 /* 16 bit PC relative PLT address */
-#define R_68K_PLT8 15 /* 8 bit PC relative PLT address */
-#define R_68K_PLT32O 16 /* 32 bit PLT offset */
-#define R_68K_PLT16O 17 /* 16 bit PLT offset */
-#define R_68K_PLT8O 18 /* 8 bit PLT offset */
-#define R_68K_COPY 19 /* Copy symbol at runtime */
-#define R_68K_GLOB_DAT 20 /* Create GOT entry */
-#define R_68K_JMP_SLOT 21 /* Create PLT entry */
-#define R_68K_RELATIVE 22 /* Adjust by program base */
-/* Keep this the last entry. */
-#define R_68K_NUM 23
-
-/* Intel 80386 specific definitions. */
-
-/* i386 relocs. */
-
-#define R_386_NONE 0 /* No reloc */
-#define R_386_32 1 /* Direct 32 bit */
-#define R_386_PC32 2 /* PC relative 32 bit */
-#define R_386_GOT32 3 /* 32 bit GOT entry */
-#define R_386_PLT32 4 /* 32 bit PLT address */
-#define R_386_COPY 5 /* Copy symbol at runtime */
-#define R_386_GLOB_DAT 6 /* Create GOT entry */
-#define R_386_JMP_SLOT 7 /* Create PLT entry */
-#define R_386_RELATIVE 8 /* Adjust by program base */
-#define R_386_GOTOFF 9 /* 32 bit offset to GOT */
-#define R_386_GOTPC 10 /* 32 bit PC relative offset to GOT */
-#define R_386_32PLT 11
-#define R_386_TLS_TPOFF 14 /* Offset in static TLS block */
-#define R_386_TLS_IE 15 /* Address of GOT entry for static TLS
- block offset */
-#define R_386_TLS_GOTIE 16 /* GOT entry for static TLS block
- offset */
-#define R_386_TLS_LE 17 /* Offset relative to static TLS
- block */
-#define R_386_TLS_GD 18 /* Direct 32 bit for GNU version of
- general dynamic thread local data */
-#define R_386_TLS_LDM 19 /* Direct 32 bit for GNU version of
- local dynamic thread local data
- in LE code */
-#define R_386_16 20
-#define R_386_PC16 21
-#define R_386_8 22
-#define R_386_PC8 23
-#define R_386_TLS_GD_32 24 /* Direct 32 bit for general dynamic
- thread local data */
-#define R_386_TLS_GD_PUSH 25 /* Tag for pushl in GD TLS code */
-#define R_386_TLS_GD_CALL 26 /* Relocation for call to
- __tls_get_addr() */
-#define R_386_TLS_GD_POP 27 /* Tag for popl in GD TLS code */
-#define R_386_TLS_LDM_32 28 /* Direct 32 bit for local dynamic
- thread local data in LE code */
-#define R_386_TLS_LDM_PUSH 29 /* Tag for pushl in LDM TLS code */
-#define R_386_TLS_LDM_CALL 30 /* Relocation for call to
- __tls_get_addr() in LDM code */
-#define R_386_TLS_LDM_POP 31 /* Tag for popl in LDM TLS code */
-#define R_386_TLS_LDO_32 32 /* Offset relative to TLS block */
-#define R_386_TLS_IE_32 33 /* GOT entry for negated static TLS
- block offset */
-#define R_386_TLS_LE_32 34 /* Negated offset relative to static
- TLS block */
-#define R_386_TLS_DTPMOD32 35 /* ID of module containing symbol */
-#define R_386_TLS_DTPOFF32 36 /* Offset in TLS block */
-#define R_386_TLS_TPOFF32 37 /* Negated offset in static TLS block */
-/* Keep this the last entry. */
-#define R_386_NUM 38
-
-/* SUN SPARC specific definitions. */
-
-/* Legal values for ST_TYPE subfield of st_info (symbol type). */
-
-#define STT_SPARC_REGISTER 13 /* Global register reserved to app. */
-
-/* Values for Elf64_Ehdr.e_flags. */
-
-#define EF_SPARCV9_MM 3
-#define EF_SPARCV9_TSO 0
-#define EF_SPARCV9_PSO 1
-#define EF_SPARCV9_RMO 2
-#define EF_SPARC_LEDATA 0x800000 /* little endian data */
-#define EF_SPARC_EXT_MASK 0xFFFF00
-#define EF_SPARC_32PLUS 0x000100 /* generic V8+ features */
-#define EF_SPARC_SUN_US1 0x000200 /* Sun UltraSPARC1 extensions */
-#define EF_SPARC_HAL_R1 0x000400 /* HAL R1 extensions */
-#define EF_SPARC_SUN_US3 0x000800 /* Sun UltraSPARCIII extensions */
-
-/* SPARC relocs. */
-
-#define R_SPARC_NONE 0 /* No reloc */
-#define R_SPARC_8 1 /* Direct 8 bit */
-#define R_SPARC_16 2 /* Direct 16 bit */
-#define R_SPARC_32 3 /* Direct 32 bit */
-#define R_SPARC_DISP8 4 /* PC relative 8 bit */
-#define R_SPARC_DISP16 5 /* PC relative 16 bit */
-#define R_SPARC_DISP32 6 /* PC relative 32 bit */
-#define R_SPARC_WDISP30 7 /* PC relative 30 bit shifted */
-#define R_SPARC_WDISP22 8 /* PC relative 22 bit shifted */
-#define R_SPARC_HI22 9 /* High 22 bit */
-#define R_SPARC_22 10 /* Direct 22 bit */
-#define R_SPARC_13 11 /* Direct 13 bit */
-#define R_SPARC_LO10 12 /* Truncated 10 bit */
-#define R_SPARC_GOT10 13 /* Truncated 10 bit GOT entry */
-#define R_SPARC_GOT13 14 /* 13 bit GOT entry */
-#define R_SPARC_GOT22 15 /* 22 bit GOT entry shifted */
-#define R_SPARC_PC10 16 /* PC relative 10 bit truncated */
-#define R_SPARC_PC22 17 /* PC relative 22 bit shifted */
-#define R_SPARC_WPLT30 18 /* 30 bit PC relative PLT address */
-#define R_SPARC_COPY 19 /* Copy symbol at runtime */
-#define R_SPARC_GLOB_DAT 20 /* Create GOT entry */
-#define R_SPARC_JMP_SLOT 21 /* Create PLT entry */
-#define R_SPARC_RELATIVE 22 /* Adjust by program base */
-#define R_SPARC_UA32 23 /* Direct 32 bit unaligned */
-
-/* Additional Sparc64 relocs. */
-
-#define R_SPARC_PLT32 24 /* Direct 32 bit ref to PLT entry */
-#define R_SPARC_HIPLT22 25 /* High 22 bit PLT entry */
-#define R_SPARC_LOPLT10 26 /* Truncated 10 bit PLT entry */
-#define R_SPARC_PCPLT32 27 /* PC rel 32 bit ref to PLT entry */
-#define R_SPARC_PCPLT22 28 /* PC rel high 22 bit PLT entry */
-#define R_SPARC_PCPLT10 29 /* PC rel trunc 10 bit PLT entry */
-#define R_SPARC_10 30 /* Direct 10 bit */
-#define R_SPARC_11 31 /* Direct 11 bit */
-#define R_SPARC_64 32 /* Direct 64 bit */
-#define R_SPARC_OLO10 33 /* 10bit with secondary 13bit addend */
-#define R_SPARC_HH22 34 /* Top 22 bits of direct 64 bit */
-#define R_SPARC_HM10 35 /* High middle 10 bits of ... */
-#define R_SPARC_LM22 36 /* Low middle 22 bits of ... */
-#define R_SPARC_PC_HH22 37 /* Top 22 bits of pc rel 64 bit */
-#define R_SPARC_PC_HM10 38 /* High middle 10 bit of ... */
-#define R_SPARC_PC_LM22 39 /* Low miggle 22 bits of ... */
-#define R_SPARC_WDISP16 40 /* PC relative 16 bit shifted */
-#define R_SPARC_WDISP19 41 /* PC relative 19 bit shifted */
-#define R_SPARC_7 43 /* Direct 7 bit */
-#define R_SPARC_5 44 /* Direct 5 bit */
-#define R_SPARC_6 45 /* Direct 6 bit */
-#define R_SPARC_DISP64 46 /* PC relative 64 bit */
-#define R_SPARC_PLT64 47 /* Direct 64 bit ref to PLT entry */
-#define R_SPARC_HIX22 48 /* High 22 bit complemented */
-#define R_SPARC_LOX10 49 /* Truncated 11 bit complemented */
-#define R_SPARC_H44 50 /* Direct high 12 of 44 bit */
-#define R_SPARC_M44 51 /* Direct mid 22 of 44 bit */
-#define R_SPARC_L44 52 /* Direct low 10 of 44 bit */
-#define R_SPARC_REGISTER 53 /* Global register usage */
-#define R_SPARC_UA64 54 /* Direct 64 bit unaligned */
-#define R_SPARC_UA16 55 /* Direct 16 bit unaligned */
-#define R_SPARC_TLS_GD_HI22 56
-#define R_SPARC_TLS_GD_LO10 57
-#define R_SPARC_TLS_GD_ADD 58
-#define R_SPARC_TLS_GD_CALL 59
-#define R_SPARC_TLS_LDM_HI22 60
-#define R_SPARC_TLS_LDM_LO10 61
-#define R_SPARC_TLS_LDM_ADD 62
-#define R_SPARC_TLS_LDM_CALL 63
-#define R_SPARC_TLS_LDO_HIX22 64
-#define R_SPARC_TLS_LDO_LOX10 65
-#define R_SPARC_TLS_LDO_ADD 66
-#define R_SPARC_TLS_IE_HI22 67
-#define R_SPARC_TLS_IE_LO10 68
-#define R_SPARC_TLS_IE_LD 69
-#define R_SPARC_TLS_IE_LDX 70
-#define R_SPARC_TLS_IE_ADD 71
-#define R_SPARC_TLS_LE_HIX22 72
-#define R_SPARC_TLS_LE_LOX10 73
-#define R_SPARC_TLS_DTPMOD32 74
-#define R_SPARC_TLS_DTPMOD64 75
-#define R_SPARC_TLS_DTPOFF32 76
-#define R_SPARC_TLS_DTPOFF64 77
-#define R_SPARC_TLS_TPOFF32 78
-#define R_SPARC_TLS_TPOFF64 79
-/* Keep this the last entry. */
-#define R_SPARC_NUM 80
-
-/* For Sparc64, legal values for d_tag of Elf64_Dyn. */
-
-#define DT_SPARC_REGISTER 0x70000001
-#define DT_SPARC_NUM 2
-
-/* Bits present in AT_HWCAP, primarily for Sparc32. */
-
-#define HWCAP_SPARC_FLUSH 1 /* The cpu supports flush insn. */
-#define HWCAP_SPARC_STBAR 2
-#define HWCAP_SPARC_SWAP 4
-#define HWCAP_SPARC_MULDIV 8
-#define HWCAP_SPARC_V9 16 /* The cpu is v9, so v8plus is ok. */
-#define HWCAP_SPARC_ULTRA3 32
-
-/* MIPS R3000 specific definitions. */
-
-/* Legal values for e_flags field of Elf32_Ehdr. */
-
-#define EF_MIPS_NOREORDER 1 /* A .noreorder directive was used */
-#define EF_MIPS_PIC 2 /* Contains PIC code */
-#define EF_MIPS_CPIC 4 /* Uses PIC calling sequence */
-#define EF_MIPS_XGOT 8
-#define EF_MIPS_64BIT_WHIRL 16
-#define EF_MIPS_ABI2 32
-#define EF_MIPS_ABI_ON32 64
-#define EF_MIPS_ARCH 0xf0000000 /* MIPS architecture level */
-
-/* Legal values for MIPS architecture level. */
-
-#define EF_MIPS_ARCH_1 0x00000000 /* -mips1 code. */
-#define EF_MIPS_ARCH_2 0x10000000 /* -mips2 code. */
-#define EF_MIPS_ARCH_3 0x20000000 /* -mips3 code. */
-#define EF_MIPS_ARCH_4 0x30000000 /* -mips4 code. */
-#define EF_MIPS_ARCH_5 0x40000000 /* -mips5 code. */
-#define EF_MIPS_ARCH_32 0x60000000 /* MIPS32 code. */
-#define EF_MIPS_ARCH_64 0x70000000 /* MIPS64 code. */
-
-/* The following are non-official names and should not be used. */
-
-#define E_MIPS_ARCH_1 0x00000000 /* -mips1 code. */
-#define E_MIPS_ARCH_2 0x10000000 /* -mips2 code. */
-#define E_MIPS_ARCH_3 0x20000000 /* -mips3 code. */
-#define E_MIPS_ARCH_4 0x30000000 /* -mips4 code. */
-#define E_MIPS_ARCH_5 0x40000000 /* -mips5 code. */
-#define E_MIPS_ARCH_32 0x60000000 /* MIPS32 code. */
-#define E_MIPS_ARCH_64 0x70000000 /* MIPS64 code. */
-
-/* Special section indices. */
-
-#define SHN_MIPS_ACOMMON 0xff00 /* Allocated common symbols */
-#define SHN_MIPS_TEXT 0xff01 /* Allocated test symbols. */
-#define SHN_MIPS_DATA 0xff02 /* Allocated data symbols. */
-#define SHN_MIPS_SCOMMON 0xff03 /* Small common symbols */
-#define SHN_MIPS_SUNDEFINED 0xff04 /* Small undefined symbols */
-
-/* Legal values for sh_type field of Elf32_Shdr. */
-
-#define SHT_MIPS_LIBLIST 0x70000000 /* Shared objects used in link */
-#define SHT_MIPS_MSYM 0x70000001
-#define SHT_MIPS_CONFLICT 0x70000002 /* Conflicting symbols */
-#define SHT_MIPS_GPTAB 0x70000003 /* Global data area sizes */
-#define SHT_MIPS_UCODE 0x70000004 /* Reserved for SGI/MIPS compilers */
-#define SHT_MIPS_DEBUG 0x70000005 /* MIPS ECOFF debugging information*/
-#define SHT_MIPS_REGINFO 0x70000006 /* Register usage information */
-#define SHT_MIPS_PACKAGE 0x70000007
-#define SHT_MIPS_PACKSYM 0x70000008
-#define SHT_MIPS_RELD 0x70000009
-#define SHT_MIPS_IFACE 0x7000000b
-#define SHT_MIPS_CONTENT 0x7000000c
-#define SHT_MIPS_OPTIONS 0x7000000d /* Miscellaneous options. */
-#define SHT_MIPS_SHDR 0x70000010
-#define SHT_MIPS_FDESC 0x70000011
-#define SHT_MIPS_EXTSYM 0x70000012
-#define SHT_MIPS_DENSE 0x70000013
-#define SHT_MIPS_PDESC 0x70000014
-#define SHT_MIPS_LOCSYM 0x70000015
-#define SHT_MIPS_AUXSYM 0x70000016
-#define SHT_MIPS_OPTSYM 0x70000017
-#define SHT_MIPS_LOCSTR 0x70000018
-#define SHT_MIPS_LINE 0x70000019
-#define SHT_MIPS_RFDESC 0x7000001a
-#define SHT_MIPS_DELTASYM 0x7000001b
-#define SHT_MIPS_DELTAINST 0x7000001c
-#define SHT_MIPS_DELTACLASS 0x7000001d
-#define SHT_MIPS_DWARF 0x7000001e /* DWARF debugging information. */
-#define SHT_MIPS_DELTADECL 0x7000001f
-#define SHT_MIPS_SYMBOL_LIB 0x70000020
-#define SHT_MIPS_EVENTS 0x70000021 /* Event section. */
-#define SHT_MIPS_TRANSLATE 0x70000022
-#define SHT_MIPS_PIXIE 0x70000023
-#define SHT_MIPS_XLATE 0x70000024
-#define SHT_MIPS_XLATE_DEBUG 0x70000025
-#define SHT_MIPS_WHIRL 0x70000026
-#define SHT_MIPS_EH_REGION 0x70000027
-#define SHT_MIPS_XLATE_OLD 0x70000028
-#define SHT_MIPS_PDR_EXCEPTION 0x70000029
-
-/* Legal values for sh_flags field of Elf32_Shdr. */
-
-#define SHF_MIPS_GPREL 0x10000000 /* Must be part of global data area */
-#define SHF_MIPS_MERGE 0x20000000
-#define SHF_MIPS_ADDR 0x40000000
-#define SHF_MIPS_STRINGS 0x80000000
-#define SHF_MIPS_NOSTRIP 0x08000000
-#define SHF_MIPS_LOCAL 0x04000000
-#define SHF_MIPS_NAMES 0x02000000
-#define SHF_MIPS_NODUPE 0x01000000
-
-
-/* Symbol tables. */
-
-/* MIPS specific values for `st_other'. */
-#define STO_MIPS_DEFAULT 0x0
-#define STO_MIPS_INTERNAL 0x1
-#define STO_MIPS_HIDDEN 0x2
-#define STO_MIPS_PROTECTED 0x3
-#define STO_MIPS_SC_ALIGN_UNUSED 0xff
-
-/* MIPS specific values for `st_info'. */
-#define STB_MIPS_SPLIT_COMMON 13
-
-/* Entries found in sections of type SHT_MIPS_GPTAB. */
-
-typedef union
-{
- struct
- {
- Elf32_Word gt_current_g_value; /* -G value used for compilation */
- Elf32_Word gt_unused; /* Not used */
- } gt_header; /* First entry in section */
- struct
- {
- Elf32_Word gt_g_value; /* If this value were used for -G */
- Elf32_Word gt_bytes; /* This many bytes would be used */
- } gt_entry; /* Subsequent entries in section */
-} Elf32_gptab;
-
-/* Entry found in sections of type SHT_MIPS_REGINFO. */
-
-typedef struct
-{
- Elf32_Word ri_gprmask; /* General registers used */
- Elf32_Word ri_cprmask[4]; /* Coprocessor registers used */
- Elf32_Sword ri_gp_value; /* $gp register value */
-} Elf32_RegInfo;
-
-/* Entries found in sections of type SHT_MIPS_OPTIONS. */
-
-typedef struct
-{
- unsigned char kind; /* Determines interpretation of the
- variable part of descriptor. */
- unsigned char size; /* Size of descriptor, including header. */
- Elf32_Section section; /* Section header index of section affected,
- 0 for global options. */
- Elf32_Word info; /* Kind-specific information. */
-} Elf_Options;
-
-/* Values for `kind' field in Elf_Options. */
-
-#define ODK_NULL 0 /* Undefined. */
-#define ODK_REGINFO 1 /* Register usage information. */
-#define ODK_EXCEPTIONS 2 /* Exception processing options. */
-#define ODK_PAD 3 /* Section padding options. */
-#define ODK_HWPATCH 4 /* Hardware workarounds performed */
-#define ODK_FILL 5 /* record the fill value used by the linker. */
-#define ODK_TAGS 6 /* reserve space for desktop tools to write. */
-#define ODK_HWAND 7 /* HW workarounds. 'AND' bits when merging. */
-#define ODK_HWOR 8 /* HW workarounds. 'OR' bits when merging. */
-
-/* Values for `info' in Elf_Options for ODK_EXCEPTIONS entries. */
-
-#define OEX_FPU_MIN 0x1f /* FPE's which MUST be enabled. */
-#define OEX_FPU_MAX 0x1f00 /* FPE's which MAY be enabled. */
-#define OEX_PAGE0 0x10000 /* page zero must be mapped. */
-#define OEX_SMM 0x20000 /* Force sequential memory mode? */
-#define OEX_FPDBUG 0x40000 /* Force floating point debug mode? */
-#define OEX_PRECISEFP OEX_FPDBUG
-#define OEX_DISMISS 0x80000 /* Dismiss invalid address faults? */
-
-#define OEX_FPU_INVAL 0x10
-#define OEX_FPU_DIV0 0x08
-#define OEX_FPU_OFLO 0x04
-#define OEX_FPU_UFLO 0x02
-#define OEX_FPU_INEX 0x01
-
-/* Masks for `info' in Elf_Options for an ODK_HWPATCH entry. */
-
-#define OHW_R4KEOP 0x1 /* R4000 end-of-page patch. */
-#define OHW_R8KPFETCH 0x2 /* may need R8000 prefetch patch. */
-#define OHW_R5KEOP 0x4 /* R5000 end-of-page patch. */
-#define OHW_R5KCVTL 0x8 /* R5000 cvt.[ds].l bug. clean=1. */
-
-#define OPAD_PREFIX 0x1
-#define OPAD_POSTFIX 0x2
-#define OPAD_SYMBOL 0x4
-
-/* Entry found in `.options' section. */
-
-typedef struct
-{
- Elf32_Word hwp_flags1; /* Extra flags. */
- Elf32_Word hwp_flags2; /* Extra flags. */
-} Elf_Options_Hw;
-
-/* Masks for `info' in ElfOptions for ODK_HWAND and ODK_HWOR entries. */
-
-#define OHWA0_R4KEOP_CHECKED 0x00000001
-#define OHWA1_R4KEOP_CLEAN 0x00000002
-
-/* MIPS relocs. */
-
-#define R_MIPS_NONE 0 /* No reloc */
-#define R_MIPS_16 1 /* Direct 16 bit */
-#define R_MIPS_32 2 /* Direct 32 bit */
-#define R_MIPS_REL32 3 /* PC relative 32 bit */
-#define R_MIPS_26 4 /* Direct 26 bit shifted */
-#define R_MIPS_HI16 5 /* High 16 bit */
-#define R_MIPS_LO16 6 /* Low 16 bit */
-#define R_MIPS_GPREL16 7 /* GP relative 16 bit */
-#define R_MIPS_LITERAL 8 /* 16 bit literal entry */
-#define R_MIPS_GOT16 9 /* 16 bit GOT entry */
-#define R_MIPS_PC16 10 /* PC relative 16 bit */
-#define R_MIPS_CALL16 11 /* 16 bit GOT entry for function */
-#define R_MIPS_GPREL32 12 /* GP relative 32 bit */
-
-#define R_MIPS_SHIFT5 16
-#define R_MIPS_SHIFT6 17
-#define R_MIPS_64 18
-#define R_MIPS_GOT_DISP 19
-#define R_MIPS_GOT_PAGE 20
-#define R_MIPS_GOT_OFST 21
-#define R_MIPS_GOT_HI16 22
-#define R_MIPS_GOT_LO16 23
-#define R_MIPS_SUB 24
-#define R_MIPS_INSERT_A 25
-#define R_MIPS_INSERT_B 26
-#define R_MIPS_DELETE 27
-#define R_MIPS_HIGHER 28
-#define R_MIPS_HIGHEST 29
-#define R_MIPS_CALL_HI16 30
-#define R_MIPS_CALL_LO16 31
-#define R_MIPS_SCN_DISP 32
-#define R_MIPS_REL16 33
-#define R_MIPS_ADD_IMMEDIATE 34
-#define R_MIPS_PJUMP 35
-#define R_MIPS_RELGOT 36
-#define R_MIPS_JALR 37
-/* Keep this the last entry. */
-#define R_MIPS_NUM 38
-
-/* Legal values for p_type field of Elf32_Phdr. */
-
-#define PT_MIPS_REGINFO 0x70000000 /* Register usage information */
-#define PT_MIPS_RTPROC 0x70000001 /* Runtime procedure table. */
-#define PT_MIPS_OPTIONS 0x70000002
-
-/* Special program header types. */
-
-#define PF_MIPS_LOCAL 0x10000000
-
-/* Legal values for d_tag field of Elf32_Dyn. */
-
-#define DT_MIPS_RLD_VERSION 0x70000001 /* Runtime linker interface version */
-#define DT_MIPS_TIME_STAMP 0x70000002 /* Timestamp */
-#define DT_MIPS_ICHECKSUM 0x70000003 /* Checksum */
-#define DT_MIPS_IVERSION 0x70000004 /* Version string (string tbl index) */
-#define DT_MIPS_FLAGS 0x70000005 /* Flags */
-#define DT_MIPS_BASE_ADDRESS 0x70000006 /* Base address */
-#define DT_MIPS_MSYM 0x70000007
-#define DT_MIPS_CONFLICT 0x70000008 /* Address of CONFLICT section */
-#define DT_MIPS_LIBLIST 0x70000009 /* Address of LIBLIST section */
-#define DT_MIPS_LOCAL_GOTNO 0x7000000a /* Number of local GOT entries */
-#define DT_MIPS_CONFLICTNO 0x7000000b /* Number of CONFLICT entries */
-#define DT_MIPS_LIBLISTNO 0x70000010 /* Number of LIBLIST entries */
-#define DT_MIPS_SYMTABNO 0x70000011 /* Number of DYNSYM entries */
-#define DT_MIPS_UNREFEXTNO 0x70000012 /* First external DYNSYM */
-#define DT_MIPS_GOTSYM 0x70000013 /* First GOT entry in DYNSYM */
-#define DT_MIPS_HIPAGENO 0x70000014 /* Number of GOT page table entries */
-#define DT_MIPS_RLD_MAP 0x70000016 /* Address of run time loader map. */
-#define DT_MIPS_DELTA_CLASS 0x70000017 /* Delta C++ class definition. */
-#define DT_MIPS_DELTA_CLASS_NO 0x70000018 /* Number of entries in
- DT_MIPS_DELTA_CLASS. */
-#define DT_MIPS_DELTA_INSTANCE 0x70000019 /* Delta C++ class instances. */
-#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a /* Number of entries in
- DT_MIPS_DELTA_INSTANCE. */
-#define DT_MIPS_DELTA_RELOC 0x7000001b /* Delta relocations. */
-#define DT_MIPS_DELTA_RELOC_NO 0x7000001c /* Number of entries in
- DT_MIPS_DELTA_RELOC. */
-#define DT_MIPS_DELTA_SYM 0x7000001d /* Delta symbols that Delta
- relocations refer to. */
-#define DT_MIPS_DELTA_SYM_NO 0x7000001e /* Number of entries in
- DT_MIPS_DELTA_SYM. */
-#define DT_MIPS_DELTA_CLASSSYM 0x70000020 /* Delta symbols that hold the
- class declaration. */
-#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 /* Number of entries in
- DT_MIPS_DELTA_CLASSSYM. */
-#define DT_MIPS_CXX_FLAGS 0x70000022 /* Flags indicating for C++ flavor. */
-#define DT_MIPS_PIXIE_INIT 0x70000023
-#define DT_MIPS_SYMBOL_LIB 0x70000024
-#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
-#define DT_MIPS_LOCAL_GOTIDX 0x70000026
-#define DT_MIPS_HIDDEN_GOTIDX 0x70000027
-#define DT_MIPS_PROTECTED_GOTIDX 0x70000028
-#define DT_MIPS_OPTIONS 0x70000029 /* Address of .options. */
-#define DT_MIPS_INTERFACE 0x7000002a /* Address of .interface. */
-#define DT_MIPS_DYNSTR_ALIGN 0x7000002b
-#define DT_MIPS_INTERFACE_SIZE 0x7000002c /* Size of the .interface section. */
-#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d /* Address of rld_text_rsolve
- function stored in GOT. */
-#define DT_MIPS_PERF_SUFFIX 0x7000002e /* Default suffix of dso to be added
- by rld on dlopen() calls. */
-#define DT_MIPS_COMPACT_SIZE 0x7000002f /* (O32)Size of compact rel section. */
-#define DT_MIPS_GP_VALUE 0x70000030 /* GP value for aux GOTs. */
-#define DT_MIPS_AUX_DYNAMIC 0x70000031 /* Address of aux .dynamic. */
-#define DT_MIPS_NUM 0x32
-
-/* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry. */
-
-#define RHF_NONE 0 /* No flags */
-#define RHF_QUICKSTART (1 << 0) /* Use quickstart */
-#define RHF_NOTPOT (1 << 1) /* Hash size not power of 2 */
-#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) /* Ignore LD_LIBRARY_PATH */
-#define RHF_NO_MOVE (1 << 3)
-#define RHF_SGI_ONLY (1 << 4)
-#define RHF_GUARANTEE_INIT (1 << 5)
-#define RHF_DELTA_C_PLUS_PLUS (1 << 6)
-#define RHF_GUARANTEE_START_INIT (1 << 7)
-#define RHF_PIXIE (1 << 8)
-#define RHF_DEFAULT_DELAY_LOAD (1 << 9)
-#define RHF_REQUICKSTART (1 << 10)
-#define RHF_REQUICKSTARTED (1 << 11)
-#define RHF_CORD (1 << 12)
-#define RHF_NO_UNRES_UNDEF (1 << 13)
-#define RHF_RLD_ORDER_SAFE (1 << 14)
-
-/* Entries found in sections of type SHT_MIPS_LIBLIST. */
-
-typedef struct
-{
- Elf32_Word l_name; /* Name (string table index) */
- Elf32_Word l_time_stamp; /* Timestamp */
- Elf32_Word l_checksum; /* Checksum */
- Elf32_Word l_version; /* Interface version */
- Elf32_Word l_flags; /* Flags */
-} Elf32_Lib;
-
-typedef struct
-{
- Elf64_Word l_name; /* Name (string table index) */
- Elf64_Word l_time_stamp; /* Timestamp */
- Elf64_Word l_checksum; /* Checksum */
- Elf64_Word l_version; /* Interface version */
- Elf64_Word l_flags; /* Flags */
-} Elf64_Lib;
-
-
-/* Legal values for l_flags. */
-
-#define LL_NONE 0
-#define LL_EXACT_MATCH (1 << 0) /* Require exact match */
-#define LL_IGNORE_INT_VER (1 << 1) /* Ignore interface version */
-#define LL_REQUIRE_MINOR (1 << 2)
-#define LL_EXPORTS (1 << 3)
-#define LL_DELAY_LOAD (1 << 4)
-#define LL_DELTA (1 << 5)
-
-/* Entries found in sections of type SHT_MIPS_CONFLICT. */
-
-typedef Elf32_Addr Elf32_Conflict;
-
-
-/* HPPA specific definitions. */
-
-/* Legal values for e_flags field of Elf32_Ehdr. */
-
-#define EF_PARISC_TRAPNIL 0x00010000 /* Trap nil pointer dereference. */
-#define EF_PARISC_EXT 0x00020000 /* Program uses arch. extensions. */
-#define EF_PARISC_LSB 0x00040000 /* Program expects little endian. */
-#define EF_PARISC_WIDE 0x00080000 /* Program expects wide mode. */
-#define EF_PARISC_NO_KABP 0x00100000 /* No kernel assisted branch
- prediction. */
-#define EF_PARISC_LAZYSWAP 0x00400000 /* Allow lazy swapping. */
-#define EF_PARISC_ARCH 0x0000ffff /* Architecture version. */
-
-/* Defined values for `e_flags & EF_PARISC_ARCH' are: */
-
-#define EFA_PARISC_1_0 0x020b /* PA-RISC 1.0 big-endian. */
-#define EFA_PARISC_1_1 0x0210 /* PA-RISC 1.1 big-endian. */
-#define EFA_PARISC_2_0 0x0214 /* PA-RISC 2.0 big-endian. */
-
-/* Additional section indeces. */
-
-#define SHN_PARISC_ANSI_COMMON 0xff00 /* Section for tenatively declared
- symbols in ANSI C. */
-#define SHN_PARISC_HUGE_COMMON 0xff01 /* Common blocks in huge model. */
-
-/* Legal values for sh_type field of Elf32_Shdr. */
-
-#define SHT_PARISC_EXT 0x70000000 /* Contains product specific ext. */
-#define SHT_PARISC_UNWIND 0x70000001 /* Unwind information. */
-#define SHT_PARISC_DOC 0x70000002 /* Debug info for optimized code. */
-
-/* Legal values for sh_flags field of Elf32_Shdr. */
-
-#define SHF_PARISC_SHORT 0x20000000 /* Section with short addressing. */
-#define SHF_PARISC_HUGE 0x40000000 /* Section far from gp. */
-#define SHF_PARISC_SBP 0x80000000 /* Static branch prediction code. */
-
-/* Legal values for ST_TYPE subfield of st_info (symbol type). */
-
-#define STT_PARISC_MILLICODE 13 /* Millicode function entry point. */
-
-#define STT_HP_OPAQUE (STT_LOOS + 0x1)
-#define STT_HP_STUB (STT_LOOS + 0x2)
-
-/* HPPA relocs. */
-
-#define R_PARISC_NONE 0 /* No reloc. */
-#define R_PARISC_DIR32 1 /* Direct 32-bit reference. */
-#define R_PARISC_DIR21L 2 /* Left 21 bits of eff. address. */
-#define R_PARISC_DIR17R 3 /* Right 17 bits of eff. address. */
-#define R_PARISC_DIR17F 4 /* 17 bits of eff. address. */
-#define R_PARISC_DIR14R 6 /* Right 14 bits of eff. address. */
-#define R_PARISC_PCREL32 9 /* 32-bit rel. address. */
-#define R_PARISC_PCREL21L 10 /* Left 21 bits of rel. address. */
-#define R_PARISC_PCREL17R 11 /* Right 17 bits of rel. address. */
-#define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */
-#define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */
-#define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */
-#define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */
-#define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */
-#define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */
-#define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */
-#define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */
-#define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */
-#define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */
-#define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */
-#define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */
-#define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */
-#define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */
-#define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */
-#define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */
-#define R_PARISC_FPTR64 64 /* 64 bits function address. */
-#define R_PARISC_PLABEL32 65 /* 32 bits function address. */
-#define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */
-#define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */
-#define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */
-#define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */
-#define R_PARISC_PCREL16F 77 /* 16 bits PC-rel. address. */
-#define R_PARISC_PCREL16WF 78 /* 16 bits PC-rel. address. */
-#define R_PARISC_PCREL16DF 79 /* 16 bits PC-rel. address. */
-#define R_PARISC_DIR64 80 /* 64 bits of eff. address. */
-#define R_PARISC_DIR14WR 83 /* 14 bits of eff. address. */
-#define R_PARISC_DIR14DR 84 /* 14 bits of eff. address. */
-#define R_PARISC_DIR16F 85 /* 16 bits of eff. address. */
-#define R_PARISC_DIR16WF 86 /* 16 bits of eff. address. */
-#define R_PARISC_DIR16DF 87 /* 16 bits of eff. address. */
-#define R_PARISC_GPREL64 88 /* 64 bits of GP-rel. address. */
-#define R_PARISC_GPREL14WR 91 /* GP-rel. address, right 14 bits. */
-#define R_PARISC_GPREL14DR 92 /* GP-rel. address, right 14 bits. */
-#define R_PARISC_GPREL16F 93 /* 16 bits GP-rel. address. */
-#define R_PARISC_GPREL16WF 94 /* 16 bits GP-rel. address. */
-#define R_PARISC_GPREL16DF 95 /* 16 bits GP-rel. address. */
-#define R_PARISC_LTOFF64 96 /* 64 bits LT-rel. address. */
-#define R_PARISC_LTOFF14WR 99 /* LT-rel. address, right 14 bits. */
-#define R_PARISC_LTOFF14DR 100 /* LT-rel. address, right 14 bits. */
-#define R_PARISC_LTOFF16F 101 /* 16 bits LT-rel. address. */
-#define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */
-#define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */
-#define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */
-#define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */
-#define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */
-#define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */
-#define R_PARISC_PLTOFF16F 117 /* 16 bits LT-rel. address. */
-#define R_PARISC_PLTOFF16WF 118 /* 16 bits PLT-rel. address. */
-#define R_PARISC_PLTOFF16DF 119 /* 16 bits PLT-rel. address. */
-#define R_PARISC_LTOFF_FPTR64 120 /* 64 bits LT-rel. function ptr. */
-#define R_PARISC_LTOFF_FPTR14WR 123 /* LT-rel. fct. ptr., right 14 bits. */
-#define R_PARISC_LTOFF_FPTR14DR 124 /* LT-rel. fct. ptr., right 14 bits. */
-#define R_PARISC_LTOFF_FPTR16F 125 /* 16 bits LT-rel. function ptr. */
-#define R_PARISC_LTOFF_FPTR16WF 126 /* 16 bits LT-rel. function ptr. */
-#define R_PARISC_LTOFF_FPTR16DF 127 /* 16 bits LT-rel. function ptr. */
-#define R_PARISC_LORESERVE 128
-#define R_PARISC_COPY 128 /* Copy relocation. */
-#define R_PARISC_IPLT 129 /* Dynamic reloc, imported PLT */
-#define R_PARISC_EPLT 130 /* Dynamic reloc, exported PLT */
-#define R_PARISC_TPREL32 153 /* 32 bits TP-rel. address. */
-#define R_PARISC_TPREL21L 154 /* TP-rel. address, left 21 bits. */
-#define R_PARISC_TPREL14R 158 /* TP-rel. address, right 14 bits. */
-#define R_PARISC_LTOFF_TP21L 162 /* LT-TP-rel. address, left 21 bits. */
-#define R_PARISC_LTOFF_TP14R 166 /* LT-TP-rel. address, right 14 bits.*/
-#define R_PARISC_LTOFF_TP14F 167 /* 14 bits LT-TP-rel. address. */
-#define R_PARISC_TPREL64 216 /* 64 bits TP-rel. address. */
-#define R_PARISC_TPREL14WR 219 /* TP-rel. address, right 14 bits. */
-#define R_PARISC_TPREL14DR 220 /* TP-rel. address, right 14 bits. */
-#define R_PARISC_TPREL16F 221 /* 16 bits TP-rel. address. */
-#define R_PARISC_TPREL16WF 222 /* 16 bits TP-rel. address. */
-#define R_PARISC_TPREL16DF 223 /* 16 bits TP-rel. address. */
-#define R_PARISC_LTOFF_TP64 224 /* 64 bits LT-TP-rel. address. */
-#define R_PARISC_LTOFF_TP14WR 227 /* LT-TP-rel. address, right 14 bits.*/
-#define R_PARISC_LTOFF_TP14DR 228 /* LT-TP-rel. address, right 14 bits.*/
-#define R_PARISC_LTOFF_TP16F 229 /* 16 bits LT-TP-rel. address. */
-#define R_PARISC_LTOFF_TP16WF 230 /* 16 bits LT-TP-rel. address. */
-#define R_PARISC_LTOFF_TP16DF 231 /* 16 bits LT-TP-rel. address. */
-#define R_PARISC_HIRESERVE 255
-
-/* Legal values for p_type field of Elf32_Phdr/Elf64_Phdr. */
-
-#define PT_HP_TLS (PT_LOOS + 0x0)
-#define PT_HP_CORE_NONE (PT_LOOS + 0x1)
-#define PT_HP_CORE_VERSION (PT_LOOS + 0x2)
-#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)
-#define PT_HP_CORE_COMM (PT_LOOS + 0x4)
-#define PT_HP_CORE_PROC (PT_LOOS + 0x5)
-#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)
-#define PT_HP_CORE_STACK (PT_LOOS + 0x7)
-#define PT_HP_CORE_SHM (PT_LOOS + 0x8)
-#define PT_HP_CORE_MMF (PT_LOOS + 0x9)
-#define PT_HP_PARALLEL (PT_LOOS + 0x10)
-#define PT_HP_FASTBIND (PT_LOOS + 0x11)
-#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)
-#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)
-#define PT_HP_STACK (PT_LOOS + 0x14)
-
-#define PT_PARISC_ARCHEXT 0x70000000
-#define PT_PARISC_UNWIND 0x70000001
-
-/* Legal values for p_flags field of Elf32_Phdr/Elf64_Phdr. */
-
-#define PF_PARISC_SBP 0x08000000
-
-#define PF_HP_PAGE_SIZE 0x00100000
-#define PF_HP_FAR_SHARED 0x00200000
-#define PF_HP_NEAR_SHARED 0x00400000
-#define PF_HP_CODE 0x01000000
-#define PF_HP_MODIFY 0x02000000
-#define PF_HP_LAZYSWAP 0x04000000
-#define PF_HP_SBP 0x08000000
-
-
-/* Alpha specific definitions. */
-
-/* Legal values for e_flags field of Elf64_Ehdr. */
-
-#define EF_ALPHA_32BIT 1 /* All addresses must be < 2GB. */
-#define EF_ALPHA_CANRELAX 2 /* Relocations for relaxing exist. */
-
-/* Legal values for sh_type field of Elf64_Shdr. */
-
-/* These two are primerily concerned with ECOFF debugging info. */
-#define SHT_ALPHA_DEBUG 0x70000001
-#define SHT_ALPHA_REGINFO 0x70000002
-
-/* Legal values for sh_flags field of Elf64_Shdr. */
-
-#define SHF_ALPHA_GPREL 0x10000000
-
-/* Legal values for st_other field of Elf64_Sym. */
-#define STO_ALPHA_NOPV 0x80 /* No PV required. */
-#define STO_ALPHA_STD_GPLOAD 0x88 /* PV only used for initial ldgp. */
-
-/* Alpha relocs. */
-
-#define R_ALPHA_NONE 0 /* No reloc */
-#define R_ALPHA_REFLONG 1 /* Direct 32 bit */
-#define R_ALPHA_REFQUAD 2 /* Direct 64 bit */
-#define R_ALPHA_GPREL32 3 /* GP relative 32 bit */
-#define R_ALPHA_LITERAL 4 /* GP relative 16 bit w/optimization */
-#define R_ALPHA_LITUSE 5 /* Optimization hint for LITERAL */
-#define R_ALPHA_GPDISP 6 /* Add displacement to GP */
-#define R_ALPHA_BRADDR 7 /* PC+4 relative 23 bit shifted */
-#define R_ALPHA_HINT 8 /* PC+4 relative 16 bit shifted */
-#define R_ALPHA_SREL16 9 /* PC relative 16 bit */
-#define R_ALPHA_SREL32 10 /* PC relative 32 bit */
-#define R_ALPHA_SREL64 11 /* PC relative 64 bit */
-#define R_ALPHA_GPRELHIGH 17 /* GP relative 32 bit, high 16 bits */
-#define R_ALPHA_GPRELLOW 18 /* GP relative 32 bit, low 16 bits */
-#define R_ALPHA_GPREL16 19 /* GP relative 16 bit */
-#define R_ALPHA_COPY 24 /* Copy symbol at runtime */
-#define R_ALPHA_GLOB_DAT 25 /* Create GOT entry */
-#define R_ALPHA_JMP_SLOT 26 /* Create PLT entry */
-#define R_ALPHA_RELATIVE 27 /* Adjust by program base */
-#define R_ALPHA_TLS_GD_HI 28
-#define R_ALPHA_TLSGD 29
-#define R_ALPHA_TLS_LDM 30
-#define R_ALPHA_DTPMOD64 31
-#define R_ALPHA_GOTDTPREL 32
-#define R_ALPHA_DTPREL64 33
-#define R_ALPHA_DTPRELHI 34
-#define R_ALPHA_DTPRELLO 35
-#define R_ALPHA_DTPREL16 36
-#define R_ALPHA_GOTTPREL 37
-#define R_ALPHA_TPREL64 38
-#define R_ALPHA_TPRELHI 39
-#define R_ALPHA_TPRELLO 40
-#define R_ALPHA_TPREL16 41
-/* Keep this the last entry. */
-#define R_ALPHA_NUM 46
-
-/* Magic values of the LITUSE relocation addend. */
-#define LITUSE_ALPHA_ADDR 0
-#define LITUSE_ALPHA_BASE 1
-#define LITUSE_ALPHA_BYTOFF 2
-#define LITUSE_ALPHA_JSR 3
-#define LITUSE_ALPHA_TLS_GD 4
-#define LITUSE_ALPHA_TLS_LDM 5
-
-
-/* PowerPC specific declarations */
-
-/* Values for Elf32/64_Ehdr.e_flags. */
-#define EF_PPC_EMB 0x80000000 /* PowerPC embedded flag */
-
-/* Cygnus local bits below */
-#define EF_PPC_RELOCATABLE 0x00010000 /* PowerPC -mrelocatable flag*/
-#define EF_PPC_RELOCATABLE_LIB 0x00008000 /* PowerPC -mrelocatable-lib
- flag */
-
-/* PowerPC relocations defined by the ABIs */
-#define R_PPC_NONE 0
-#define R_PPC_ADDR32 1 /* 32bit absolute address */
-#define R_PPC_ADDR24 2 /* 26bit address, 2 bits ignored. */
-#define R_PPC_ADDR16 3 /* 16bit absolute address */
-#define R_PPC_ADDR16_LO 4 /* lower 16bit of absolute address */
-#define R_PPC_ADDR16_HI 5 /* high 16bit of absolute address */
-#define R_PPC_ADDR16_HA 6 /* adjusted high 16bit */
-#define R_PPC_ADDR14 7 /* 16bit address, 2 bits ignored */
-#define R_PPC_ADDR14_BRTAKEN 8
-#define R_PPC_ADDR14_BRNTAKEN 9
-#define R_PPC_REL24 10 /* PC relative 26 bit */
-#define R_PPC_REL14 11 /* PC relative 16 bit */
-#define R_PPC_REL14_BRTAKEN 12
-#define R_PPC_REL14_BRNTAKEN 13
-#define R_PPC_GOT16 14
-#define R_PPC_GOT16_LO 15
-#define R_PPC_GOT16_HI 16
-#define R_PPC_GOT16_HA 17
-#define R_PPC_PLTREL24 18
-#define R_PPC_COPY 19
-#define R_PPC_GLOB_DAT 20
-#define R_PPC_JMP_SLOT 21
-#define R_PPC_RELATIVE 22
-#define R_PPC_LOCAL24PC 23
-#define R_PPC_UADDR32 24
-#define R_PPC_UADDR16 25
-#define R_PPC_REL32 26
-#define R_PPC_PLT32 27
-#define R_PPC_PLTREL32 28
-#define R_PPC_PLT16_LO 29
-#define R_PPC_PLT16_HI 30
-#define R_PPC_PLT16_HA 31
-#define R_PPC_SDAREL16 32
-#define R_PPC_SECTOFF 33
-#define R_PPC_SECTOFF_LO 34
-#define R_PPC_SECTOFF_HI 35
-#define R_PPC_SECTOFF_HA 36
-
-/* PowerPC relocations defined for the TLS access ABI. */
-#define R_PPC_TLS 67 /* none (sym+add)@tls */
-#define R_PPC_DTPMOD32 68 /* word32 (sym+add)@dtpmod */
-#define R_PPC_TPREL16 69 /* half16* (sym+add)@tprel */
-#define R_PPC_TPREL16_LO 70 /* half16 (sym+add)@tprel@l */
-#define R_PPC_TPREL16_HI 71 /* half16 (sym+add)@tprel@h */
-#define R_PPC_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha */
-#define R_PPC_TPREL32 73 /* word32 (sym+add)@tprel */
-#define R_PPC_DTPREL16 74 /* half16* (sym+add)@dtprel */
-#define R_PPC_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l */
-#define R_PPC_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h */
-#define R_PPC_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha */
-#define R_PPC_DTPREL32 78 /* word32 (sym+add)@dtprel */
-#define R_PPC_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd */
-#define R_PPC_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l */
-#define R_PPC_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h */
-#define R_PPC_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha */
-#define R_PPC_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */
-#define R_PPC_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l */
-#define R_PPC_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h */
-#define R_PPC_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha */
-#define R_PPC_GOT_TPREL16 87 /* half16* (sym+add)@got@tprel */
-#define R_PPC_GOT_TPREL16_LO 88 /* half16 (sym+add)@got@tprel@l */
-#define R_PPC_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h */
-#define R_PPC_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha */
-#define R_PPC_GOT_DTPREL16 91 /* half16* (sym+add)@got@dtprel */
-#define R_PPC_GOT_DTPREL16_LO 92 /* half16* (sym+add)@got@dtprel@l */
-#define R_PPC_GOT_DTPREL16_HI 93 /* half16* (sym+add)@got@dtprel@h */
-#define R_PPC_GOT_DTPREL16_HA 94 /* half16* (sym+add)@got@dtprel@ha */
-
-/* Keep this the last entry. */
-#define R_PPC_NUM 95
-
-/* The remaining relocs are from the Embedded ELF ABI, and are not
- in the SVR4 ELF ABI. */
-#define R_PPC_EMB_NADDR32 101
-#define R_PPC_EMB_NADDR16 102
-#define R_PPC_EMB_NADDR16_LO 103
-#define R_PPC_EMB_NADDR16_HI 104
-#define R_PPC_EMB_NADDR16_HA 105
-#define R_PPC_EMB_SDAI16 106
-#define R_PPC_EMB_SDA2I16 107
-#define R_PPC_EMB_SDA2REL 108
-#define R_PPC_EMB_SDA21 109 /* 16 bit offset in SDA */
-#define R_PPC_EMB_MRKREF 110
-#define R_PPC_EMB_RELSEC16 111
-#define R_PPC_EMB_RELST_LO 112
-#define R_PPC_EMB_RELST_HI 113
-#define R_PPC_EMB_RELST_HA 114
-#define R_PPC_EMB_BIT_FLD 115
-#define R_PPC_EMB_RELSDA 116 /* 16 bit relative offset in SDA */
-
-/* Diab tool relocations. */
-#define R_PPC_DIAB_SDA21_LO 180 /* like EMB_SDA21, but lower 16 bit */
-#define R_PPC_DIAB_SDA21_HI 181 /* like EMB_SDA21, but high 16 bit */
-#define R_PPC_DIAB_SDA21_HA 182 /* like EMB_SDA21, adjusted high 16 */
-#define R_PPC_DIAB_RELSDA_LO 183 /* like EMB_RELSDA, but lower 16 bit */
-#define R_PPC_DIAB_RELSDA_HI 184 /* like EMB_RELSDA, but high 16 bit */
-#define R_PPC_DIAB_RELSDA_HA 185 /* like EMB_RELSDA, adjusted high 16 */
-
-/* This is a phony reloc to handle any old fashioned TOC16 references
- that may still be in object files. */
-#define R_PPC_TOC16 255
-
-
-/* PowerPC64 relocations defined by the ABIs */
-#define R_PPC64_NONE R_PPC_NONE
-#define R_PPC64_ADDR32 R_PPC_ADDR32 /* 32bit absolute address */
-#define R_PPC64_ADDR24 R_PPC_ADDR24 /* 26bit address, word aligned */
-#define R_PPC64_ADDR16 R_PPC_ADDR16 /* 16bit absolute address */
-#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO /* lower 16bits of address */
-#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI /* high 16bits of address. */
-#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA /* adjusted high 16bits. */
-#define R_PPC64_ADDR14 R_PPC_ADDR14 /* 16bit address, word aligned */
-#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN
-#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN
-#define R_PPC64_REL24 R_PPC_REL24 /* PC-rel. 26 bit, word aligned */
-#define R_PPC64_REL14 R_PPC_REL14 /* PC relative 16 bit */
-#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN
-#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN
-#define R_PPC64_GOT16 R_PPC_GOT16
-#define R_PPC64_GOT16_LO R_PPC_GOT16_LO
-#define R_PPC64_GOT16_HI R_PPC_GOT16_HI
-#define R_PPC64_GOT16_HA R_PPC_GOT16_HA
-
-#define R_PPC64_COPY R_PPC_COPY
-#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT
-#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT
-#define R_PPC64_RELATIVE R_PPC_RELATIVE
-
-#define R_PPC64_UADDR32 R_PPC_UADDR32
-#define R_PPC64_UADDR16 R_PPC_UADDR16
-#define R_PPC64_REL32 R_PPC_REL32
-#define R_PPC64_PLT32 R_PPC_PLT32
-#define R_PPC64_PLTREL32 R_PPC_PLTREL32
-#define R_PPC64_PLT16_LO R_PPC_PLT16_LO
-#define R_PPC64_PLT16_HI R_PPC_PLT16_HI
-#define R_PPC64_PLT16_HA R_PPC_PLT16_HA
-
-#define R_PPC64_SECTOFF R_PPC_SECTOFF
-#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO
-#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI
-#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA
-#define R_PPC64_ADDR30 37 /* word30 (S + A - P) >> 2 */
-#define R_PPC64_ADDR64 38 /* doubleword64 S + A */
-#define R_PPC64_ADDR16_HIGHER 39 /* half16 #higher(S + A) */
-#define R_PPC64_ADDR16_HIGHERA 40 /* half16 #highera(S + A) */
-#define R_PPC64_ADDR16_HIGHEST 41 /* half16 #highest(S + A) */
-#define R_PPC64_ADDR16_HIGHESTA 42 /* half16 #highesta(S + A) */
-#define R_PPC64_UADDR64 43 /* doubleword64 S + A */
-#define R_PPC64_REL64 44 /* doubleword64 S + A - P */
-#define R_PPC64_PLT64 45 /* doubleword64 L + A */
-#define R_PPC64_PLTREL64 46 /* doubleword64 L + A - P */
-#define R_PPC64_TOC16 47 /* half16* S + A - .TOC */
-#define R_PPC64_TOC16_LO 48 /* half16 #lo(S + A - .TOC.) */
-#define R_PPC64_TOC16_HI 49 /* half16 #hi(S + A - .TOC.) */
-#define R_PPC64_TOC16_HA 50 /* half16 #ha(S + A - .TOC.) */
-#define R_PPC64_TOC 51 /* doubleword64 .TOC */
-#define R_PPC64_PLTGOT16 52 /* half16* M + A */
-#define R_PPC64_PLTGOT16_LO 53 /* half16 #lo(M + A) */
-#define R_PPC64_PLTGOT16_HI 54 /* half16 #hi(M + A) */
-#define R_PPC64_PLTGOT16_HA 55 /* half16 #ha(M + A) */
-
-#define R_PPC64_ADDR16_DS 56 /* half16ds* (S + A) >> 2 */
-#define R_PPC64_ADDR16_LO_DS 57 /* half16ds #lo(S + A) >> 2 */
-#define R_PPC64_GOT16_DS 58 /* half16ds* (G + A) >> 2 */
-#define R_PPC64_GOT16_LO_DS 59 /* half16ds #lo(G + A) >> 2 */
-#define R_PPC64_PLT16_LO_DS 60 /* half16ds #lo(L + A) >> 2 */
-#define R_PPC64_SECTOFF_DS 61 /* half16ds* (R + A) >> 2 */
-#define R_PPC64_SECTOFF_LO_DS 62 /* half16ds #lo(R + A) >> 2 */
-#define R_PPC64_TOC16_DS 63 /* half16ds* (S + A - .TOC.) >> 2 */
-#define R_PPC64_TOC16_LO_DS 64 /* half16ds #lo(S + A - .TOC.) >> 2 */
-#define R_PPC64_PLTGOT16_DS 65 /* half16ds* (M + A) >> 2 */
-#define R_PPC64_PLTGOT16_LO_DS 66 /* half16ds #lo(M + A) >> 2 */
-
-/* PowerPC64 relocations defined for the TLS access ABI. */
-#define R_PPC64_TLS 67 /* none (sym+add)@tls */
-#define R_PPC64_DTPMOD64 68 /* doubleword64 (sym+add)@dtpmod */
-#define R_PPC64_TPREL16 69 /* half16* (sym+add)@tprel */
-#define R_PPC64_TPREL16_LO 70 /* half16 (sym+add)@tprel@l */
-#define R_PPC64_TPREL16_HI 71 /* half16 (sym+add)@tprel@h */
-#define R_PPC64_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha */
-#define R_PPC64_TPREL64 73 /* doubleword64 (sym+add)@tprel */
-#define R_PPC64_DTPREL16 74 /* half16* (sym+add)@dtprel */
-#define R_PPC64_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l */
-#define R_PPC64_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h */
-#define R_PPC64_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha */
-#define R_PPC64_DTPREL64 78 /* doubleword64 (sym+add)@dtprel */
-#define R_PPC64_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd */
-#define R_PPC64_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l */
-#define R_PPC64_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h */
-#define R_PPC64_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha */
-#define R_PPC64_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */
-#define R_PPC64_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l */
-#define R_PPC64_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h */
-#define R_PPC64_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha */
-#define R_PPC64_GOT_TPREL16_DS 87 /* half16ds* (sym+add)@got@tprel */
-#define R_PPC64_GOT_TPREL16_LO_DS 88 /* half16ds (sym+add)@got@tprel@l */
-#define R_PPC64_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h */
-#define R_PPC64_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha */
-#define R_PPC64_GOT_DTPREL16_DS 91 /* half16ds* (sym+add)@got@dtprel */
-#define R_PPC64_GOT_DTPREL16_LO_DS 92 /* half16ds (sym+add)@got@dtprel@l */
-#define R_PPC64_GOT_DTPREL16_HI 93 /* half16 (sym+add)@got@dtprel@h */
-#define R_PPC64_GOT_DTPREL16_HA 94 /* half16 (sym+add)@got@dtprel@ha */
-#define R_PPC64_TPREL16_DS 95 /* half16ds* (sym+add)@tprel */
-#define R_PPC64_TPREL16_LO_DS 96 /* half16ds (sym+add)@tprel@l */
-#define R_PPC64_TPREL16_HIGHER 97 /* half16 (sym+add)@tprel@higher */
-#define R_PPC64_TPREL16_HIGHERA 98 /* half16 (sym+add)@tprel@highera */
-#define R_PPC64_TPREL16_HIGHEST 99 /* half16 (sym+add)@tprel@highest */
-#define R_PPC64_TPREL16_HIGHESTA 100 /* half16 (sym+add)@tprel@highesta */
-#define R_PPC64_DTPREL16_DS 101 /* half16ds* (sym+add)@dtprel */
-#define R_PPC64_DTPREL16_LO_DS 102 /* half16ds (sym+add)@dtprel@l */
-#define R_PPC64_DTPREL16_HIGHER 103 /* half16 (sym+add)@dtprel@higher */
-#define R_PPC64_DTPREL16_HIGHERA 104 /* half16 (sym+add)@dtprel@highera */
-#define R_PPC64_DTPREL16_HIGHEST 105 /* half16 (sym+add)@dtprel@highest */
-#define R_PPC64_DTPREL16_HIGHESTA 106 /* half16 (sym+add)@dtprel@highesta */
-
-/* Keep this the last entry. */
-#define R_PPC64_NUM 107
-
-/* PowerPC64 specific values for the Dyn d_tag field. */
-#define DT_PPC64_GLINK (DT_LOPROC + 0)
-#define DT_PPC64_OPD (DT_LOPROC + 1)
-#define DT_PPC64_OPDSZ (DT_LOPROC + 2)
-#define DT_PPC64_NUM 3
-
-
-/* ARM specific declarations */
-
-/* Processor specific flags for the ELF header e_flags field. */
-#define EF_ARM_RELEXEC 0x01
-#define EF_ARM_HASENTRY 0x02
-#define EF_ARM_INTERWORK 0x04
-#define EF_ARM_APCS_26 0x08
-#define EF_ARM_APCS_FLOAT 0x10
-#define EF_ARM_PIC 0x20
-#define EF_ARM_ALIGN8 0x40 /* 8-bit structure alignment is in use */
-#define EF_ARM_NEW_ABI 0x80
-#define EF_ARM_OLD_ABI 0x100
-
-/* Other constants defined in the ARM ELF spec. version B-01. */
-/* NB. These conflict with values defined above. */
-#define EF_ARM_SYMSARESORTED 0x04
-#define EF_ARM_DYNSYMSUSESEGIDX 0x08
-#define EF_ARM_MAPSYMSFIRST 0x10
-#define EF_ARM_EABIMASK 0XFF000000
-
-#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
-#define EF_ARM_EABI_UNKNOWN 0x00000000
-#define EF_ARM_EABI_VER1 0x01000000
-#define EF_ARM_EABI_VER2 0x02000000
-
-/* Additional symbol types for Thumb */
-#define STT_ARM_TFUNC 0xd
-
-/* ARM-specific values for sh_flags */
-#define SHF_ARM_ENTRYSECT 0x10000000 /* Section contains an entry point */
-#define SHF_ARM_COMDEF 0x80000000 /* Section may be multiply defined
- in the input to a link step */
-
-/* ARM-specific program header flags */
-#define PF_ARM_SB 0x10000000 /* Segment contains the location
- addressed by the static base */
-
-/* ARM relocs. */
-#define R_ARM_NONE 0 /* No reloc */
-#define R_ARM_PC24 1 /* PC relative 26 bit branch */
-#define R_ARM_ABS32 2 /* Direct 32 bit */
-#define R_ARM_REL32 3 /* PC relative 32 bit */
-#define R_ARM_PC13 4
-#define R_ARM_ABS16 5 /* Direct 16 bit */
-#define R_ARM_ABS12 6 /* Direct 12 bit */
-#define R_ARM_THM_ABS5 7
-#define R_ARM_ABS8 8 /* Direct 8 bit */
-#define R_ARM_SBREL32 9
-#define R_ARM_THM_PC22 10
-#define R_ARM_THM_PC8 11
-#define R_ARM_AMP_VCALL9 12
-#define R_ARM_SWI24 13
-#define R_ARM_THM_SWI8 14
-#define R_ARM_XPC25 15
-#define R_ARM_THM_XPC22 16
-#define R_ARM_COPY 20 /* Copy symbol at runtime */
-#define R_ARM_GLOB_DAT 21 /* Create GOT entry */
-#define R_ARM_JUMP_SLOT 22 /* Create PLT entry */
-#define R_ARM_RELATIVE 23 /* Adjust by program base */
-#define R_ARM_GOTOFF 24 /* 32 bit offset to GOT */
-#define R_ARM_GOTPC 25 /* 32 bit PC relative offset to GOT */
-#define R_ARM_GOT32 26 /* 32 bit GOT entry */
-#define R_ARM_PLT32 27 /* 32 bit PLT address */
-#define R_ARM_ALU_PCREL_7_0 32
-#define R_ARM_ALU_PCREL_15_8 33
-#define R_ARM_ALU_PCREL_23_15 34
-#define R_ARM_LDR_SBREL_11_0 35
-#define R_ARM_ALU_SBREL_19_12 36
-#define R_ARM_ALU_SBREL_27_20 37
-#define R_ARM_GNU_VTENTRY 100
-#define R_ARM_GNU_VTINHERIT 101
-#define R_ARM_THM_PC11 102 /* thumb unconditional branch */
-#define R_ARM_THM_PC9 103 /* thumb conditional branch */
-#define R_ARM_RXPC25 249
-#define R_ARM_RSBREL32 250
-#define R_ARM_THM_RPC22 251
-#define R_ARM_RREL32 252
-#define R_ARM_RABS22 253
-#define R_ARM_RPC24 254
-#define R_ARM_RBASE 255
-/* Keep this the last entry. */
-#define R_ARM_NUM 256
-
-/* IA-64 specific declarations. */
-
-/* Processor specific flags for the Ehdr e_flags field. */
-#define EF_IA_64_MASKOS 0x0000000f /* os-specific flags */
-#define EF_IA_64_ABI64 0x00000010 /* 64-bit ABI */
-#define EF_IA_64_ARCH 0xff000000 /* arch. version mask */
-
-/* Processor specific values for the Phdr p_type field. */
-#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) /* arch extension bits */
-#define PT_IA_64_UNWIND (PT_LOPROC + 1) /* ia64 unwind bits */
-#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12)
-#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13)
-#define PT_IA_64_HP_STACK (PT_LOOS + 0x14)
-
-/* Processor specific flags for the Phdr p_flags field. */
-#define PF_IA_64_NORECOV 0x80000000 /* spec insns w/o recovery */
-
-/* Processor specific values for the Shdr sh_type field. */
-#define SHT_IA_64_EXT (SHT_LOPROC + 0) /* extension bits */
-#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) /* unwind bits */
-
-/* Processor specific flags for the Shdr sh_flags field. */
-#define SHF_IA_64_SHORT 0x10000000 /* section near gp */
-#define SHF_IA_64_NORECOV 0x20000000 /* spec insns w/o recovery */
-
-/* Processor specific values for the Dyn d_tag field. */
-#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
-#define DT_IA_64_NUM 1
-
-/* IA-64 relocations. */
-#define R_IA64_NONE 0x00 /* none */
-#define R_IA64_IMM14 0x21 /* symbol + addend, add imm14 */
-#define R_IA64_IMM22 0x22 /* symbol + addend, add imm22 */
-#define R_IA64_IMM64 0x23 /* symbol + addend, mov imm64 */
-#define R_IA64_DIR32MSB 0x24 /* symbol + addend, data4 MSB */
-#define R_IA64_DIR32LSB 0x25 /* symbol + addend, data4 LSB */
-#define R_IA64_DIR64MSB 0x26 /* symbol + addend, data8 MSB */
-#define R_IA64_DIR64LSB 0x27 /* symbol + addend, data8 LSB */
-#define R_IA64_GPREL22 0x2a /* @gprel(sym + add), add imm22 */
-#define R_IA64_GPREL64I 0x2b /* @gprel(sym + add), mov imm64 */
-#define R_IA64_GPREL32MSB 0x2c /* @gprel(sym + add), data4 MSB */
-#define R_IA64_GPREL32LSB 0x2d /* @gprel(sym + add), data4 LSB */
-#define R_IA64_GPREL64MSB 0x2e /* @gprel(sym + add), data8 MSB */
-#define R_IA64_GPREL64LSB 0x2f /* @gprel(sym + add), data8 LSB */
-#define R_IA64_LTOFF22 0x32 /* @ltoff(sym + add), add imm22 */
-#define R_IA64_LTOFF64I 0x33 /* @ltoff(sym + add), mov imm64 */
-#define R_IA64_PLTOFF22 0x3a /* @pltoff(sym + add), add imm22 */
-#define R_IA64_PLTOFF64I 0x3b /* @pltoff(sym + add), mov imm64 */
-#define R_IA64_PLTOFF64MSB 0x3e /* @pltoff(sym + add), data8 MSB */
-#define R_IA64_PLTOFF64LSB 0x3f /* @pltoff(sym + add), data8 LSB */
-#define R_IA64_FPTR64I 0x43 /* @fptr(sym + add), mov imm64 */
-#define R_IA64_FPTR32MSB 0x44 /* @fptr(sym + add), data4 MSB */
-#define R_IA64_FPTR32LSB 0x45 /* @fptr(sym + add), data4 LSB */
-#define R_IA64_FPTR64MSB 0x46 /* @fptr(sym + add), data8 MSB */
-#define R_IA64_FPTR64LSB 0x47 /* @fptr(sym + add), data8 LSB */
-#define R_IA64_PCREL60B 0x48 /* @pcrel(sym + add), brl */
-#define R_IA64_PCREL21B 0x49 /* @pcrel(sym + add), ptb, call */
-#define R_IA64_PCREL21M 0x4a /* @pcrel(sym + add), chk.s */
-#define R_IA64_PCREL21F 0x4b /* @pcrel(sym + add), fchkf */
-#define R_IA64_PCREL32MSB 0x4c /* @pcrel(sym + add), data4 MSB */
-#define R_IA64_PCREL32LSB 0x4d /* @pcrel(sym + add), data4 LSB */
-#define R_IA64_PCREL64MSB 0x4e /* @pcrel(sym + add), data8 MSB */
-#define R_IA64_PCREL64LSB 0x4f /* @pcrel(sym + add), data8 LSB */
-#define R_IA64_LTOFF_FPTR22 0x52 /* @ltoff(@fptr(s+a)), imm22 */
-#define R_IA64_LTOFF_FPTR64I 0x53 /* @ltoff(@fptr(s+a)), imm64 */
-#define R_IA64_LTOFF_FPTR32MSB 0x54 /* @ltoff(@fptr(s+a)), data4 MSB */
-#define R_IA64_LTOFF_FPTR32LSB 0x55 /* @ltoff(@fptr(s+a)), data4 LSB */
-#define R_IA64_LTOFF_FPTR64MSB 0x56 /* @ltoff(@fptr(s+a)), data8 MSB */
-#define R_IA64_LTOFF_FPTR64LSB 0x57 /* @ltoff(@fptr(s+a)), data8 LSB */
-#define R_IA64_SEGREL32MSB 0x5c /* @segrel(sym + add), data4 MSB */
-#define R_IA64_SEGREL32LSB 0x5d /* @segrel(sym + add), data4 LSB */
-#define R_IA64_SEGREL64MSB 0x5e /* @segrel(sym + add), data8 MSB */
-#define R_IA64_SEGREL64LSB 0x5f /* @segrel(sym + add), data8 LSB */
-#define R_IA64_SECREL32MSB 0x64 /* @secrel(sym + add), data4 MSB */
-#define R_IA64_SECREL32LSB 0x65 /* @secrel(sym + add), data4 LSB */
-#define R_IA64_SECREL64MSB 0x66 /* @secrel(sym + add), data8 MSB */
-#define R_IA64_SECREL64LSB 0x67 /* @secrel(sym + add), data8 LSB */
-#define R_IA64_REL32MSB 0x6c /* data 4 + REL */
-#define R_IA64_REL32LSB 0x6d /* data 4 + REL */
-#define R_IA64_REL64MSB 0x6e /* data 8 + REL */
-#define R_IA64_REL64LSB 0x6f /* data 8 + REL */
-#define R_IA64_LTV32MSB 0x74 /* symbol + addend, data4 MSB */
-#define R_IA64_LTV32LSB 0x75 /* symbol + addend, data4 LSB */
-#define R_IA64_LTV64MSB 0x76 /* symbol + addend, data8 MSB */
-#define R_IA64_LTV64LSB 0x77 /* symbol + addend, data8 LSB */
-#define R_IA64_PCREL21BI 0x79 /* @pcrel(sym + add), 21bit inst */
-#define R_IA64_PCREL22 0x7a /* @pcrel(sym + add), 22bit inst */
-#define R_IA64_PCREL64I 0x7b /* @pcrel(sym + add), 64bit inst */
-#define R_IA64_IPLTMSB 0x80 /* dynamic reloc, imported PLT, MSB */
-#define R_IA64_IPLTLSB 0x81 /* dynamic reloc, imported PLT, LSB */
-#define R_IA64_COPY 0x84 /* copy relocation */
-#define R_IA64_SUB 0x85 /* Addend and symbol difference */
-#define R_IA64_LTOFF22X 0x86 /* LTOFF22, relaxable. */
-#define R_IA64_LDXMOV 0x87 /* Use of LTOFF22X. */
-#define R_IA64_TPREL14 0x91 /* @tprel(sym + add), imm14 */
-#define R_IA64_TPREL22 0x92 /* @tprel(sym + add), imm22 */
-#define R_IA64_TPREL64I 0x93 /* @tprel(sym + add), imm64 */
-#define R_IA64_TPREL64MSB 0x96 /* @tprel(sym + add), data8 MSB */
-#define R_IA64_TPREL64LSB 0x97 /* @tprel(sym + add), data8 LSB */
-#define R_IA64_LTOFF_TPREL22 0x9a /* @ltoff(@tprel(s+a)), imm2 */
-#define R_IA64_DTPMOD64MSB 0xa6 /* @dtpmod(sym + add), data8 MSB */
-#define R_IA64_DTPMOD64LSB 0xa7 /* @dtpmod(sym + add), data8 LSB */
-#define R_IA64_LTOFF_DTPMOD22 0xaa /* @ltoff(@dtpmod(sym + add)), imm22 */
-#define R_IA64_DTPREL14 0xb1 /* @dtprel(sym + add), imm14 */
-#define R_IA64_DTPREL22 0xb2 /* @dtprel(sym + add), imm22 */
-#define R_IA64_DTPREL64I 0xb3 /* @dtprel(sym + add), imm64 */
-#define R_IA64_DTPREL32MSB 0xb4 /* @dtprel(sym + add), data4 MSB */
-#define R_IA64_DTPREL32LSB 0xb5 /* @dtprel(sym + add), data4 LSB */
-#define R_IA64_DTPREL64MSB 0xb6 /* @dtprel(sym + add), data8 MSB */
-#define R_IA64_DTPREL64LSB 0xb7 /* @dtprel(sym + add), data8 LSB */
-#define R_IA64_LTOFF_DTPREL22 0xba /* @ltoff(@dtprel(s+a)), imm22 */
-
-/* SH specific declarations */
-
-/* SH relocs. */
-#define R_SH_NONE 0
-#define R_SH_DIR32 1
-#define R_SH_REL32 2
-#define R_SH_DIR8WPN 3
-#define R_SH_IND12W 4
-#define R_SH_DIR8WPL 5
-#define R_SH_DIR8WPZ 6
-#define R_SH_DIR8BP 7
-#define R_SH_DIR8W 8
-#define R_SH_DIR8L 9
-#define R_SH_SWITCH16 25
-#define R_SH_SWITCH32 26
-#define R_SH_USES 27
-#define R_SH_COUNT 28
-#define R_SH_ALIGN 29
-#define R_SH_CODE 30
-#define R_SH_DATA 31
-#define R_SH_LABEL 32
-#define R_SH_SWITCH8 33
-#define R_SH_GNU_VTINHERIT 34
-#define R_SH_GNU_VTENTRY 35
-#define R_SH_TLS_GD_32 144
-#define R_SH_TLS_LD_32 145
-#define R_SH_TLS_LDO_32 146
-#define R_SH_TLS_IE_32 147
-#define R_SH_TLS_LE_32 148
-#define R_SH_TLS_DTPMOD32 149
-#define R_SH_TLS_DTPOFF32 150
-#define R_SH_TLS_TPOFF32 151
-#define R_SH_GOT32 160
-#define R_SH_PLT32 161
-#define R_SH_COPY 162
-#define R_SH_GLOB_DAT 163
-#define R_SH_JMP_SLOT 164
-#define R_SH_RELATIVE 165
-#define R_SH_GOTOFF 166
-#define R_SH_GOTPC 167
-/* Keep this the last entry. */
-#define R_SH_NUM 256
-
-/* Additional s390 relocs */
-
-#define R_390_NONE 0 /* No reloc. */
-#define R_390_8 1 /* Direct 8 bit. */
-#define R_390_12 2 /* Direct 12 bit. */
-#define R_390_16 3 /* Direct 16 bit. */
-#define R_390_32 4 /* Direct 32 bit. */
-#define R_390_PC32 5 /* PC relative 32 bit. */
-#define R_390_GOT12 6 /* 12 bit GOT offset. */
-#define R_390_GOT32 7 /* 32 bit GOT offset. */
-#define R_390_PLT32 8 /* 32 bit PC relative PLT address. */
-#define R_390_COPY 9 /* Copy symbol at runtime. */
-#define R_390_GLOB_DAT 10 /* Create GOT entry. */
-#define R_390_JMP_SLOT 11 /* Create PLT entry. */
-#define R_390_RELATIVE 12 /* Adjust by program base. */
-#define R_390_GOTOFF32 13 /* 32 bit offset to GOT. */
-#define R_390_GOTPC 14 /* 32 bit PC relative offset to GOT. */
-#define R_390_GOT16 15 /* 16 bit GOT offset. */
-#define R_390_PC16 16 /* PC relative 16 bit. */
-#define R_390_PC16DBL 17 /* PC relative 16 bit shifted by 1. */
-#define R_390_PLT16DBL 18 /* 16 bit PC rel. PLT shifted by 1. */
-#define R_390_PC32DBL 19 /* PC relative 32 bit shifted by 1. */
-#define R_390_PLT32DBL 20 /* 32 bit PC rel. PLT shifted by 1. */
-#define R_390_GOTPCDBL 21 /* 32 bit PC rel. GOT shifted by 1. */
-#define R_390_64 22 /* Direct 64 bit. */
-#define R_390_PC64 23 /* PC relative 64 bit. */
-#define R_390_GOT64 24 /* 64 bit GOT offset. */
-#define R_390_PLT64 25 /* 64 bit PC relative PLT address. */
-#define R_390_GOTENT 26 /* 32 bit PC rel. to GOT entry >> 1. */
-#define R_390_GOTOFF16 27 /* 16 bit offset to GOT. */
-#define R_390_GOTOFF64 28 /* 64 bit offset to GOT. */
-#define R_390_GOTPLT12 29 /* 12 bit offset to jump slot. */
-#define R_390_GOTPLT16 30 /* 16 bit offset to jump slot. */
-#define R_390_GOTPLT32 31 /* 32 bit offset to jump slot. */
-#define R_390_GOTPLT64 32 /* 64 bit offset to jump slot. */
-#define R_390_GOTPLTENT 33 /* 32 bit rel. offset to jump slot. */
-#define R_390_PLTOFF16 34 /* 16 bit offset from GOT to PLT. */
-#define R_390_PLTOFF32 35 /* 32 bit offset from GOT to PLT. */
-#define R_390_PLTOFF64 36 /* 16 bit offset from GOT to PLT. */
-#define R_390_TLS_LOAD 37 /* Tag for load insn in TLS code. */
-#define R_390_TLS_GDCALL 38 /* Tag for function call in general
- dynamic TLS code. */
-#define R_390_TLS_LDCALL 39 /* Tag for function call in local
- dynamic TLS code. */
-#define R_390_TLS_GD32 40 /* Direct 32 bit for general dynamic
- thread local data. */
-#define R_390_TLS_GD64 41 /* Direct 64 bit for general dynamic
- thread local data. */
-#define R_390_TLS_GOTIE12 42 /* 12 bit GOT offset for static TLS
- block offset. */
-#define R_390_TLS_GOTIE32 43 /* 32 bit GOT offset for static TLS
- block offset. */
-#define R_390_TLS_GOTIE64 44 /* 64 bit GOT offset for static TLS
- block offset. */
-#define R_390_TLS_LDM32 45 /* Direct 32 bit for local dynamic
- thread local data in LE code. */
-#define R_390_TLS_LDM64 46 /* Direct 64 bit for local dynamic
- thread local data in LE code. */
-#define R_390_TLS_IE32 47 /* 32 bit address of GOT entry for
- negated static TLS block offset. */
-#define R_390_TLS_IE64 48 /* 64 bit address of GOT entry for
- negated static TLS block offset. */
-#define R_390_TLS_IEENT 49 /* 32 bit rel. offset to GOT entry for
- negated static TLS block offset. */
-#define R_390_TLS_LE32 50 /* 32 bit negated offset relative to
- static TLS block. */
-#define R_390_TLS_LE64 51 /* 64 bit negated offset relative to
- static TLS block. */
-#define R_390_TLS_LDO32 52 /* 32 bit offset relative to TLS
- block. */
-#define R_390_TLS_LDO64 53 /* 64 bit offset relative to TLS
- block. */
-#define R_390_TLS_DTPMOD 54 /* ID of module containing symbol. */
-#define R_390_TLS_DTPOFF 55 /* Offset in TLS block. */
-#define R_390_TLS_TPOFF 56 /* Negated offset in static TLS
- block. */
-
-/* Keep this the last entry. */
-#define R_390_NUM 57
-
-/* CRIS relocations. */
-#define R_CRIS_NONE 0
-#define R_CRIS_8 1
-#define R_CRIS_16 2
-#define R_CRIS_32 3
-#define R_CRIS_8_PCREL 4
-#define R_CRIS_16_PCREL 5
-#define R_CRIS_32_PCREL 6
-#define R_CRIS_GNU_VTINHERIT 7
-#define R_CRIS_GNU_VTENTRY 8
-#define R_CRIS_COPY 9
-#define R_CRIS_GLOB_DAT 10
-#define R_CRIS_JUMP_SLOT 11
-#define R_CRIS_RELATIVE 12
-#define R_CRIS_16_GOT 13
-#define R_CRIS_32_GOT 14
-#define R_CRIS_16_GOTPLT 15
-#define R_CRIS_32_GOTPLT 16
-#define R_CRIS_32_GOTREL 17
-#define R_CRIS_32_PLT_GOTREL 18
-#define R_CRIS_32_PLT_PCREL 19
-
-#define R_CRIS_NUM 20
-
-/* AMD x86-64 relocations. */
-#define R_X86_64_NONE 0 /* No reloc */
-#define R_X86_64_64 1 /* Direct 64 bit */
-#define R_X86_64_PC32 2 /* PC relative 32 bit signed */
-#define R_X86_64_GOT32 3 /* 32 bit GOT entry */
-#define R_X86_64_PLT32 4 /* 32 bit PLT address */
-#define R_X86_64_COPY 5 /* Copy symbol at runtime */
-#define R_X86_64_GLOB_DAT 6 /* Create GOT entry */
-#define R_X86_64_JUMP_SLOT 7 /* Create PLT entry */
-#define R_X86_64_RELATIVE 8 /* Adjust by program base */
-#define R_X86_64_GOTPCREL 9 /* 32 bit signed PC relative
- offset to GOT */
-#define R_X86_64_32 10 /* Direct 32 bit zero extended */
-#define R_X86_64_32S 11 /* Direct 32 bit sign extended */
-#define R_X86_64_16 12 /* Direct 16 bit zero extended */
-#define R_X86_64_PC16 13 /* 16 bit sign extended pc relative */
-#define R_X86_64_8 14 /* Direct 8 bit sign extended */
-#define R_X86_64_PC8 15 /* 8 bit sign extended pc relative */
-#define R_X86_64_DTPMOD64 16 /* ID of module containing symbol */
-#define R_X86_64_DTPOFF64 17 /* Offset in module's TLS block */
-#define R_X86_64_TPOFF64 18 /* Offset in initial TLS block */
-#define R_X86_64_TLSGD 19 /* 32 bit signed PC relative offset
- to two GOT entries for GD symbol */
-#define R_X86_64_TLSLD 20 /* 32 bit signed PC relative offset
- to two GOT entries for LD symbol */
-#define R_X86_64_DTPOFF32 21 /* Offset in TLS block */
-#define R_X86_64_GOTTPOFF 22 /* 32 bit signed PC relative offset
- to GOT entry for IE symbol */
-#define R_X86_64_TPOFF32 23 /* Offset in initial TLS block */
-
-#define R_X86_64_NUM 24
-
-#endif /* elf.h */
diff --git a/libelf/elf32_checksum.c b/libelf/elf32_checksum.c
deleted file mode 100644
index 0395a940..00000000
--- a/libelf/elf32_checksum.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/* Compute simple checksum from permanent parts of the ELF file.
- Copyright (C) 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-//#include <endian.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <string.h>
-
-#include "gelf.h"
-#include "libelfP.h"
-#include "elf-knowledge.h"
-
-#ifndef LIBELFBITS
-# define LIBELFBITS 32
-#endif
-
-
-/* The SECTION_STRIP_P macro wants to call into libebl which we cannot
- do and do not have to do here. Provide a dummy replacement. */
-#define ebl_debugscn_p(ebl, name) true
-
-
-#define process_block(crc, data) \
- __libelf_crc32 (crc, data->d_buf, data->d_size)
-
-
-long int
-elfw2(LIBELFBITS,checksum) (elf)
- Elf *elf;
-{
- size_t shstrndx;
- Elf_Scn *scn;
- long int result = 0;
- unsigned char *ident;
- bool same_byte_order;
-
- if (elf == NULL)
- return -1l;
-
- /* Find the section header string table. */
- if (INTUSE(elf_getshstrndx) (elf, &shstrndx) < 0)
- {
- /* This can only happen if the ELF handle is not for real. */
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return -1l;
- }
-
- /* Determine whether the byte order of the file and that of the host
- is the same. */
- ident = elf->state.ELFW(elf,LIBELFBITS).ehdr->e_ident;
- same_byte_order = ((ident[EI_DATA] == ELFDATA2LSB
- && __BYTE_ORDER == __LITTLE_ENDIAN)
- || (ident[EI_DATA] == ELFDATA2MSB
- && __BYTE_ORDER == __BIG_ENDIAN));
-
- /* Iterate over all sections to find those which are not strippable. */
- scn = NULL;
- while ((scn = INTUSE(elf_nextscn) (elf, scn)) != NULL)
- {
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
- Elf_Data *data;
-
- /* Get the section header. */
- shdr = INTUSE(gelf_getshdr) (scn, &shdr_mem);
- if (shdr == NULL)
- {
- __libelf_seterrno (ELF_E_INVALID_SECTION_HEADER);
- return -1l;
- }
-
- if (SECTION_STRIP_P (NULL, NULL, NULL, shdr,
- elf_strptr (elf, shstrndx, shdr->sh_name),
- true, false))
- /* The section can be stripped. Don't use it. */
- continue;
-
- /* To compute the checksum we need to get to the data. For
- repeatable results we must use the external format. The data
- we get with 'elf'getdata' might be changed for endianess
- reasons. Therefore we use 'elf_rawdata' if possible. But
- this function can fail if the data was constructed by the
- program. In this case we have to use 'elf_getdata' and
- eventually convert the data to the external format. */
- data = INTUSE(elf_rawdata) (scn, NULL);
- if (data != NULL)
- {
- /* The raw data is available. */
- result = process_block (result, data);
-
- /* Maybe the user added more data. These blocks cannot be
- read using 'elf_rawdata'. Simply proceed with looking
- for more data block with 'elf_getdata'. */
- }
-
- /* Iterate through the list of data blocks. */
- while ((data = INTUSE(elf_getdata) (scn, data)) != NULL)
- /* If the file byte order is the same as the host byte order
- process the buffer directly. If the data is just a stream
- of bytes which the library will not convert we can use it
- as well. */
- if (likely (same_byte_order) || data->d_type == ELF_T_BYTE)
- result = process_block (result, data);
- else
- {
- /* Convert the data to file byte order. */
- if (INTUSE(elfw2(LIBELFBITS,xlatetof)) (data, data, ident[EI_DATA])
- == NULL)
- return -1l;
-
- result = process_block (result, data);
-
- /* And convert it back. */
- if (INTUSE(elfw2(LIBELFBITS,xlatetom)) (data, data, ident[EI_DATA])
- == NULL)
- return -1l;
- }
- }
-
- return result;
-}
-INTDEF(elfw2(LIBELFBITS,checksum))
diff --git a/libelf/elf32_fsize.c b/libelf/elf32_fsize.c
deleted file mode 100644
index b6810183..00000000
--- a/libelf/elf32_fsize.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Return the size of an object file type.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include "libelfP.h"
-
-#ifndef LIBELFBITS
-# define LIBELFBITS 32
-#endif
-
-
-size_t
-elfw2(LIBELFBITS, fsize) (type, count, version)
- Elf_Type type;
- size_t count;
- unsigned int version;
-{
- /* We do not have differences between file and memory sizes. Better
- not since otherwise `mmap' would not work. */
- if (unlikely (version == EV_NONE) || unlikely (version >= EV_NUM))
- {
- __libelf_seterrno (ELF_E_UNKNOWN_VERSION);
- return 0;
- }
-
- if (unlikely (type >= ELF_T_NUM))
- {
- __libelf_seterrno (ELF_E_UNKNOWN_TYPE);
- return 0;
- }
-
-#if EV_NUM != 2
- return (count
- * __libelf_type_sizes[version - 1][ELFW(ELFCLASS,LIBELFBITS) - 1][type]);
-#else
- return (count
- * __libelf_type_sizes[0][ELFW(ELFCLASS,LIBELFBITS) - 1][type]);
-#endif
-}
-#define local_strong_alias(n1, n2) strong_alias (n1, n2)
-//local_strong_alias (elfw2(LIBELFBITS, fsize), __elfw2(LIBELFBITS, msize))
diff --git a/libelf/elf32_getehdr.c b/libelf/elf32_getehdr.c
deleted file mode 100644
index efd60025..00000000
--- a/libelf/elf32_getehdr.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Get ELF header.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-#ifndef LIBELFBITS
-# define LIBELFBITS 32
-#endif
-
-
-ElfW2(LIBELFBITS,Ehdr) *
-elfw2(LIBELFBITS,getehdr) (elf)
- Elf *elf;
-{
- ElfW2(LIBELFBITS,Ehdr) *result;
-
- if (elf == NULL)
- return NULL;
-
- if (unlikely (elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- rwlock_rdlock (elf->lock);
-
- if (elf->class == 0)
- elf->class = ELFW(ELFCLASS,LIBELFBITS);
- else if (unlikely (elf->class != ELFW(ELFCLASS,LIBELFBITS)))
- {
- __libelf_seterrno (ELF_E_INVALID_CLASS);
- result = NULL;
- goto out;
- }
-
- result = elf->state.ELFW(elf,LIBELFBITS).ehdr;
-
- out:
- rwlock_unlock (elf->lock);
-
- return result;
-}
-INTDEF(elfw2(LIBELFBITS,getehdr))
diff --git a/libelf/elf32_getphdr.c b/libelf/elf32_getphdr.c
deleted file mode 100644
index 9a7b883c..00000000
--- a/libelf/elf32_getphdr.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/* Get ELF program header table.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "libelfP.h"
-#include "common.h"
-
-#ifndef LIBELFBITS
-# define LIBELFBITS 32
-#endif
-
-
-ElfW2(LIBELFBITS,Phdr) *
-elfw2(LIBELFBITS,getphdr) (elf)
- Elf *elf;
-{
- ElfW2(LIBELFBITS,Phdr) *result;
-
- if (elf == NULL)
- return NULL;
-
- if (unlikely (elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- /* If the program header entry has already been filled in the code
- below must already have been run. So the class is set, too. No
- need to waste any more time here. */
- result = elf->state.ELFW(elf,LIBELFBITS).phdr;
- if (likely (result != NULL))
- return result;
-
- rwlock_wrlock (elf->lock);
-
- if (elf->class == 0)
- elf->class = ELFW(ELFCLASS,LIBELFBITS);
- else if (elf->class != ELFW(ELFCLASS,LIBELFBITS))
- {
- __libelf_seterrno (ELF_E_INVALID_CLASS);
- result = NULL;
- goto out;
- }
-
- if (likely (result == NULL))
- {
- /* Read the section header table. */
- ElfW2(LIBELFBITS,Ehdr) *ehdr = elf->state.ELFW(elf,LIBELFBITS).ehdr;
- size_t phnum;
- size_t size;
-
- /* If no program header exists return NULL. */
- phnum = ehdr->e_phnum;
- if (phnum == 0)
- {
- __libelf_seterrno (ELF_E_NO_PHDR);
- goto out;
- }
-
- size = phnum * sizeof (ElfW2(LIBELFBITS,Phdr));
-
- if (elf->map_address != NULL)
- {
- /* All the data is already mapped. Use it. */
- if (ehdr->e_ident[EI_DATA] == MY_ELFDATA
- && (ALLOW_UNALIGNED
- || (ehdr->e_phoff
- & (__alignof__ (ElfW2(LIBELFBITS,Phdr)) - 1)) == 0))
- /* Simply use the mapped data. */
- elf->state.ELFW(elf,LIBELFBITS).phdr = (ElfW2(LIBELFBITS,Phdr) *)
- ((char *) elf->map_address + elf->start_offset + ehdr->e_phoff);
- else
- {
- size_t cnt;
- ElfW2(LIBELFBITS,Phdr) *notcvt;
- ElfW2(LIBELFBITS,Phdr) *phdr;
-
- /* Allocate memory for the program headers. We know the number
- of entries from the ELF header. */
- phdr = elf->state.ELFW(elf,LIBELFBITS).phdr =
- (ElfW2(LIBELFBITS,Phdr) *) malloc (size);
- if (elf->state.ELFW(elf,LIBELFBITS).phdr == NULL)
- {
- __libelf_seterrno (ELF_E_NOMEM);
- goto out;
- }
- elf->state.ELFW(elf,LIBELFBITS).phdr_flags |=
- ELF_F_MALLOCED | ELF_F_DIRTY;
-
- /* Now copy the data and at the same time convert the
- byte order. */
- if (ALLOW_UNALIGNED
- || (ehdr->e_phoff
- & (__alignof__ (ElfW2(LIBELFBITS,Phdr)) - 1)) == 0)
- notcvt = (ElfW2(LIBELFBITS,Phdr) *)
- ((char *) elf->map_address
- + elf->start_offset + ehdr->e_phoff);
- else
- {
- notcvt = (ElfW2(LIBELFBITS,Phdr) *) alloca (size);
- memcpy (notcvt, ((char *) elf->map_address +
- elf->start_offset + ehdr->e_phoff),
- size);
- }
-
- for (cnt = 0; cnt < phnum; ++cnt)
- {
- CONVERT_TO (phdr[cnt].p_type, notcvt[cnt].p_type);
- CONVERT_TO (phdr[cnt].p_offset, notcvt[cnt].p_offset);
- CONVERT_TO (phdr[cnt].p_vaddr, notcvt[cnt].p_vaddr);
- CONVERT_TO (phdr[cnt].p_paddr, notcvt[cnt].p_paddr);
- CONVERT_TO (phdr[cnt].p_filesz, notcvt[cnt].p_filesz);
- CONVERT_TO (phdr[cnt].p_memsz, notcvt[cnt].p_memsz);
- CONVERT_TO (phdr[cnt].p_flags, notcvt[cnt].p_flags);
- CONVERT_TO (phdr[cnt].p_align, notcvt[cnt].p_align);
- }
- }
- }
- else if (likely (elf->fildes != -1))
- {
- /* Allocate memory for the program headers. We know the number
- of entries from the ELF header. */
- elf->state.ELFW(elf,LIBELFBITS).phdr =
- (ElfW2(LIBELFBITS,Phdr) *) malloc (size);
- if (elf->state.ELFW(elf,LIBELFBITS).phdr == NULL)
- {
- __libelf_seterrno (ELF_E_NOMEM);
- goto out;
- }
- elf->state.ELFW(elf,LIBELFBITS).phdr_flags |= ELF_F_MALLOCED;
-
- /* Read the header. */
- if ((size_t) pread (elf->fildes,
- elf->state.ELFW(elf,LIBELFBITS).phdr, size,
- (elf->start_offset + ehdr->e_phoff)) != size)
- {
- /* Severe problems. We cannot read the data. */
- __libelf_seterrno (ELF_E_READ_ERROR);
- free (elf->state.ELFW(elf,LIBELFBITS).phdr);
- elf->state.ELFW(elf,LIBELFBITS).phdr = NULL;
- goto out;
- }
-
- /* If the byte order of the file is not the same as the one
- of the host convert the data now. */
- if (ehdr->e_ident[EI_DATA] != MY_ELFDATA)
- {
- ElfW2(LIBELFBITS,Phdr) *phdr;
- size_t cnt;
-
- phdr = elf->state.ELFW(elf,LIBELFBITS).phdr;
- for (cnt = 0; cnt < phnum; ++cnt)
- {
- CONVERT (phdr[cnt].p_type);
- CONVERT (phdr[cnt].p_offset);
- CONVERT (phdr[cnt].p_vaddr);
- CONVERT (phdr[cnt].p_paddr);
- CONVERT (phdr[cnt].p_filesz);
- CONVERT (phdr[cnt].p_memsz);
- CONVERT (phdr[cnt].p_flags);
- CONVERT (phdr[cnt].p_align);
- }
- }
- }
- else
- {
- /* The file descriptor was already enabled and not all data was
- read. */
- __libelf_seterrno (ELF_E_FD_DISABLED);
- goto out;
- }
-
- result = elf->state.ELFW(elf,LIBELFBITS).phdr;
- }
-
- out:
- rwlock_unlock (elf->lock);
-
- return result;
-}
-INTDEF(elfw2(LIBELFBITS,getphdr))
diff --git a/libelf/elf32_getshdr.c b/libelf/elf32_getshdr.c
deleted file mode 100644
index 1caf206c..00000000
--- a/libelf/elf32_getshdr.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/* Return section header.
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <unistd.h>
-
-#include "libelfP.h"
-#include "common.h"
-
-#ifndef LIBELFBITS
-# define LIBELFBITS 32
-#endif
-
-
-ElfW2(LIBELFBITS,Shdr) *
-elfw2(LIBELFBITS,getshdr) (scn)
- Elf_Scn *scn;
-{
- ElfW2(LIBELFBITS,Shdr) *result;
-
- if (scn == NULL)
- return NULL;
-
- if (unlikely (scn->elf->state.elf.ehdr == NULL))
- {
- __libelf_seterrno (ELF_E_WRONG_ORDER_EHDR);
- return NULL;
- }
-
- if (unlikely (scn->elf->class != ELFW(ELFCLASS,LIBELFBITS)))
- {
- __libelf_seterrno (ELF_E_INVALID_CLASS);
- return NULL;
- }
-
- result = scn->shdr.ELFW(e,LIBELFBITS);
- if (result == NULL)
- {
- /* Read the section header table. */
- Elf *elf = scn->elf;
- ElfW2(LIBELFBITS,Ehdr) *ehdr = elf->state.ELFW(elf,LIBELFBITS).ehdr;
- size_t shnum;
- ElfW2(LIBELFBITS,Shdr) *shdr;
- size_t size;
- size_t cnt;
-
- rwlock_wrlock (elf->lock);
-
- /* Try again, maybe the data is there now. */
- result = scn->shdr.ELFW(e,LIBELFBITS);
- if (result != NULL)
- goto out;
-
- if (INTUSE (elf_getshnum) (elf, &shnum) != 0)
- goto out;
- size = shnum * sizeof (ElfW2(LIBELFBITS,Shdr));
-
- /* Allocate memory for the program headers. We know the number
- of entries from the ELF header. */
- shdr = elf->state.ELFW(elf,LIBELFBITS).shdr =
- (ElfW2(LIBELFBITS,Shdr) *) malloc (size);
- if (elf->state.ELFW(elf,LIBELFBITS).shdr == NULL)
- {
- __libelf_seterrno (ELF_E_NOMEM);
- goto out;
- }
- elf->state.ELFW(elf,LIBELFBITS).shdr_malloced = 1;
-
- if (elf->map_address != NULL)
- {
- ElfW2(LIBELFBITS,Shdr) *notcvt;
-
- /* All the data is already mapped. If we could use it
- directly this would already have happened. */
- assert (ehdr->e_ident[EI_DATA] != MY_ELFDATA
- || (! ALLOW_UNALIGNED
- && (ehdr->e_shoff
- & (__alignof__ (ElfW2(LIBELFBITS,Shdr)) - 1)) != 0));
-
- /* Now copy the data and at the same time convert the byte
- order. */
- if (ALLOW_UNALIGNED
- || (ehdr->e_shoff
- & (__alignof__ (ElfW2(LIBELFBITS,Shdr)) - 1)) == 0)
- notcvt = (ElfW2(LIBELFBITS,Shdr) *)
- ((char *) elf->map_address
- + elf->start_offset + ehdr->e_shoff);
- else
- {
- notcvt = (ElfW2(LIBELFBITS,Shdr) *) alloca (size);
- memcpy (notcvt, ((char *) elf->map_address
- + elf->start_offset + ehdr->e_shoff),
- size);
- }
-
- for (cnt = 0; cnt < shnum; ++cnt)
- {
- CONVERT_TO (shdr[cnt].sh_name, notcvt[cnt].sh_name);
- CONVERT_TO (shdr[cnt].sh_type, notcvt[cnt].sh_type);
- CONVERT_TO (shdr[cnt].sh_flags, notcvt[cnt].sh_flags);
- CONVERT_TO (shdr[cnt].sh_addr, notcvt[cnt].sh_addr);
- CONVERT_TO (shdr[cnt].sh_offset, notcvt[cnt].sh_offset);
- CONVERT_TO (shdr[cnt].sh_size, notcvt[cnt].sh_size);
- CONVERT_TO (shdr[cnt].sh_link, notcvt[cnt].sh_link);
- CONVERT_TO (shdr[cnt].sh_info, notcvt[cnt].sh_info);
- CONVERT_TO (shdr[cnt].sh_addralign, notcvt[cnt].sh_addralign);
- CONVERT_TO (shdr[cnt].sh_entsize, notcvt[cnt].sh_entsize);
- }
- }
- else if (elf->fildes != -1)
- {
- /* Read the header. */
- if ((size_t) pread (elf->fildes,
- elf->state.ELFW(elf,LIBELFBITS).shdr, size,
- elf->start_offset + ehdr->e_shoff) != size)
- {
- /* Severe problems. We cannot read the data. */
- __libelf_seterrno (ELF_E_READ_ERROR);
- goto free_and_out;
- }
-
- /* If the byte order of the file is not the same as the one
- of the host convert the data now. */
- if (ehdr->e_ident[EI_DATA] != MY_ELFDATA)
- for (cnt = 0; cnt < shnum; ++cnt)
- {
- CONVERT (shdr[cnt].sh_name);
- CONVERT (shdr[cnt].sh_type);
- CONVERT (shdr[cnt].sh_flags);
- CONVERT (shdr[cnt].sh_addr);
- CONVERT (shdr[cnt].sh_offset);
- CONVERT (shdr[cnt].sh_size);
- CONVERT (shdr[cnt].sh_link);
- CONVERT (shdr[cnt].sh_info);
- CONVERT (shdr[cnt].sh_addralign);
- CONVERT (shdr[cnt].sh_entsize);
- }
- }
- else
- {
- /* The file descriptor was already enabled and not all data was
- read. Undo the allocation. */
- __libelf_seterrno (ELF_E_FD_DISABLED);
-
- free_and_out:
- free (shdr);
- elf->state.ELFW(elf,LIBELFBITS).shdr = NULL;
- elf->state.ELFW(elf,LIBELFBITS).shdr_malloced = 0;
-
- goto out;
- }
-
- /* Set the pointers in the `scn's. */
- for (cnt = 0; cnt < shnum; ++cnt)
- elf->state.ELFW(elf,LIBELFBITS).scns.data[cnt].shdr.ELFW(e,LIBELFBITS)
- = &elf->state.ELFW(elf,LIBELFBITS).shdr[cnt];
-
- result = scn->shdr.ELFW(e,LIBELFBITS);
- assert (result != NULL);
-
- out:
- rwlock_unlock (elf->lock);
- }
-
- return result;
-}
-INTDEF(elfw2(LIBELFBITS,getshdr))
diff --git a/libelf/elf32_newehdr.c b/libelf/elf32_newehdr.c
deleted file mode 100644
index 658ad462..00000000
--- a/libelf/elf32_newehdr.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Create new ELF header.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-#ifndef LIBELFBITS
-# define LIBELFBITS 32
-#endif
-
-
-ElfW2(LIBELFBITS,Ehdr) *
-elfw2(LIBELFBITS,newehdr) (elf)
- Elf *elf;
-{
- ElfW2(LIBELFBITS,Ehdr) *result;
-
- if (elf == NULL)
- return NULL;
-
- if (unlikely (elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- rwlock_wrlock (elf->lock);
-
- if (elf->class == 0)
- elf->class = ELFW(ELFCLASS,LIBELFBITS);
- else if (unlikely (elf->class != ELFW(ELFCLASS,LIBELFBITS)))
- {
- __libelf_seterrno (ELF_E_INVALID_CLASS);
- result = NULL;
- goto out;
- }
-
- /* Don't create an ELF header if one already exists. */
- if (elf->state.ELFW(elf,LIBELFBITS).ehdr == NULL)
- {
- /* We use the memory in the ELF descriptor. */
- elf->state.ELFW(elf,LIBELFBITS).ehdr =
- &elf->state.ELFW(elf,LIBELFBITS).ehdr_mem;
-
- /* We clear this memory. */
- memset (elf->state.ELFW(elf,LIBELFBITS).ehdr, '\0',
- sizeof (ElfW2(LIBELFBITS,Ehdr)));
-
- /* Mark the ELF header has modified. */
- elf->state.ELFW(elf,LIBELFBITS).ehdr_flags |= ELF_F_DIRTY;
- }
-
- result = elf->state.ELFW(elf,LIBELFBITS).ehdr;
-
- out:
- rwlock_unlock (elf->lock);
-
- return result;
-}
-INTDEF(elfw2(LIBELFBITS,newehdr))
diff --git a/libelf/elf32_newphdr.c b/libelf/elf32_newphdr.c
deleted file mode 100644
index 74a2387a..00000000
--- a/libelf/elf32_newphdr.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Create new ELF program header table.
- Copyright (C) 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-#ifndef LIBELFBITS
-# define LIBELFBITS 32
-#endif
-
-
-ElfW2(LIBELFBITS,Phdr) *
-elfw2(LIBELFBITS,newphdr) (elf, count)
- Elf *elf;
- size_t count;
-{
- ElfW2(LIBELFBITS,Phdr) *result;
-
- if (elf == NULL)
- return NULL;
-
- if (unlikely (elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- rwlock_wrlock (elf->lock);
-
- if (elf->class == 0)
- elf->class = ELFW(ELFCLASS,LIBELFBITS);
- else if (unlikely (elf->class != ELFW(ELFCLASS,LIBELFBITS)))
- {
- __libelf_seterrno (ELF_E_INVALID_CLASS);
- result = NULL;
- goto out;
- }
-
- if (unlikely (elf->state.ELFW(elf,LIBELFBITS).ehdr == NULL))
- {
- __libelf_seterrno (ELF_E_WRONG_ORDER_EHDR);
- result = NULL;
- goto out;
- }
-
- /* A COUNT of zero means remove existing table. */
- if (count == 0)
- {
- /* Free the old program header. */
- if (elf->state.ELFW(elf,LIBELFBITS).phdr != NULL)
- {
- if (elf->state.ELFW(elf,LIBELFBITS).phdr_flags & ELF_F_MALLOCED)
- free (elf->state.ELFW(elf,LIBELFBITS).phdr);
-
- /* Set the pointer to NULL. */
- elf->state.ELFW(elf,LIBELFBITS).phdr = NULL;
- /* Set the `e_phnum' member to the new value. */
- elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phnum = 0;
- /* Also set the size. */
- elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phentsize =
- sizeof (ElfW2(LIBELFBITS,Phdr));
-
- elf->state.ELFW(elf,LIBELFBITS).phdr_flags |= ELF_F_DIRTY;
- elf->flags |= ELF_F_DIRTY;
- __libelf_seterrno (ELF_E_NOERROR);
- }
-
- result = NULL;
- }
- else if (elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phnum != count
- || elf->state.ELFW(elf,LIBELFBITS).phdr == NULL)
- {
- /* Allocate a new program header with the appropriate number of
- elements. */
- result = (ElfW2(LIBELFBITS,Phdr) *)
- realloc (elf->state.ELFW(elf,LIBELFBITS).phdr,
- count * sizeof (ElfW2(LIBELFBITS,Phdr)));
- if (result == NULL)
- __libelf_seterrno (ELF_E_NOMEM);
- else
- {
- /* Now set the result. */
- elf->state.ELFW(elf,LIBELFBITS).phdr = result;
- /* Clear the whole memory. */
- memset (result, '\0', count * sizeof (ElfW2(LIBELFBITS,Phdr)));
- /* Set the `e_phnum' member to the new value. */
- elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phnum = count;
- /* Also set the size. */
- elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phentsize =
- elf_typesize (LIBELFBITS, ELF_T_PHDR, 1);
- /* Remember we allocated the array and mark the structure is
- modified. */
- elf->state.ELFW(elf,LIBELFBITS).phdr_flags |=
- ELF_F_DIRTY | ELF_F_MALLOCED;
- /* We have to rewrite the entire file if the size of the
- program header is changed. */
- elf->flags |= ELF_F_DIRTY;
- }
- }
- else
- {
- /* We have the same number of entries. Just clear the array. */
- assert (elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phentsize
- == elf_typesize (LIBELFBITS, ELF_T_PHDR, 1));
-
- /* Mark the structure as modified. */
- elf->state.ELFW(elf,LIBELFBITS).phdr_flags |= ELF_F_DIRTY;
-
- result = elf->state.ELFW(elf,LIBELFBITS).phdr;
- }
-
- out:
- rwlock_unlock (elf->lock);
-
- return result;
-}
-INTDEF(elfw2(LIBELFBITS,newphdr))
diff --git a/libelf/elf32_updatefile.c b/libelf/elf32_updatefile.c
deleted file mode 100644
index 1a628811..00000000
--- a/libelf/elf32_updatefile.c
+++ /dev/null
@@ -1,623 +0,0 @@
-/* Write changed data structures.
- Copyright (C) 2000, 2001, 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <libelf.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/param.h>
-
-#include "libelfP.h"
-
-
-#ifndef LIBELFBITS
-# define LIBELFBITS 32
-#endif
-
-
-static int
-compare_sections (const void *a, const void *b)
-{
- const Elf_Scn **scna = (const Elf_Scn **) a;
- const Elf_Scn **scnb = (const Elf_Scn **) b;
-
- if ((*scna)->shdr.ELFW(e,LIBELFBITS)->sh_offset
- < (*scnb)->shdr.ELFW(e,LIBELFBITS)->sh_offset)
- return -1;
-
- if ((*scna)->shdr.ELFW(e,LIBELFBITS)->sh_offset
- > (*scnb)->shdr.ELFW(e,LIBELFBITS)->sh_offset)
- return 1;
-
- if ((*scna)->index < (*scnb)->index)
- return -1;
-
- if ((*scna)->index > (*scnb)->index)
- return 1;
-
- return 0;
-}
-
-
-/* Insert the sections in the list into the provided array and sort
- them according to their start offsets. For sections with equal
- start offsets the section index is used. */
-static void
-sort_sections (Elf_Scn **scns, Elf_ScnList *list)
-{
- Elf_Scn **scnp = scns;
- do
- {
- size_t cnt;
-
- for (cnt = 0; cnt < list->cnt; ++cnt)
- *scnp++ = &list->data[cnt];
- }
- while ((list = list->next) != NULL);
-
- qsort (scns, scnp - scns, sizeof (*scns), compare_sections);
-}
-
-
-int
-internal_function_def
-__elfw2(LIBELFBITS,updatemmap) (Elf *elf, int change_bo, size_t shnum)
-{
- ElfW2(LIBELFBITS,Ehdr) *ehdr;
- xfct_t fctp;
- char *last_position;
-
- /* We need the ELF header several times. */
- ehdr = elf->state.ELFW(elf,LIBELFBITS).ehdr;
-
- /* Write out the ELF header. */
- if ((elf->state.ELFW(elf,LIBELFBITS).ehdr_flags | elf->flags) & ELF_F_DIRTY)
- {
- /* If the type sizes should be different at some time we have to
- rewrite this code. */
- assert (sizeof (ElfW2(LIBELFBITS,Ehdr))
- == elf_typesize (LIBELFBITS, ELF_T_EHDR, 1));
-
- if (unlikely (change_bo))
- {
- /* Today there is only one version of the ELF header. */
-#if EV_NUM != 2
- fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_EHDR];
-#else
-# undef fctp
-# define fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_EHDR]
-#endif
-
- /* Do the real work. */
- (*fctp) ((char *) elf->map_address + elf->start_offset, ehdr,
- sizeof (ElfW2(LIBELFBITS,Ehdr)), 1);
- }
- else
- memcpy (elf->map_address + elf->start_offset, ehdr,
- sizeof (ElfW2(LIBELFBITS,Ehdr)));
-
- elf->state.ELFW(elf,LIBELFBITS).ehdr_flags &= ~ELF_F_DIRTY;
- }
-
- /* Write out the program header table. */
- if (elf->state.ELFW(elf,LIBELFBITS).phdr != NULL
- && ((elf->state.ELFW(elf,LIBELFBITS).phdr_flags | elf->flags)
- & ELF_F_DIRTY))
- {
- /* If the type sizes should be different at some time we have to
- rewrite this code. */
- assert (sizeof (ElfW2(LIBELFBITS,Phdr))
- == elf_typesize (LIBELFBITS, ELF_T_PHDR, 1));
-
- /* Maybe the user wants a gap between the ELF header and the program
- header. */
- if (ehdr->e_phoff > ehdr->e_ehsize)
- memset (elf->map_address + elf->start_offset + ehdr->e_ehsize,
- __libelf_fill_byte, ehdr->e_phoff - ehdr->e_ehsize);
-
- if (unlikely (change_bo))
- {
- /* Today there is only one version of the ELF header. */
-#if EV_NUM != 2
- fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_PHDR];
-#else
-# undef fctp
-# define fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_PHDR]
-#endif
-
- /* Do the real work. */
- (*fctp) (elf->map_address + elf->start_offset + ehdr->e_phoff,
- elf->state.ELFW(elf,LIBELFBITS).phdr,
- sizeof (ElfW2(LIBELFBITS,Phdr)) * ehdr->e_phnum, 1);
- }
- else
- memcpy (elf->map_address + elf->start_offset + ehdr->e_phoff,
- elf->state.ELFW(elf,LIBELFBITS).phdr,
- sizeof (ElfW2(LIBELFBITS,Phdr)) * ehdr->e_phnum);
-
- elf->state.ELFW(elf,LIBELFBITS).phdr_flags &= ~ELF_F_DIRTY;
- }
-
- /* From now on we have to keep track of the last position to eventually
- fill the gaps with the prescribed fill byte. */
- last_position = ((char *) elf->map_address + elf->start_offset
- + MAX (elf_typesize (LIBELFBITS, ELF_T_EHDR, 1),
- ehdr->e_phoff)
- + elf_typesize (LIBELFBITS, ELF_T_PHDR, ehdr->e_phnum));
-
- /* Write all the sections. Well, only those which are modified. */
- if (shnum > 0)
- {
- ElfW2(LIBELFBITS,Shdr) *shdr_dest;
- Elf_ScnList *list = &elf->state.ELFW(elf,LIBELFBITS).scns;
- Elf_Scn **scns = (Elf_Scn **) alloca (shnum * sizeof (Elf_Scn *));
- char *shdr_start = ((char *) elf->map_address + elf->start_offset
- + ehdr->e_shoff);
- char *shdr_end = shdr_start + ehdr->e_shnum * ehdr->e_shentsize;
- size_t cnt;
-
-#if EV_NUM != 2
- xfct_t shdr_fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR];
-#else
-# undef shdr_fctp
-# define shdr_fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR]
-#endif
- shdr_dest = (ElfW2(LIBELFBITS,Shdr) *)
- ((char *) elf->map_address + elf->start_offset + ehdr->e_shoff);
-
- /* Get all sections into the array and sort them. */
- sort_sections (scns, list);
-
- /* Iterate over all the section in the order in which they
- appear in the output file. */
- for (cnt = 0; cnt < shnum; ++cnt)
- {
- Elf_Scn *scn = scns[cnt];
- ElfW2(LIBELFBITS,Shdr) *shdr;
- char *scn_start;
- Elf_Data_List *dl;
-
- shdr = scn->shdr.ELFW(e,LIBELFBITS);
-
- scn_start = ((char *) elf->map_address
- + elf->start_offset + shdr->sh_offset);
- dl = &scn->data_list;
-
- if (shdr->sh_type != SHT_NOBITS && scn->data_list_rear != NULL)
- do
- {
- if ((scn->flags | dl->flags | elf->flags) & ELF_F_DIRTY)
- {
- if (scn_start + dl->data.d.d_off != last_position)
- {
- if (scn_start + dl->data.d.d_off > last_position)
- {
- /* This code assumes that the data blocks for
- a section are ordered by offset. */
- size_t written = 0;
-
- if (last_position < shdr_start)
- {
- written = MIN (scn_start + dl->data.d.d_off
- - last_position,
- shdr_start - last_position);
-
- memset (last_position, __libelf_fill_byte,
- written);
- }
-
- if (last_position + written
- != scn_start + dl->data.d.d_off
- && shdr_end < scn_start + dl->data.d.d_off)
- memset (shdr_end, __libelf_fill_byte,
- scn_start + dl->data.d.d_off - shdr_end);
-
- last_position = scn_start + dl->data.d.d_off;
- }
- }
-
- if (unlikely (change_bo))
- {
-#if EV_NUM != 2
- fctp = __elf_xfctstom[__libelf_version - 1][dl->data.d.d_version - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][dl->data.d.d_type];
-#else
-# undef fctp
- fctp = __elf_xfctstom[0][0][ELFW(ELFCLASS, LIBELFBITS) - 1][dl->data.d.d_type];
-#endif
-
- /* Do the real work. */
- (*fctp) (last_position, dl->data.d.d_buf,
- dl->data.d.d_size, 1);
-
- last_position += dl->data.d.d_size;
- }
- else
- last_position = mempcpy (last_position,
- dl->data.d.d_buf,
- dl->data.d.d_size);
- }
- else
- last_position += dl->data.d.d_size;
-
- dl->flags &= ~ELF_F_DIRTY;
-
- dl = dl->next;
- }
- while (dl != NULL);
- else if (shdr->sh_type != SHT_NOBITS && scn->index != 0)
- /* We have to trust the existing section header information. */
- last_position += shdr->sh_size;
-
- /* Write the section header table entry if necessary. */
- if ((scn->shdr_flags | elf->flags) & ELF_F_DIRTY)
- {
- if (unlikely (change_bo))
- (*shdr_fctp) (&shdr_dest[scn->index],
- scn->shdr.ELFW(e,LIBELFBITS),
- sizeof (ElfW2(LIBELFBITS,Shdr)), 1);
- else
- memcpy (&shdr_dest[scn->index],
- scn->shdr.ELFW(e,LIBELFBITS),
- sizeof (ElfW2(LIBELFBITS,Shdr)));
-
- scn->shdr_flags &= ~ELF_F_DIRTY;
- }
-
- scn->flags &= ~ELF_F_DIRTY;
- }
-
- /* Fill the gap between last section and section header table if
- necessary. */
- if ((elf->flags & ELF_F_DIRTY)
- && last_position < ((char *) elf->map_address + elf->start_offset
- + ehdr->e_shoff))
- memset (last_position, __libelf_fill_byte,
- (char *) elf->map_address + elf->start_offset + ehdr->e_shoff
- - last_position);
- }
-
- /* That was the last part. Clear the overall flag. */
- elf->flags &= ~ELF_F_DIRTY;
-
- return 0;
-}
-
-
-/* Size of the buffer we use to generate the blocks of fill bytes. */
-#define FILLBUFSIZE 4096
-
-/* If we have to convert the section buffer contents we have to use
- temporary buffer. Only buffers up to MAX_TMPBUF bytes are allocated
- on the stack. */
-#define MAX_TMPBUF 32768
-
-
-/* Helper function to write out fill bytes. */
-static int
-fill (int fd, off_t pos, size_t len, char *fillbuf, size_t *filledp)
-{
- size_t filled = *filledp;
- size_t fill_len = MIN (len, FILLBUFSIZE);
-
- if (unlikely (fill_len > filled) && filled < FILLBUFSIZE)
- {
- /* Initialize a few more bytes. */
- memset (fillbuf + filled, __libelf_fill_byte, fill_len - filled);
- *filledp = filled = fill_len;
- }
-
- do
- {
- /* This many bytes we want to write in this round. */
- size_t n = MIN (filled, len);
-
- if (unlikely ((size_t) pwrite (fd, fillbuf, n, pos) != n))
- {
- __libelf_seterrno (ELF_E_WRITE_ERROR);
- return 1;
- }
-
- pos += n;
- len -= n;
- }
- while (len > 0);
-
- return 0;
-}
-
-
-int
-internal_function_def
-__elfw2(LIBELFBITS,updatefile) (Elf *elf, int change_bo, size_t shnum)
-{
- char fillbuf[FILLBUFSIZE];
- size_t filled = 0;
- ElfW2(LIBELFBITS,Ehdr) *ehdr;
- xfct_t fctp;
- off_t last_offset;
-
- /* We need the ELF header several times. */
- ehdr = elf->state.ELFW(elf,LIBELFBITS).ehdr;
-
- /* Write out the ELF header. */
- if ((elf->state.ELFW(elf,LIBELFBITS).ehdr_flags | elf->flags) & ELF_F_DIRTY)
- {
- ElfW2(LIBELFBITS,Ehdr) tmp_ehdr;
- ElfW2(LIBELFBITS,Ehdr) *out_ehdr = ehdr;
-
- /* If the type sizes should be different at some time we have to
- rewrite this code. */
- assert (sizeof (ElfW2(LIBELFBITS,Ehdr))
- == elf_typesize (LIBELFBITS, ELF_T_EHDR, 1));
-
- if (unlikely (change_bo))
- {
- /* Today there is only one version of the ELF header. */
-#if EV_NUM != 2
- fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_EHDR];
-#else
-# undef fctp
-# define fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_EHDR]
-#endif
-
- /* Write the converted ELF header in a temporary buffer. */
- (*fctp) (&tmp_ehdr, ehdr, sizeof (ElfW2(LIBELFBITS,Ehdr)), 1);
-
- /* This is the buffer we want to write. */
- out_ehdr = &tmp_ehdr;
- }
-
- /* Write out the ELF header. */
- if (unlikely (pwrite (elf->fildes, out_ehdr,
- sizeof (ElfW2(LIBELFBITS,Ehdr)), 0)
- != sizeof (ElfW2(LIBELFBITS,Ehdr))))
- {
- __libelf_seterrno (ELF_E_WRITE_ERROR);
- return 1;
- }
-
- elf->state.ELFW(elf,LIBELFBITS).ehdr_flags &= ~ELF_F_DIRTY;
- }
-
- /* If the type sizes should be different at some time we have to
- rewrite this code. */
- assert (sizeof (ElfW2(LIBELFBITS,Phdr))
- == elf_typesize (LIBELFBITS, ELF_T_PHDR, 1));
-
- /* Write out the program header table. */
- if (elf->state.ELFW(elf,LIBELFBITS).phdr != NULL
- && ((elf->state.ELFW(elf,LIBELFBITS).phdr_flags | elf->flags)
- & ELF_F_DIRTY))
- {
- ElfW2(LIBELFBITS,Phdr) *tmp_phdr = NULL;
- ElfW2(LIBELFBITS,Phdr) *out_phdr = elf->state.ELFW(elf,LIBELFBITS).phdr;
-
- /* Maybe the user wants a gap between the ELF header and the program
- header. */
- if (ehdr->e_phoff > ehdr->e_ehsize
- && unlikely (fill (elf->fildes, ehdr->e_ehsize,
- ehdr->e_phoff - ehdr->e_ehsize, fillbuf, &filled)
- != 0))
- return 1;
-
- if (unlikely (change_bo))
- {
- /* Today there is only one version of the ELF header. */
-#if EV_NUM != 2
- fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_PHDR];
-#else
-# undef fctp
-# define fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_PHDR]
-#endif
-
- /* Allocate sufficient memory. */
- tmp_phdr = (ElfW2(LIBELFBITS,Phdr) *)
- malloc (sizeof (ElfW2(LIBELFBITS,Phdr)) * ehdr->e_phnum);
- if (tmp_phdr == NULL)
- {
- __libelf_seterrno (ELF_E_NOMEM);
- return 1;
- }
-
- /* Write the converted ELF header in a temporary buffer. */
- (*fctp) (tmp_phdr, elf->state.ELFW(elf,LIBELFBITS).phdr,
- sizeof (ElfW2(LIBELFBITS,Phdr)) * ehdr->e_phnum, 1);
-
- /* This is the buffer we want to write. */
- out_phdr = tmp_phdr;
- }
-
- /* Write out the ELF header. */
- if (unlikely ((size_t) pwrite (elf->fildes, out_phdr,
- sizeof (ElfW2(LIBELFBITS,Phdr))
- * ehdr->e_phnum, ehdr->e_phoff)
- != sizeof (ElfW2(LIBELFBITS,Phdr)) * ehdr->e_phnum))
- {
- __libelf_seterrno (ELF_E_WRITE_ERROR);
- return 1;
- }
-
- /* This is a no-op we we have not allocated any memory. */
- free (tmp_phdr);
-
- elf->state.ELFW(elf,LIBELFBITS).phdr_flags &= ~ELF_F_DIRTY;
- }
-
- /* From now on we have to keep track of the last position to eventually
- fill the gaps with the prescribed fill byte. */
- if (elf->state.ELFW(elf,LIBELFBITS).phdr == NULL)
- last_offset = elf_typesize (LIBELFBITS, ELF_T_EHDR, 1);
- else
- last_offset = (ehdr->e_phoff
- + sizeof (ElfW2(LIBELFBITS,Phdr)) * ehdr->e_phnum);
-
- /* Write all the sections. Well, only those which are modified. */
- if (shnum > 0)
- {
- off_t shdr_offset;
- Elf_ScnList *list = &elf->state.ELFW(elf,LIBELFBITS).scns;
- ElfW2(LIBELFBITS,Shdr) *shdr_data;
- Elf_Scn **scns = (Elf_Scn **) alloca (shnum * sizeof (Elf_Scn *));
- int shdr_flags;
- size_t cnt;
-
- shdr_offset = elf->start_offset + ehdr->e_shoff;
-#if EV_NUM != 2
- xfct_t shdr_fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR];
-#else
-# undef shdr_fctp
-# define shdr_fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR]
-#endif
-
- if (change_bo || elf->state.ELFW(elf,LIBELFBITS).shdr == NULL)
- shdr_data = (ElfW2(LIBELFBITS,Shdr) *)
- alloca (shnum * sizeof (ElfW2(LIBELFBITS,Shdr)));
- else
- shdr_data = elf->state.ELFW(elf,LIBELFBITS).shdr;
- shdr_flags = elf->flags;
-
- /* Get all sections into the array and sort them. */
- sort_sections (scns, list);
-
- for (cnt = 0; cnt < shnum; ++cnt)
- {
- Elf_Scn *scn = scns[cnt];
- ElfW2(LIBELFBITS,Shdr) *shdr;
- off_t scn_start;
- Elf_Data_List *dl;
-
- shdr = scn->shdr.ELFW(e,LIBELFBITS);
-
- scn_start = elf->start_offset + shdr->sh_offset;
- dl = &scn->data_list;
-
- if (shdr->sh_type != SHT_NOBITS && scn->data_list_rear != NULL
- && scn->index != 0)
- do
- {
- if ((scn->flags | dl->flags | elf->flags) & ELF_F_DIRTY)
- {
- char tmpbuf[MAX_TMPBUF];
- void *buf = dl->data.d.d_buf;
-
- if (scn_start + dl->data.d.d_off != last_offset)
- {
- assert (last_offset < scn_start + dl->data.d.d_off);
-
- if (unlikely (fill (elf->fildes, last_offset,
- (scn_start + dl->data.d.d_off)
- - last_offset, fillbuf,
- &filled) != 0))
- return 1;
-
- last_offset = scn_start + dl->data.d.d_off;
- }
-
- if (unlikely (change_bo))
- {
-#if EV_NUM != 2
- fctp = __elf_xfctstom[__libelf_version - 1][dl->data.d.d_version - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][dl->data.d.d_type];
-#else
-# undef fctp
- fctp = __elf_xfctstom[0][0][ELFW(ELFCLASS, LIBELFBITS) - 1][dl->data.d.d_type];
-#endif
-
- buf = tmpbuf;
- if (dl->data.d.d_size > MAX_TMPBUF)
- {
- buf = malloc (dl->data.d.d_size);
- if (buf == NULL)
- {
- __libelf_seterrno (ELF_E_NOMEM);
- return 1;
- }
- }
-
- /* Do the real work. */
- (*fctp) (buf, dl->data.d.d_buf, dl->data.d.d_size, 1);
- }
-
- if (unlikely ((size_t) pwrite (elf->fildes, buf,
- dl->data.d.d_size,
- last_offset)
- != dl->data.d.d_size))
- {
- if (buf != dl->data.d.d_buf && buf != tmpbuf)
- free (buf);
-
- __libelf_seterrno (ELF_E_WRITE_ERROR);
- return 1;
- }
-
- if (buf != dl->data.d.d_buf && buf != tmpbuf)
- free (buf);
- }
-
- last_offset += dl->data.d.d_size;
-
- dl->flags &= ~ELF_F_DIRTY;
-
- dl = dl->next;
- }
- while (dl != NULL);
- else if (shdr->sh_type != SHT_NOBITS && scn->index != 0)
- last_offset = scn_start + shdr->sh_size;
-
- /* Collect the section header table information. */
- if (unlikely (change_bo))
- (*shdr_fctp) (&shdr_data[scn->index],
- scn->shdr.ELFW(e,LIBELFBITS),
- sizeof (ElfW2(LIBELFBITS,Shdr)), 1);
- else if (elf->state.ELFW(elf,LIBELFBITS).shdr == NULL)
- memcpy (&shdr_data[scn->index], scn->shdr.ELFW(e,LIBELFBITS),
- sizeof (ElfW2(LIBELFBITS,Shdr)));
-
- shdr_flags |= scn->shdr_flags;
- scn->shdr_flags &= ~ELF_F_DIRTY;
- }
-
- /* Fill the gap between last section and section header table if
- necessary. */
- if ((elf->flags & ELF_F_DIRTY) && last_offset < shdr_offset
- && unlikely (fill (elf->fildes, last_offset,
- shdr_offset - last_offset,
- fillbuf, &filled) != 0))
- return 1;
-
- /* Write out the section header table. */
- if (shdr_flags & ELF_F_DIRTY
- && unlikely ((size_t) pwrite (elf->fildes, shdr_data,
- sizeof (ElfW2(LIBELFBITS,Shdr))
- * shnum, shdr_offset)
- != sizeof (ElfW2(LIBELFBITS,Shdr)) * shnum))
- {
- __libelf_seterrno (ELF_E_WRITE_ERROR);
- return 1;
- }
- }
-
- /* That was the last part. Clear the overall flag. */
- elf->flags &= ~ELF_F_DIRTY;
-
- return 0;
-}
diff --git a/libelf/elf32_updatenull.c b/libelf/elf32_updatenull.c
deleted file mode 100644
index 6811ad1f..00000000
--- a/libelf/elf32_updatenull.c
+++ /dev/null
@@ -1,370 +0,0 @@
-/* Update data structures for changes.
- Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-//#include <endian.h>
-#include <libelf.h>
-#include <stdbool.h>
-#include <string.h>
-#include <sys/param.h>
-
-#include "libelfP.h"
-#include "elf-knowledge.h"
-
-#ifndef LIBELFBITS
-# define LIBELFBITS 32
-#endif
-
-
-
-static int
-ELFW(default_ehdr,LIBELFBITS) (Elf *elf, ElfW2(LIBELFBITS,Ehdr) *ehdr,
- size_t shnum, int *change_bop)
-{
- /* Always write the magic bytes. */
- if (memcmp (&ehdr->e_ident[EI_MAG0], ELFMAG, SELFMAG) != 0)
- {
- memcpy (&ehdr->e_ident[EI_MAG0], ELFMAG, SELFMAG);
- elf->state.ELFW(elf,LIBELFBITS).ehdr_flags |= ELF_F_DIRTY;
- }
-
- /* Always set the file class. */
- update_if_changed (ehdr->e_ident[EI_CLASS], ELFW(ELFCLASS,LIBELFBITS),
- elf->state.ELFW(elf,LIBELFBITS).ehdr_flags);
-
- /* Set the data encoding if necessary. */
- if (unlikely (ehdr->e_ident[EI_DATA] == ELFDATANONE))
- {
- ehdr->e_ident[EI_DATA] =
- BYTE_ORDER == BIG_ENDIAN ? ELFDATA2MSB : ELFDATA2LSB;
- elf->state.ELFW(elf,LIBELFBITS).ehdr_flags |= ELF_F_DIRTY;
- }
- else if (unlikely (ehdr->e_ident[EI_DATA] >= ELFDATANUM))
- {
- __libelf_seterrno (ELF_E_DATA_ENCODING);
- return 1;
- }
- else
- *change_bop = ((BYTE_ORDER == LITTLE_ENDIAN
- && ehdr->e_ident[EI_DATA] != ELFDATA2LSB)
- || (BYTE_ORDER == BIG_ENDIAN
- && ehdr->e_ident[EI_DATA] != ELFDATA2MSB));
-
- /* Unconditionally overwrite the ELF version. */
- update_if_changed (ehdr->e_ident[EI_VERSION], EV_CURRENT,
- elf->state.ELFW(elf,LIBELFBITS).ehdr_flags);
-
- if (unlikely (ehdr->e_version == EV_NONE)
- || unlikely (ehdr->e_version >= EV_NUM))
- {
- __libelf_seterrno (ELF_E_UNKNOWN_VERSION);
- return 1;
- }
-
- if (unlikely (shnum >= SHN_LORESERVE))
- {
- update_if_changed (ehdr->e_shnum, 0,
- elf->state.ELFW(elf,LIBELFBITS).ehdr_flags);
- }
- else
- update_if_changed (ehdr->e_shnum, shnum,
- elf->state.ELFW(elf,LIBELFBITS).ehdr_flags);
-
- if (unlikely (ehdr->e_ehsize != elf_typesize (LIBELFBITS, ELF_T_EHDR, 1)))
- {
- ehdr->e_ehsize = elf_typesize (LIBELFBITS, ELF_T_EHDR, 1);
- elf->state.ELFW(elf,LIBELFBITS).ehdr_flags |= ELF_F_DIRTY;
- }
-
- return 0;
-}
-
-
-off_t
-internal_function_def
-__elfw2(LIBELFBITS,updatenull) (Elf *elf, int *change_bop, size_t shnum)
-{
- ElfW2(LIBELFBITS,Ehdr) *ehdr = INTUSE(elfw2(LIBELFBITS,getehdr)) (elf);
- int changed = 0;
- int ehdr_flags = 0;
- off_t size;
-
- /* Set the default values. */
- if (ELFW(default_ehdr,LIBELFBITS) (elf, ehdr, shnum, change_bop) != 0)
- return -1;
-
- /* At least the ELF header is there. */
- size = elf_typesize (LIBELFBITS, ELF_T_EHDR, 1);
-
- /* Set the program header position. */
- if (elf->state.ELFW(elf,LIBELFBITS).phdr != NULL)
- {
- /* Only executables or shared objects have a program header. */
- if (ehdr->e_type != ET_EXEC && unlikely (ehdr->e_type != ET_DYN))
- {
- __libelf_seterrno (ELF_E_INVALID_PHDR);
- return -1;
- }
-
- if (elf->flags & ELF_F_LAYOUT)
- {
- /* The user is supposed to fill out e_phoff. Use it and
- e_phnum to determine the maximum extend. */
- size = MAX ((size_t) size,
- ehdr->e_phoff
- + elf_typesize (LIBELFBITS, ELF_T_PHDR, ehdr->e_phnum));
- }
- else
- {
- update_if_changed (ehdr->e_phoff,
- elf_typesize (LIBELFBITS, ELF_T_EHDR, 1),
- ehdr_flags);
-
- /* We need no alignment here. */
- size += elf_typesize (LIBELFBITS, ELF_T_PHDR, ehdr->e_phnum);
- }
- }
-
- if (shnum > 0)
- {
- Elf_ScnList *list;
- bool first = true;
-
- assert (elf->state.ELFW(elf,LIBELFBITS).scns.cnt > 0);
-
- if (shnum >= SHN_LORESERVE)
- {
- /* We have to fill in the number of sections in the header
- of the zeroth section. */
- elf->state.ELFW(elf,LIBELFBITS).scns.data[0].shdr.ELFW(e,LIBELFBITS)->sh_size
- = shnum;
- elf->state.ELFW(elf,LIBELFBITS).scns.data[0].shdr_flags
- |= ELF_F_DIRTY;
- }
-
-
- /* Go over all sections and find out how large they are. */
- list = &elf->state.ELFW(elf,LIBELFBITS).scns;
-
- do
- {
- size_t cnt;
-
- for (cnt = first == true; cnt < list->cnt; ++cnt)
- {
- Elf_Scn *scn = &list->data[cnt];
- ElfW2(LIBELFBITS,Shdr) *shdr = scn->shdr.ELFW(e,LIBELFBITS);
- off_t offset = 0;
- ElfW2(LIBELFBITS,Word) sh_entsize;
- ElfW2(LIBELFBITS,Word) sh_align;
-
- assert (shdr != NULL);
- sh_entsize = shdr->sh_entsize;
- sh_align = shdr->sh_addralign ?: 1;
-
- /* Set the sh_entsize value if we can reliably detect it. */
- switch (shdr->sh_type)
- {
- case SHT_SYMTAB:
- sh_entsize = elf_typesize (LIBELFBITS, ELF_T_SYM, 1);
- break;
- case SHT_RELA:
- sh_entsize = elf_typesize (LIBELFBITS, ELF_T_RELA, 1);
- break;
- case SHT_GROUP:
- /* Only relocatable files can contain section groups. */
- if (ehdr->e_type != ET_REL)
- {
- __libelf_seterrno (ELF_E_GROUP_NOT_REL);
- return -1;
- }
- /* FALLTHROUGH */
- case SHT_SYMTAB_SHNDX:
- sh_entsize = elf_typesize (32, ELF_T_WORD, 1);
- break;
- case SHT_HASH:
- sh_entsize = SH_ENTSIZE_HASH (ehdr);
- break;
- case SHT_DYNAMIC:
- sh_entsize = elf_typesize (LIBELFBITS, ELF_T_DYN, 1);
- break;
- case SHT_REL:
- sh_entsize = elf_typesize (LIBELFBITS, ELF_T_REL, 1);
- break;
- case SHT_DYNSYM:
- sh_entsize = elf_typesize (LIBELFBITS, ELF_T_SYM, 1);
- break;
- case SHT_SUNW_move:
- sh_entsize = elf_typesize (LIBELFBITS, ELF_T_MOVE, 1);
- break;
- case SHT_SUNW_syminfo:
- sh_entsize = elf_typesize (LIBELFBITS, ELF_T_SYMINFO, 1);
- break;
- default:
- break;
- }
-
- /* If the section header contained the wrong entry size
- correct it and mark the header as modified. */
- update_if_changed (shdr->sh_entsize, sh_entsize,
- scn->shdr_flags);
-
- /* Iterate over all data blocks. */
- if (list->data[cnt].data_list_rear != NULL)
- {
- Elf_Data_List *dl = &scn->data_list;
-
- while (dl != NULL)
- {
- if (unlikely (dl->data.d.d_version == EV_NONE)
- || unlikely (dl->data.d.d_version >= EV_NUM))
- {
- __libelf_seterrno (ELF_E_UNKNOWN_VERSION);
- return -1;
- }
-
- if (unlikely (! powerof2 (dl->data.d.d_align)))
- {
- __libelf_seterrno (ELF_E_INVALID_ALIGN);
- return -1;
- }
-
- sh_align = MAX (sh_align, dl->data.d.d_align);
-
- if (elf->flags & ELF_F_LAYOUT)
- {
- /* The user specified the offset and the size.
- All we have to do is check whether this block
- fits in the size specified for the section. */
- if (unlikely ((GElf_Word) (dl->data.d.d_off
- + dl->data.d.d_size)
- > shdr->sh_size))
- {
- __libelf_seterrno (ELF_E_SECTION_TOO_SMALL);
- return -1;
- }
- }
- else
- {
- /* Determine the padding. */
- offset = ((offset + dl->data.d.d_align - 1)
- & ~(dl->data.d.d_align - 1));
-
- update_if_changed (dl->data.d.d_off, offset,
- changed);
-
- offset += dl->data.d.d_size;
- }
-
- /* Next data block. */
- dl = dl->next;
- }
- }
-
- if (elf->flags & ELF_F_LAYOUT)
- {
- size = MAX ((GElf_Word) size,
- shdr->sh_offset
- + (shdr->sh_type != SHT_NOBITS
- ? shdr->sh_size : 0));
-
- /* The alignment must be a power of two. This is a
- requirement from the ELF specification. Additionally
- we test for the alignment of the section being large
- enough for the largest alignment required by a data
- block. */
- if (unlikely (! powerof2 (shdr->sh_addralign))
- || unlikely (shdr->sh_addralign < sh_align))
- {
- __libelf_seterrno (ELF_E_INVALID_ALIGN);
- return -1;
- }
- }
- else
- {
- /* How much alignment do we need for this section. */
- update_if_changed (shdr->sh_addralign, sh_align,
- scn->shdr_flags);
-
- size = (size + sh_align - 1) & ~(sh_align - 1);
- update_if_changed (shdr->sh_offset, (GElf_Word) size,
- changed);
-
- /* See whether the section size is correct. */
- update_if_changed (shdr->sh_size, (GElf_Word) offset,
- changed);
-
- if (shdr->sh_type != SHT_NOBITS)
- size += offset;
-
- scn->flags |= changed;
- }
-
- /* Check that the section size is actually a multiple of
- the entry size. */
- if (shdr->sh_entsize != 0
- && unlikely (shdr->sh_size % shdr->sh_entsize != 0)
- && (elf->flags & ELF_F_PERMISSIVE) == 0)
- {
- __libelf_seterrno (ELF_E_INVALID_SHENTSIZE);
- return -1;
- }
- }
-
- assert (list->next == NULL || list->cnt == list->max);
-
- first = false;
- }
- while ((list = list->next) != NULL);
-
- /* Store section information. */
- if (elf->flags & ELF_F_LAYOUT)
- {
- /* The user is supposed to fill out e_phoff. Use it and
- e_phnum to determine the maximum extend. */
- size = MAX ((GElf_Word) size,
- (ehdr->e_shoff
- + (elf_typesize (LIBELFBITS, ELF_T_SHDR, shnum))));
- }
- else
- {
- /* Align for section header table.
-
- Yes, we use `sizeof' and not `__alignof__' since we do not
- want to be surprised by architectures with less strict
- alignment rules. */
-#define SHDR_ALIGN sizeof (ElfW2(LIBELFBITS,Off))
- size = (size + SHDR_ALIGN - 1) & ~(SHDR_ALIGN - 1);
-
- update_if_changed (ehdr->e_shoff, (GElf_Word) size, elf->flags);
- update_if_changed (ehdr->e_shentsize,
- elf_typesize (LIBELFBITS, ELF_T_SHDR, 1),
- ehdr_flags);
-
- /* Account for the section header size. */
- size += elf_typesize (LIBELFBITS, ELF_T_SHDR, shnum);
- }
- }
-
- elf->state.ELFW(elf,LIBELFBITS).ehdr_flags |= ehdr_flags;
-
- return size;
-}
diff --git a/libelf/elf32_xlatetof.c b/libelf/elf32_xlatetof.c
deleted file mode 100644
index 156f0da5..00000000
--- a/libelf/elf32_xlatetof.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Convert from memory to file representation.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-//#include <endian.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-#ifndef LIBELFBITS
-# define LIBELFBITS 32
-#endif
-
-
-Elf_Data *
-elfw2(LIBELFBITS, xlatetof) (dest, src, encode)
- Elf_Data *dest;
- const Elf_Data *src;
- unsigned int encode;
-{
- /* First test whether the input data is really suitable for this
- type. This means, whether there is an integer number of records.
- Note that for this implementation the memory and file size of the
- data types are identical. */
-#if EV_NUM != 2
- size_t recsize = __libelf_type_sizes[src->d_version - 1][ELFW(ELFCLASS,LIBELFBITS) - 1][src->d_type];
-#else
- size_t recsize = __libelf_type_sizes[0][ELFW(ELFCLASS,LIBELFBITS) - 1][src->d_type];
-#endif
-
- if (src->d_size % recsize != 0)
- {
- __libelf_seterrno (ELF_E_INVALID_DATA);
- return NULL;
- }
-
- /* Next see whether the converted data fits in the output buffer. */
- if (src->d_size > dest->d_size)
- {
- __libelf_seterrno (ELF_E_DEST_SIZE);
- return NULL;
- }
-
- /* Test the encode parameter. */
- if (encode != ELFDATA2LSB && encode != ELFDATA2MSB)
- {
- __libelf_seterrno (ELF_E_INVALID_ENCODING);
- return NULL;
- }
-
- /* Determine the translation function to use.
-
- At this point we make an assumption which is valid for all
- existing implementations so far: the memory and file sizes are
- the same. This has very important consequences:
- a) The requirement that the source and destination buffer can
- overlap can easily be fulfilled.
- b) We need only one function to convert from and memory to file
- and vice versa since the function only has to copy and/or
- change the byte order.
- */
- if ((__BYTE_ORDER == __LITTLE_ENDIAN && encode == ELFDATA2LSB)
- || (__BYTE_ORDER == __BIG_ENDIAN && encode == ELFDATA2MSB))
- {
- /* We simply have to copy since the byte order is the same. */
- if (src->d_buf != dest->d_buf)
- memmove (dest->d_buf, src->d_buf, src->d_size);
- }
- else
- {
- xfct_t fctp;
-
- /* Get a pointer to the transformation functions. The `#ifdef' is
- a small optimization since we don't anticipate another ELF
- version and so would waste "precious" code. */
-#if EV_NUM != 2
- fctp = __elf_xfctstom[dest->d_version - 1][src->d_version - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][src->d_type];
-#else
- fctp = __elf_xfctstom[0][0][ELFW(ELFCLASS, LIBELFBITS) - 1][src->d_type];
-#endif
-
- /* Do the real work. */
- (*fctp) (dest->d_buf, src->d_buf, src->d_size, 1);
- }
-
- /* Now set the real destination type and length since the operation was
- successful. */
- dest->d_type = src->d_type;
- dest->d_size = src->d_size;
-
- return dest;
-}
-INTDEF(elfw2(LIBELFBITS, xlatetof))
diff --git a/libelf/elf32_xlatetom.c b/libelf/elf32_xlatetom.c
deleted file mode 100644
index 7495201e..00000000
--- a/libelf/elf32_xlatetom.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Convert from file to memory representation.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-//#include <endian.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-#ifndef LIBELFBITS
-# define LIBELFBITS 32
-#endif
-
-
-Elf_Data *
-elfw2(LIBELFBITS, xlatetom) (dest, src, encode)
- Elf_Data *dest;
- const Elf_Data *src;
- unsigned int encode;
-{
- /* First test whether the input data is really suitable for this
- type. This means, whether there is an integer number of records.
- Note that for this implementation the memory and file size of the
- data types are identical. */
-#if EV_NUM != 2
- size_t recsize = __libelf_type_sizes[src->d_version - 1][ELFW(ELFCLASS,LIBELFBITS) - 1][src->d_type];
-#else
- size_t recsize = __libelf_type_sizes[0][ELFW(ELFCLASS,LIBELFBITS) - 1][src->d_type];
-#endif
-
-
- if (src->d_size % recsize != 0)
- {
- __libelf_seterrno (ELF_E_INVALID_DATA);
- return NULL;
- }
-
- /* Next see whether the converted data fits in the output buffer. */
- if (src->d_size > dest->d_size)
- {
- __libelf_seterrno (ELF_E_DEST_SIZE);
- return NULL;
- }
-
- /* Test the encode parameter. */
- if (encode != ELFDATA2LSB && encode != ELFDATA2MSB)
- {
- __libelf_seterrno (ELF_E_INVALID_ENCODING);
- return NULL;
- }
-
- /* Determine the translation function to use.
-
- At this point we make an assumption which is valid for all
- existing implementations so far: the memory and file sizes are
- the same. This has very important consequences:
- a) The requirement that the source and destination buffer can
- overlap can easily be fulfilled.
- b) We need only one function to convert from and memory to file
- and vice versa since the function only has to copy and/or
- change the byte order.
- */
- if ((BYTE_ORDER == LITTLE_ENDIAN && encode == ELFDATA2LSB)
- || (BYTE_ORDER == BIG_ENDIAN && encode == ELFDATA2MSB))
- {
- /* We simply have to copy since the byte order is the same. */
- if (src->d_buf != dest->d_buf)
- memmove (dest->d_buf, src->d_buf, src->d_size);
- }
- else
- {
- xfct_t fctp;
-
- /* Get a pointer to the transformation functions. The `#ifdef' is
- a small optimization since we don't anticipate another ELF
- version and so would waste "precious" code. */
-#if EV_NUM != 2
- fctp = __elf_xfctstom[src->d_version - 1][dest->d_version - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][src->d_type];
-#else
- fctp = __elf_xfctstom[0][0][ELFW(ELFCLASS, LIBELFBITS) - 1][src->d_type];
-#endif
-
- /* Do the real work. */
- (*fctp) (dest->d_buf, src->d_buf, src->d_size, 0);
- }
-
- /* Now set the real destination type and length since the operation was
- successful. */
- dest->d_type = src->d_type;
- dest->d_size = src->d_size;
-
- return dest;
-}
-INTDEF(elfw2(LIBELFBITS, xlatetom))
diff --git a/libelf/elf64_checksum.c b/libelf/elf64_checksum.c
deleted file mode 100644
index bdb9210c..00000000
--- a/libelf/elf64_checksum.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Compute simple checksum from permanent parts of the ELF file.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#define LIBELFBITS 64
-#include "elf32_checksum.c"
diff --git a/libelf/elf64_fsize.c b/libelf/elf64_fsize.c
deleted file mode 100644
index 0b1f414b..00000000
--- a/libelf/elf64_fsize.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Return the size of an object file type.
- Copyright (C) 1998, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#define LIBELFBITS 64
-#include "elf32_fsize.c"
diff --git a/libelf/elf64_getehdr.c b/libelf/elf64_getehdr.c
deleted file mode 100644
index 89a69fff..00000000
--- a/libelf/elf64_getehdr.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Return program header table.
- Copyright (C) 1998, 1999, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#define LIBELFBITS 64
-#include "elf32_getehdr.c"
diff --git a/libelf/elf64_getphdr.c b/libelf/elf64_getphdr.c
deleted file mode 100644
index d06d7c10..00000000
--- a/libelf/elf64_getphdr.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Return program header table.
- Copyright (C) 1998, 1999, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#define LIBELFBITS 64
-#include "elf32_getphdr.c"
diff --git a/libelf/elf64_getshdr.c b/libelf/elf64_getshdr.c
deleted file mode 100644
index 1a5da574..00000000
--- a/libelf/elf64_getshdr.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Return section header.
- Copyright (C) 1998, 1999, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#define LIBELFBITS 64
-#include "elf32_getshdr.c"
diff --git a/libelf/elf64_newehdr.c b/libelf/elf64_newehdr.c
deleted file mode 100644
index aba6e630..00000000
--- a/libelf/elf64_newehdr.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Create new program header table.
- Copyright (C) 1999, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#define LIBELFBITS 64
-#include "elf32_newehdr.c"
diff --git a/libelf/elf64_newphdr.c b/libelf/elf64_newphdr.c
deleted file mode 100644
index 90ff4632..00000000
--- a/libelf/elf64_newphdr.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Create new program header table.
- Copyright (C) 1999, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#define LIBELFBITS 64
-#include "elf32_newphdr.c"
diff --git a/libelf/elf64_updatefile.c b/libelf/elf64_updatefile.c
deleted file mode 100644
index 6b604f10..00000000
--- a/libelf/elf64_updatefile.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright (C) 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#define LIBELFBITS 64
-#include "elf32_updatefile.c"
diff --git a/libelf/elf64_updatenull.c b/libelf/elf64_updatenull.c
deleted file mode 100644
index ff1f0708..00000000
--- a/libelf/elf64_updatenull.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright (C) 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#define LIBELFBITS 64
-#include "elf32_updatenull.c"
diff --git a/libelf/elf64_xlatetof.c b/libelf/elf64_xlatetof.c
deleted file mode 100644
index 3440bbc6..00000000
--- a/libelf/elf64_xlatetof.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Convert from memory to file representation.
- Copyright (C) 1998, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#define LIBELFBITS 64
-#include "elf32_xlatetof.c"
diff --git a/libelf/elf64_xlatetom.c b/libelf/elf64_xlatetom.c
deleted file mode 100644
index 773f04ee..00000000
--- a/libelf/elf64_xlatetom.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Convert from file to memory representation.
- Copyright (C) 1998, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#define LIBELFBITS 64
-#include "elf32_xlatetom.c"
diff --git a/libelf/elf_begin.c b/libelf/elf_begin.c
deleted file mode 100644
index 63fe013e..00000000
--- a/libelf/elf_begin.c
+++ /dev/null
@@ -1,1070 +0,0 @@
-/* Create descriptor for processing file.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-
-#include "libelfP.h"
-#include "common.h"
-
-
-/* Create descriptor for archive in memory. */
-static inline Elf *
-file_read_ar (int fildes, void *map_address, off_t offset, size_t maxsize,
- Elf_Cmd cmd, Elf *parent)
-{
- Elf *elf;
-
- /* Create a descriptor. */
- elf = allocate_elf (fildes, map_address, offset, maxsize, cmd, parent,
- ELF_K_AR, 0);
- if (elf != NULL)
- {
- /* We don't read all the symbol tables in advance. All this will
- happen on demand. */
- elf->state.ar.offset = offset + SARMAG;
-
- elf->state.ar.elf_ar_hdr.ar_rawname = elf->state.ar.raw_name;
- }
-
- return elf;
-}
-
-
-static size_t
-get_shnum (void *map_address, unsigned char *e_ident, int fildes, off_t offset,
- size_t maxsize)
-{
- size_t result;
- union
- {
- Elf32_Ehdr *e32;
- Elf64_Ehdr *e64;
- void *p;
- } ehdr;
- bool is32 = e_ident[EI_CLASS] == ELFCLASS32;
-
- /* Make the ELF header available. */
- if (likely (map_address != NULL) && e_ident[EI_DATA] == MY_ELFDATA
- && (ALLOW_UNALIGNED
- || (((size_t) ((char *) map_address + offset))
- & ((is32 ? __alignof__ (Elf32_Ehdr) : __alignof__ (Elf64_Ehdr))
- - 1)) == 0))
- ehdr.p = (char *) map_address + offset;
- else
- {
- /* We have to read the data from the file. */
- size_t len = is32 ? sizeof (Elf32_Ehdr) : sizeof (Elf64_Ehdr);
-
- ehdr.p = alloca (len);
- /* Fill it. */
- if ((size_t) pread (fildes, ehdr.p, len, offset) != len)
- /* Failed reading. */
- return (size_t) -1l;
-
- if (e_ident[EI_DATA] != MY_ELFDATA)
- {
- if (is32)
- {
- CONVERT (ehdr.e32->e_shnum);
- CONVERT (ehdr.e32->e_shoff);
- }
- else
- {
- CONVERT (ehdr.e64->e_shnum);
- CONVERT (ehdr.e64->e_shoff);
- }
- }
- }
-
- if (is32)
- {
- /* Get the number of sections from the ELF header. */
- result = ehdr.e32->e_shnum;
-
- if (unlikely (result == 0) && ehdr.e32->e_shoff != 0)
- {
- if (offset + ehdr.e32->e_shoff + sizeof (Elf32_Shdr) > maxsize)
- /* Cannot read the first section header. */
- return (size_t) -1l;
-
- if (likely (map_address != NULL) && e_ident[EI_DATA] == MY_ELFDATA
- && (ALLOW_UNALIGNED
- || (((size_t) ((char *) map_address + offset))
- & (__alignof__ (Elf32_Ehdr) - 1)) == 0))
- /* We can directly access the memory. */
- result = ((Elf32_Shdr *) ((char *) map_address
- + ehdr.e32->e_shoff
- + offset))->sh_size;
- else
- {
- Elf32_Word size;
-
- if (pread (fildes, &size, sizeof (Elf32_Word),
- offset + ehdr.e32->e_shoff
- + offsetof (Elf32_Shdr, sh_size))
- != sizeof (Elf32_Word))
- return (size_t) -1l;
-
- if (e_ident[EI_DATA] != MY_ELFDATA)
- CONVERT (size);
-
- result = size;
- }
- }
- }
- else
- {
- /* Get the number of sections from the ELF header. */
- result = ehdr.e64->e_shnum;
-
- if (unlikely (result == 0) && ehdr.e64->e_shoff != 0)
- {
- if (offset + ehdr.e64->e_shoff + sizeof (Elf64_Shdr) > maxsize)
- /* Cannot read the first section header. */
- return (size_t) -1l;
-
- if (likely (map_address != NULL) && e_ident[EI_DATA] == MY_ELFDATA
- && (ALLOW_UNALIGNED
- || (((size_t) ((char *) map_address + offset))
- & (__alignof__ (Elf64_Ehdr) - 1)) == 0))
- /* We can directly access the memory. */
- result = ((Elf64_Shdr *) ((char *) map_address
- + ehdr.e64->e_shoff
- + offset))->sh_size;
- else
- {
- Elf64_Word size;
-
- if (pread (fildes, &size, sizeof (Elf64_Word),
- offset + ehdr.e64->e_shoff
- + offsetof (Elf64_Shdr, sh_size))
- != sizeof (Elf64_Word))
- return (size_t) -1l;
-
- if (e_ident[EI_DATA] != MY_ELFDATA)
- CONVERT (size);
-
- result = size;
- }
- }
- }
-
- return result;
-}
-
-
-/* Create descriptor for ELF file in memory. */
-static Elf *
-file_read_elf (int fildes, void *map_address, off_t offset, size_t maxsize,
- Elf_Cmd cmd, Elf *parent)
-{
- /* We only read the ELF header now. */
- unsigned char *e_ident;
- size_t scncnt;
- Elf *elf;
-
- if (map_address != NULL)
- /* It's right at the beginning of the file. No word access
- required, just bytes. */
- e_ident = (unsigned char *) map_address + offset;
- else
- {
- e_ident = (unsigned char *) alloca (EI_NIDENT);
-
- if (pread (fildes, e_ident, EI_NIDENT, offset) != EI_NIDENT)
- {
- __libelf_seterrno (ELF_E_READ_ERROR);
- return NULL;
- }
- }
-
- /* Verify the binary is of the class we can handle. */
- if ((e_ident[EI_CLASS] != ELFCLASS32
- && e_ident[EI_CLASS] != ELFCLASS64)
- /* We also can only handle two encodings. */
- || (e_ident[EI_DATA] != ELFDATA2LSB
- && e_ident[EI_DATA] != ELFDATA2MSB))
- {
- /* Cannot handle this. */
- __libelf_seterrno (ELF_E_INVALID_FILE);
- return NULL;
- }
-
- /* Determine the number of sections. */
- scncnt = get_shnum (map_address, e_ident, fildes, offset, maxsize);
- if (scncnt == (size_t) -1l)
- /* Could not determine the number of sections. */
- return NULL;
-
- /* We can now allocate the memory. */
- elf = allocate_elf (fildes, map_address, offset, maxsize, cmd, parent,
- ELF_K_ELF, scncnt * sizeof (Elf_Scn));
- if (elf == NULL)
- /* Not enough memory. */
- return NULL;
-
- /* Some more or less arbitrary value. */
- elf->state.elf.scnincr = 10;
-
- if (e_ident[EI_CLASS] == ELFCLASS32)
- {
- /* This pointer might not be directly usable if the alignment is
- not sufficient for the architecture. */
- Elf32_Ehdr *ehdr = (Elf32_Ehdr *) ((char *) map_address + offset);
- size_t cnt;
-
- assert ((unsigned int) scncnt == scncnt);
- elf->state.elf32.scns.cnt = elf->state.elf32.scns.max = scncnt;
-
- /* This is a 32-bit binary. */
- if (map_address != NULL && e_ident[EI_DATA] == MY_ELFDATA
- && (ALLOW_UNALIGNED
- || ((((uintptr_t) ehdr) & (__alignof__ (Elf32_Ehdr) - 1)) == 0
- && ((uintptr_t) ((char *) ehdr + ehdr->e_shoff)
- & (__alignof__ (Elf32_Shdr) - 1)) == 0
- && ((uintptr_t) ((char *) ehdr + ehdr->e_phoff)
- & (__alignof__ (Elf32_Phdr) - 1)) == 0)))
- {
- /* We can use the mmapped memory. */
- elf->state.elf32.ehdr =
- (Elf32_Ehdr *) ((char *) map_address + offset);
- elf->state.elf32.shdr =
- (Elf32_Shdr *) ((char *) map_address + offset
- + elf->state.elf32.ehdr->e_shoff);
- if (elf->state.elf32.ehdr->e_phnum)
- /* Assign a value only if there really is a program
- header. Otherwise the value remains NULL. */
- elf->state.elf32.phdr
- = (Elf32_Phdr *) ((char *) map_address + offset
- + elf->state.elf32.ehdr->e_phoff);
-
- for (cnt = 0; cnt < scncnt; ++cnt)
- {
- elf->state.elf32.scns.data[cnt].index = cnt;
- elf->state.elf32.scns.data[cnt].elf = elf;
- elf->state.elf32.scns.data[cnt].shdr.e32 =
- &elf->state.elf32.shdr[cnt];
- elf->state.elf32.scns.data[cnt].rawdata_base =
- elf->state.elf32.scns.data[cnt].data_base =
- ((char *) map_address + offset
- + elf->state.elf32.shdr[cnt].sh_offset);
- elf->state.elf32.scns.data[cnt].list = &elf->state.elf32.scns;
- }
- }
- else
- {
- /* Read the data. */
- if (pread (elf->fildes, &elf->state.elf32.ehdr_mem,
- sizeof (Elf32_Ehdr), offset) != sizeof (Elf32_Ehdr))
- {
- /* We must be able to read the ELF header. */
- __libelf_seterrno (ELF_E_INVALID_FILE);
- return NULL;
- }
-
- if (e_ident[EI_DATA] != MY_ELFDATA)
- {
- CONVERT (elf->state.elf32.ehdr_mem.e_type);
- CONVERT (elf->state.elf32.ehdr_mem.e_machine);
- CONVERT (elf->state.elf32.ehdr_mem.e_version);
- CONVERT (elf->state.elf32.ehdr_mem.e_entry);
- CONVERT (elf->state.elf32.ehdr_mem.e_phoff);
- CONVERT (elf->state.elf32.ehdr_mem.e_shoff);
- CONVERT (elf->state.elf32.ehdr_mem.e_flags);
- CONVERT (elf->state.elf32.ehdr_mem.e_ehsize);
- CONVERT (elf->state.elf32.ehdr_mem.e_phentsize);
- CONVERT (elf->state.elf32.ehdr_mem.e_phnum);
- CONVERT (elf->state.elf32.ehdr_mem.e_shentsize);
- CONVERT (elf->state.elf32.ehdr_mem.e_shnum);
- CONVERT (elf->state.elf32.ehdr_mem.e_shstrndx);
- }
-
- elf->state.elf32.ehdr = &elf->state.elf32.ehdr_mem;
-
- for (cnt = 0; cnt < scncnt; ++cnt)
- {
- elf->state.elf32.scns.data[cnt].index = cnt;
- elf->state.elf32.scns.data[cnt].elf = elf;
- elf->state.elf32.scns.data[cnt].list = &elf->state.elf32.scns;
- }
- }
-
- /* So far only one block with sections. */
- elf->state.elf32.scns_last = &elf->state.elf32.scns;
- }
- else
- {
- /* This pointer might not be directly usable if the alignment is
- not sufficient for the architecture. */
- Elf64_Ehdr *ehdr = (Elf64_Ehdr *) ((char *) map_address + offset);
- size_t cnt;
-
- assert ((unsigned int) scncnt == scncnt);
- elf->state.elf64.scns.cnt = elf->state.elf64.scns.max = scncnt;
-
- /* This is a 64-bit binary. */
- if (map_address != NULL && e_ident[EI_DATA] == MY_ELFDATA
- && (ALLOW_UNALIGNED
- || ((((uintptr_t) ehdr) & (__alignof__ (Elf64_Ehdr) - 1)) == 0
- && ((uintptr_t) ((char *) ehdr + ehdr->e_shoff)
- & (__alignof__ (Elf64_Shdr) - 1)) == 0
- && ((uintptr_t) ((char *) ehdr + ehdr->e_phoff)
- & (__alignof__ (Elf64_Phdr) - 1)) == 0)))
- {
- /* We can use the mmapped memory. */
- elf->state.elf64.ehdr =
- (Elf64_Ehdr *) ((char *) map_address + offset);
- elf->state.elf64.shdr =
- (Elf64_Shdr *) ((char *) map_address + offset
- + elf->state.elf64.ehdr->e_shoff);
- if (elf->state.elf64.ehdr->e_phnum)
- /* Assign a value only if there really is a program
- header. Otherwise the value remains NULL. */
- elf->state.elf64.phdr
- = (Elf64_Phdr *) ((char *) map_address + offset
- + elf->state.elf64.ehdr->e_phoff);
-
- for (cnt = 0; cnt < scncnt; ++cnt)
- {
- elf->state.elf64.scns.data[cnt].index = cnt;
- elf->state.elf64.scns.data[cnt].elf = elf;
- elf->state.elf64.scns.data[cnt].shdr.e64 =
- &elf->state.elf64.shdr[cnt];
- elf->state.elf64.scns.data[cnt].rawdata_base =
- elf->state.elf64.scns.data[cnt].data_base =
- ((char *) map_address + offset
- + elf->state.elf64.shdr[cnt].sh_offset);
- elf->state.elf64.scns.data[cnt].list = &elf->state.elf64.scns;
- }
- }
- else
- {
- /* Read the data. */
- if (pread (elf->fildes, &elf->state.elf64.ehdr_mem,
- sizeof (Elf64_Ehdr), offset) != sizeof (Elf64_Ehdr))
- {
- /* We must be able to read the ELF header. */
- __libelf_seterrno (ELF_E_INVALID_FILE);
- return NULL;
- }
-
- if (e_ident[EI_DATA] != MY_ELFDATA)
- {
- CONVERT (elf->state.elf64.ehdr_mem.e_type);
- CONVERT (elf->state.elf64.ehdr_mem.e_machine);
- CONVERT (elf->state.elf64.ehdr_mem.e_version);
- CONVERT (elf->state.elf64.ehdr_mem.e_entry);
- CONVERT (elf->state.elf64.ehdr_mem.e_phoff);
- CONVERT (elf->state.elf64.ehdr_mem.e_shoff);
- CONVERT (elf->state.elf64.ehdr_mem.e_flags);
- CONVERT (elf->state.elf64.ehdr_mem.e_ehsize);
- CONVERT (elf->state.elf64.ehdr_mem.e_phentsize);
- CONVERT (elf->state.elf64.ehdr_mem.e_phnum);
- CONVERT (elf->state.elf64.ehdr_mem.e_shentsize);
- CONVERT (elf->state.elf64.ehdr_mem.e_shnum);
- CONVERT (elf->state.elf64.ehdr_mem.e_shstrndx);
- }
-
- elf->state.elf64.ehdr = &elf->state.elf64.ehdr_mem;
-
- for (cnt = 0; cnt < scncnt; ++cnt)
- {
- elf->state.elf64.scns.data[cnt].index = cnt;
- elf->state.elf64.scns.data[cnt].elf = elf;
- elf->state.elf64.scns.data[cnt].list = &elf->state.elf64.scns;
- }
- }
-
- /* So far only one block with sections. */
- elf->state.elf64.scns_last = &elf->state.elf64.scns;
- }
-
- /* Make the class easily available. */
- elf->class = e_ident[EI_CLASS];
-
- return elf;
-}
-
-
-Elf *
-internal_function_def
-__libelf_read_mmaped_file (int fildes, void *map_address, off_t offset,
- size_t maxsize, Elf_Cmd cmd, Elf *parent)
-{
- /* We have to find out what kind of file this is. We handle ELF
- files and archives. To find out what we have we must look at the
- header. The header for an ELF file is EI_NIDENT bytes in size,
- the header for an archive file SARMAG bytes long. */
- Elf_Kind kind;
-
- /* See what kind of object we have here. */
- kind = determine_kind (map_address + offset, maxsize);
-
- switch (kind)
- {
- case ELF_K_ELF:
- return file_read_elf (fildes, map_address, offset, maxsize, cmd, parent);
-
- case ELF_K_AR:
- return file_read_ar (fildes, map_address, offset, maxsize, cmd, parent);
-
- default:
- break;
- }
-
- /* This case is easy. Since we cannot do anything with this file
- create a dummy descriptor. */
- return allocate_elf (fildes, map_address, offset, maxsize, cmd, parent,
- ELF_K_NONE, 0);
-}
-
-
-static Elf *
-read_unmmaped_file (int fildes, off_t offset, size_t maxsize, Elf_Cmd cmd,
- Elf *parent)
-{
- /* We have to find out what kind of file this is. We handle ELF
- files and archives. To find out what we have we must read the
- header. The header for an ELF file is EI_NIDENT bytes in size,
- the header for an archive file SARMAG bytes long. Read the
- maximum of these numbers.
-
- XXX We have to change this for the extended `ar' format some day. */
- unsigned char header[MAX (EI_NIDENT, SARMAG)];
- ssize_t nread;
- Elf_Kind kind;
-
- /* Read the head of the file. */
- nread = pread (fildes, header, MIN (MAX (EI_NIDENT, SARMAG), maxsize),
- offset);
- if (nread == -1)
- /* We cannot even read the head of the file. Maybe FILDES is associated
- with an unseekable device. This is nothing we can handle. */
- return NULL;
-
- /* See what kind of object we have here. */
- kind = determine_kind (header, nread);
-
- switch (kind)
- {
- case ELF_K_AR:
- return file_read_ar (fildes, NULL, offset, maxsize, cmd, parent);
-
- case ELF_K_ELF:
- /* Make sure at least the ELF header is contained in the file. */
- if (maxsize >= (header[EI_CLASS] == ELFCLASS32
- ? sizeof (Elf32_Ehdr) : sizeof (Elf64_Ehdr)))
- return file_read_elf (fildes, NULL, offset, maxsize, cmd, parent);
- /* FALLTHROUGH */
-
- default:
- break;
- }
-
- /* This case is easy. Since we cannot do anything with this file
- create a dummy descriptor. */
- return allocate_elf (fildes, NULL, offset, maxsize, cmd, parent,
- ELF_K_NONE, 0);
-}
-
-
-/* Open a file for reading. If possible we will try to mmap() the file. */
-static struct Elf *
-read_file (int fildes, off_t offset, size_t maxsize,
- Elf_Cmd cmd, Elf *parent)
-{
- void *map_address = NULL;
- int use_mmap = (cmd == ELF_C_READ_MMAP || cmd == ELF_C_RDWR_MMAP
- || cmd == ELF_C_WRITE_MMAP
- || cmd == ELF_C_READ_MMAP_PRIVATE);
-
- if (use_mmap)
- {
- if (parent == NULL)
- {
- if (maxsize == ~((size_t) 0))
- {
- /* We don't know in the moment how large the file is.
- Determine it now. */
- struct stat st;
-
- if (fstat (fildes, &st) == 0
- && (sizeof (size_t) >= sizeof (st.st_size)
- || st.st_size <= ~((size_t) 0)))
- maxsize = (size_t) st.st_size;
- }
-
- /* We try to map the file ourself. */
- map_address = mmap (NULL, maxsize, (cmd == ELF_C_READ_MMAP
- ? PROT_READ
- : PROT_READ|PROT_WRITE),
- cmd == ELF_C_READ_MMAP_PRIVATE
- ? MAP_PRIVATE : MAP_SHARED,
- fildes, offset);
-
- if (map_address == MAP_FAILED)
- map_address = NULL;
- }
- else
- {
- /* The parent is already loaded. Use it. */
- assert (maxsize != ~((size_t) 0));
-
- map_address = parent->map_address;
- }
- }
-
- /* If we have the file in memory optimize the access. */
- if (map_address != NULL)
- {
- struct Elf *result;
-
- result = __libelf_read_mmaped_file (fildes, map_address, offset, maxsize,
- cmd, parent);
-
- /* If something went wrong during the initialization unmap the
- memory if we mmaped here. */
- if (result == NULL
- && (parent == NULL
- || parent->map_address != map_address))
- munmap (map_address, maxsize);
- else if (parent == NULL)
- /* Remember that we mmap()ed the memory. */
- result->flags |= ELF_F_MMAPPED;
-
- return result;
- }
-
- /* Otherwise we have to do it the hard way. We read as much as necessary
- from the file whenever we need information which is not available. */
- return read_unmmaped_file (fildes, offset, maxsize, cmd, parent);
-}
-
-
-/* Find the entry with the long names for the content of this archive. */
-static const char *
-read_long_names (Elf *elf)
-{
- off_t offset = SARMAG; /* This is the first entry. */
- struct ar_hdr hdrm;
- struct ar_hdr *hdr;
- char *newp;
- size_t len;
-
- while (1)
- {
- if (elf->map_address != NULL)
- {
- if (offset + sizeof (struct ar_hdr) > elf->maximum_size)
- return NULL;
-
- /* The data is mapped. */
- hdr = (struct ar_hdr *) (elf->map_address + offset);
- }
- else
- {
- /* Read the header from the file. */
- if (pread (elf->fildes, &hdrm, sizeof (hdrm),
- elf->start_offset + offset) != sizeof (hdrm))
- return NULL;
-
- hdr = &hdrm;
- }
-
- len = atol (hdr->ar_size);
-
- if (memcmp (hdr->ar_name, "// ", 16) == 0)
- break;
-
- offset += sizeof (struct ar_hdr) + ((len + 1) & ~1l);
- }
-
- /* Due to the stupid format of the long name table entry (which are not
- NUL terminted) we have to provide an appropriate representation anyhow.
- Therefore we always make a copy which has the appropriate form. */
- newp = (char *) malloc (len);
- if (newp != NULL)
- {
- char *runp;
-
- if (elf->map_address != NULL)
- /* Simply copy it over. */
- elf->state.ar.long_names = (char *) memcpy (newp,
- elf->map_address + offset
- + sizeof (struct ar_hdr),
- len);
- else
- {
- if ((size_t) pread (elf->fildes, newp, len,
- elf->start_offset + offset
- + sizeof (struct ar_hdr))
- != len)
- {
- /* We were not able to read all data. */
- free (newp);
- elf->state.ar.long_names = NULL;
- return NULL;
- }
- elf->state.ar.long_names = newp;
- }
-
- elf->state.ar.long_names_len = len;
-
- /* Now NUL-terminate the strings. */
- runp = newp;
- while (1)
- {
- runp = (char *) memchr (runp, '/', newp + len - runp);
- if (runp == NULL)
- /* This was the last entry. */
- break;
-
- /* NUL-terminate the string. */
- *runp = '\0';
-
- /* Skip the NUL bzte and the \012. */
- runp += 2;
-
- /* A sanity check. Somebody might have generated invalid
- archive. */
- if (runp >= newp + len)
- break;
- }
- }
-
- return newp;
-}
-
-
-/* Read the next archive header. */
-int
-internal_function_def
-__libelf_next_arhdr (elf)
- Elf *elf;
-{
- struct ar_hdr *ar_hdr;
- Elf_Arhdr *elf_ar_hdr;
-
- if (elf->map_address != NULL)
- {
- /* See whether this entry is in the file. */
- if (elf->state.ar.offset + sizeof (struct ar_hdr)
- > elf->start_offset + elf->maximum_size)
- {
- /* This record is not anymore in the file. */
- __libelf_seterrno (ELF_E_RANGE);
- return -1;
- }
- ar_hdr = (struct ar_hdr *) (elf->map_address + elf->state.ar.offset);
- }
- else
- {
- ar_hdr = &elf->state.ar.ar_hdr;
-
- if (pread (elf->fildes, ar_hdr, sizeof (struct ar_hdr),
- elf->state.ar.offset)
- != sizeof (struct ar_hdr))
- {
- /* Something went wrong while reading the file. */
- __libelf_seterrno (ELF_E_RANGE);
- return -1;
- }
- }
-
- /* One little consistency check. */
- if (memcmp (ar_hdr->ar_fmag, ARFMAG, 2) != 0)
- {
- /* This is no valid archive. */
- __libelf_seterrno (ELF_E_ARCHIVE_FMAG);
- return -1;
- }
-
- /* Copy the raw name over to a NUL terminated buffer. */
- *((char *) __mempcpy (elf->state.ar.raw_name, ar_hdr->ar_name, 16)) = '\0';
-
- elf_ar_hdr = &elf->state.ar.elf_ar_hdr;
-
- /* Now convert the `struct ar_hdr' into `Elf_Arhdr'.
- Determine whether this is a special entry. */
- if (ar_hdr->ar_name[0] == '/')
- {
- if (ar_hdr->ar_name[1] == ' '
- && memcmp (ar_hdr->ar_name, "/ ", 16) == 0)
- /* This is the index. */
- elf_ar_hdr->ar_name = memcpy (elf->state.ar.ar_name, "/", 2);
- else if (ar_hdr->ar_name[1] == '/'
- && memcmp (ar_hdr->ar_name, "// ", 16) == 0)
- /* This is the array with the long names. */
- elf_ar_hdr->ar_name = memcpy (elf->state.ar.ar_name, "//", 3);
- else if (isdigit (ar_hdr->ar_name[1]))
- {
- size_t offset;
-
- /* This is a long name. First we have to read the long name
- table, if this hasn't happened already. */
- if (elf->state.ar.long_names == NULL
- && read_long_names (elf) == NULL)
- {
- /* No long name table although it is reference. The archive is
- broken. */
- __libelf_seterrno (ELF_E_INVALID_ARCHIVE);
- return -1;
- }
-
- offset = atol (ar_hdr->ar_name + 1);
- if (offset >= elf->state.ar.long_names_len)
- {
- /* The index in the long name table is larger than the table. */
- __libelf_seterrno (ELF_E_INVALID_ARCHIVE);
- return -1;
- }
- elf_ar_hdr->ar_name = elf->state.ar.long_names + offset;
- }
- else
- {
- /* This is none of the known special entries. */
- __libelf_seterrno (ELF_E_INVALID_ARCHIVE);
- return -1;
- }
- }
- else
- {
- char *endp;
-
- /* It is a normal entry. Copy over the name. */
- endp = (char *) memccpy (elf->state.ar.ar_name, ar_hdr->ar_name,
- '/', 16);
- if (endp != NULL)
- endp[-1] = '\0';
- else
- elf->state.ar.raw_name[16] = '\0';
-
- elf_ar_hdr->ar_name = elf->state.ar.ar_name;
- }
-
- /* Since there are no specialized functions to convert ASCII to
- time_t, uid_t, gid_t, mode_t, and off_t we use either atol or
- atoll depending on the size of the types. We are also prepared
- for the case where the whole field in the `struct ar_hdr' is
- filled in which case we cannot simply use atol/l but instead have
- to create a temporary copy. */
- if (ar_hdr->ar_date[sizeof (ar_hdr->ar_date) - 1] == ' ')
- {
- if (ar_hdr->ar_date[0] == ' ')
- elf_ar_hdr->ar_date = 0;
- else
- elf_ar_hdr->ar_date = (sizeof (time_t) <= sizeof (long int)
- ? (time_t) atol (ar_hdr->ar_date)
- : (time_t) atoll (ar_hdr->ar_date));
- }
- else
- {
- char buf[sizeof (ar_hdr->ar_date) + 1];
- *((char *) __mempcpy (buf, ar_hdr->ar_date, sizeof (ar_hdr->ar_date)))
- = '\0';
- elf_ar_hdr->ar_date = (sizeof (time_t) <= sizeof (long int)
- ? (time_t) atol (ar_hdr->ar_date)
- : (time_t) atoll (ar_hdr->ar_date));
- }
-
- if (ar_hdr->ar_uid[sizeof (ar_hdr->ar_uid) - 1] == ' ')
- {
- if (ar_hdr->ar_uid[0] == ' ')
- elf_ar_hdr->ar_uid = 0;
- else
- elf_ar_hdr->ar_uid = (sizeof (uid_t) <= sizeof (long int)
- ? (uid_t) atol (ar_hdr->ar_uid)
- : (uid_t) atoll (ar_hdr->ar_uid));
- }
- else
- {
- char buf[sizeof (ar_hdr->ar_uid) + 1];
- *((char *) __mempcpy (buf, ar_hdr->ar_uid, sizeof (ar_hdr->ar_uid)))
- = '\0';
- elf_ar_hdr->ar_uid = (sizeof (uid_t) <= sizeof (long int)
- ? (uid_t) atol (ar_hdr->ar_uid)
- : (uid_t) atoll (ar_hdr->ar_uid));
- }
-
- if (ar_hdr->ar_gid[sizeof (ar_hdr->ar_gid) - 1] == ' ')
- {
- if (ar_hdr->ar_gid[0] == ' ')
- elf_ar_hdr->ar_gid = 0;
- else
- elf_ar_hdr->ar_gid = (sizeof (gid_t) <= sizeof (long int)
- ? (gid_t) atol (ar_hdr->ar_gid)
- : (gid_t) atoll (ar_hdr->ar_gid));
- }
- else
- {
- char buf[sizeof (ar_hdr->ar_gid) + 1];
- *((char *) __mempcpy (buf, ar_hdr->ar_gid, sizeof (ar_hdr->ar_gid)))
- = '\0';
- elf_ar_hdr->ar_gid = (sizeof (gid_t) <= sizeof (long int)
- ? (gid_t) atol (ar_hdr->ar_gid)
- : (gid_t) atoll (ar_hdr->ar_gid));
- }
-
- if (ar_hdr->ar_mode[sizeof (ar_hdr->ar_mode) - 1] == ' ')
- {
- if (ar_hdr->ar_mode[0] == ' ')
- elf_ar_hdr->ar_mode = 0;
- else
- elf_ar_hdr->ar_mode = (sizeof (mode_t) <= sizeof (long int)
- ? (mode_t) strtol (ar_hdr->ar_mode, NULL, 8)
- : (mode_t) strtoll (ar_hdr->ar_mode, NULL, 8));
- }
- else
- {
- char buf[sizeof (ar_hdr->ar_mode) + 1];
- *((char *) __mempcpy (buf, ar_hdr->ar_mode, sizeof (ar_hdr->ar_mode)))
- = '\0';
- elf_ar_hdr->ar_mode = (sizeof (mode_t) <= sizeof (long int)
- ? (mode_t) strtol (ar_hdr->ar_mode, NULL, 8)
- : (mode_t) strtoll (ar_hdr->ar_mode, NULL, 8));
- }
-
- if (ar_hdr->ar_size[sizeof (ar_hdr->ar_size) - 1] == ' ')
- {
- if (ar_hdr->ar_size[0] == ' ')
- /* Something is really wrong. We cannot live without a size for
- the member since it will not be possible to find the next
- archive member. */
- {
- __libelf_seterrno (ELF_E_INVALID_ARCHIVE);
- return -1;
- }
- else
- elf_ar_hdr->ar_size = (sizeof (time_t) == sizeof (long int)
- ? (off_t) atol (ar_hdr->ar_size)
- : (off_t) atoll (ar_hdr->ar_size));
- }
- else
- {
- char buf[sizeof (ar_hdr->ar_size) + 1];
- *((char *) __mempcpy (buf, ar_hdr->ar_size, sizeof (ar_hdr->ar_size)))
- = '\0';
- elf_ar_hdr->ar_size = (sizeof (time_t) == sizeof (long int)
- ? (off_t) atol (ar_hdr->ar_size)
- : (off_t) atoll (ar_hdr->ar_size));
- }
-
- return 0;
-}
-
-
-/* We were asked to return a clone of an existing descriptor. This
- function must be called with the lock on the parent descriptor
- being held. */
-static Elf *
-dup_elf (int fildes, Elf_Cmd cmd, Elf *ref)
-{
- struct Elf *result;
-
- if (fildes == -1)
- /* Allow the user to pass -1 as the file descriptor for the new file. */
- fildes = ref->fildes;
- /* The file descriptor better should be the same. If it was disconnected
- already (using `elf_cntl') we do not test it. */
- else if (ref->fildes != -1 && fildes != ref->fildes)
- {
- __libelf_seterrno (ELF_E_FD_MISMATCH);
- return NULL;
- }
-
- /* The mode must allow reading. I.e., a descriptor creating with a
- command different then ELF_C_READ, ELF_C_WRITE and ELF_C_RDWR is
- not allowed. */
- if (ref->cmd != ELF_C_READ && ref->cmd != ELF_C_READ_MMAP
- && ref->cmd != ELF_C_WRITE && ref->cmd != ELF_C_WRITE_MMAP
- && ref->cmd != ELF_C_RDWR && ref->cmd != ELF_C_RDWR_MMAP
- && ref->cmd != ELF_C_READ_MMAP_PRIVATE)
- {
- __libelf_seterrno (ELF_E_INVALID_OP);
- return NULL;
- }
-
- /* Now it is time to distinguish between reading normal files and
- archives. Normal files can easily be handled be incrementing the
- reference counter and return the same descriptor. */
- if (ref->kind != ELF_K_AR)
- {
- ++ref->ref_count;
- return ref;
- }
-
- /* This is an archive. We must create a descriptor for the archive
- member the internal pointer of the archive file desriptor is
- pointing to. First read the header of the next member if this
- has not happened already. */
- if (ref->state.ar.elf_ar_hdr.ar_name == NULL
- && __libelf_next_arhdr (ref) != 0)
- /* Something went wrong. Maybe there is no member left. */
- return NULL;
-
- /* We have all the information we need about the next archive member.
- Now create a descriptor for it. */
- result = read_file (fildes, ref->state.ar.offset + sizeof (struct ar_hdr),
- ref->state.ar.elf_ar_hdr.ar_size, cmd, ref);
-
- /* Enlist this new descriptor in the list of children. */
- if (result != NULL)
- {
- result->next = ref->state.ar.children;
- ref->state.ar.children = result;
- }
-
- return result;
-}
-
-
-/* Return desriptor for empty file ready for writing. */
-static struct Elf *
-write_file (int fd, Elf_Cmd cmd)
-{
- /* We simply create an empty `Elf' structure. */
-#define NSCNSALLOC 10
- Elf *result = allocate_elf (fd, NULL, 0, 0, cmd, NULL, ELF_K_ELF,
- NSCNSALLOC * sizeof (Elf_Scn));
-
- if (result != NULL)
- {
- /* We have to write to the file in any case. */
- result->flags = ELF_F_DIRTY;
-
- /* Some more or less arbitrary value. */
- result->state.elf.scnincr = NSCNSALLOC;
-
- /* We have allocated room for some sections. */
- assert (offsetof (struct Elf, state.elf32.scns)
- == offsetof (struct Elf, state.elf64.scns));
- result->state.elf.scns_last = &result->state.elf32.scns;
- result->state.elf32.scns.max = NSCNSALLOC;
- }
-
- return result;
-}
-
-
-/* Return a descriptor for the file belonging to FILDES. */
-Elf *
-elf_begin (fildes, cmd, ref)
- int fildes;
- Elf_Cmd cmd;
- Elf *ref;
-{
- Elf *retval;
-
- if (! __libelf_version_initialized)
- {
- /* Version wasn't set so far. */
- __libelf_seterrno (ELF_E_NO_VERSION);
- return NULL;
- }
-
- if (ref != NULL)
- /* Make sure the descriptor is not suddenly going away. */
- rwlock_rdlock (ref->lock);
- else if (fcntl (fildes, F_GETFL) == -1 && errno == EBADF)
- {
- /* We cannot do anything productive without a file descriptor. */
- __libelf_seterrno (ELF_E_INVALID_FILE);
- return NULL;
- }
-
- switch (cmd)
- {
- case ELF_C_NULL:
- /* We simply return a NULL pointer. */
- retval = NULL;
- break;
-
- case ELF_C_READ_MMAP_PRIVATE:
- /* If we have a reference it must also be opened this way. */
- if (ref != NULL && ref->cmd != ELF_C_READ_MMAP_PRIVATE)
- {
- __libelf_seterrno (ELF_E_INVALID_CMD);
- retval = NULL;
- break;
- }
- /* FALLTHROUGH */
-
- case ELF_C_READ:
- case ELF_C_READ_MMAP:
- if (ref != NULL)
- /* Duplicate the descriptor. */
- retval = dup_elf (fildes, cmd, ref);
- else
- /* Create descriptor for existing file. */
- retval = read_file (fildes, 0, ~((size_t) 0), cmd, NULL);
- break;
-
- case ELF_C_RDWR:
- case ELF_C_RDWR_MMAP:
- /* If we have a REF object it must also be opened using this
- command. */
- if (ref != NULL)
- {
- if (ref->cmd != ELF_C_RDWR && ref->cmd != ELF_C_RDWR_MMAP
- && ref->cmd != ELF_C_WRITE && ref->cmd != ELF_C_WRITE_MMAP)
- {
- /* This is not ok. REF must also be opened for writing. */
- __libelf_seterrno (ELF_E_INVALID_CMD);
- retval = NULL;
- }
- else
- /* Duplicate this descriptor. */
- retval = dup_elf (fildes, cmd, ref);
- }
- else
- /* Create descriptor for existing file. */
- retval = read_file (fildes, 0, ~((size_t) 0), cmd, NULL);
- break;
-
- case ELF_C_WRITE:
- case ELF_C_WRITE_MMAP:
- /* We ignore REF and prepare a descriptor to write a new file. */
- retval = write_file (fildes, cmd);
- break;
-
- default:
- __libelf_seterrno (ELF_E_INVALID_CMD);
- retval = NULL;
- break;
- }
-
- /* Release the lock. */
- if (ref != NULL)
- rwlock_unlock (ref->lock);
-
- return retval;
-}
-INTDEF(elf_begin)
diff --git a/libelf/elf_clone.c b/libelf/elf_clone.c
deleted file mode 100644
index 516d2ae4..00000000
--- a/libelf/elf_clone.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Create clone of a given descriptor.
- Copyright (C) 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <stddef.h>
-#include "libelfP.h"
-#include "common.h"
-
-
-Elf *
-elf_clone (Elf *elf, Elf_Cmd cmd)
-{
- Elf *retval = NULL;
-
- if (elf == NULL)
- /* Some earlier mistake. */
- return NULL;
-
- /* Make sure the descriptor is not suddenly going away. */
- rwlock_rdlock (elf->lock);
-
- if (cmd != ELF_C_EMPTY)
- // XXX TODO handle ELF_C_READ/WRITE etc
- goto out;
-
- retval = allocate_elf (elf->fildes, elf->map_address, elf->start_offset,
- elf->maximum_size, elf->cmd, elf->parent, elf->kind,
- elf->state.elf32.scns.max * sizeof (Elf_Scn));
- if (retval != NULL)
- {
- /* We have to write to the file in any case. */
- retval->flags = ELF_F_DIRTY;
-
- /* Some more or less arbitrary value. */
- retval->state.elf.scnincr = 10;
-
- /* We have allocated room for some sections. */
- assert (offsetof (struct Elf, state.elf32.scns)
- == offsetof (struct Elf, state.elf64.scns));
- retval->state.elf.scns_last = &retval->state.elf32.scns;
- retval->state.elf32.scns.max = elf->state.elf32.scns.max;
-
- retval->class = elf->class;
- }
-
- /* Release the lock. */
- out:
- rwlock_unlock (elf->lock);
-
- return retval;
-}
diff --git a/libelf/elf_cntl.c b/libelf/elf_cntl.c
deleted file mode 100644
index eea0f362..00000000
--- a/libelf/elf_cntl.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Control an ELF file desrciptor.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <unistd.h>
-
-#include "libelfP.h"
-
-
-int
-elf_cntl (elf, cmd)
- Elf *elf;
- Elf_Cmd cmd;
-{
- int result = 0;
-
- if (elf == NULL)
- return -1;
-
- if (elf->fildes == -1)
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return -1;
- }
-
- rwlock_wrlock (elf->lock);
-
- switch (cmd)
- {
- case ELF_C_FDREAD:
- /* If not all of the file is in the memory read it now. */
- if (elf->map_address == NULL && __libelf_readall (elf) == NULL)
- {
- /* We were not able to read everything. */
- result = -1;
- break;
- }
- /* FALLTHROUGH */
-
- case ELF_C_FDDONE:
- /* Mark the file descriptor as not usable. */
- elf->fildes = -1;
- break;
-
- default:
- __libelf_seterrno (ELF_E_INVALID_CMD);
- result = -1;
- break;
- }
-
- rwlock_unlock (elf->lock);
-
- return result;
-}
diff --git a/libelf/elf_end.c b/libelf/elf_end.c
deleted file mode 100644
index 086ff633..00000000
--- a/libelf/elf_end.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/* Free resources associated with Elf descriptor.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <sys/mman.h>
-
-#include "libelfP.h"
-
-
-int
-elf_end (elf)
- Elf *elf;
-{
- Elf *parent;
-
- if (elf == NULL)
- /* This is allowed and is a no-op. */
- return 0;
-
- /* Make sure we are alone. */
- rwlock_wrlock (elf->lock);
-
- if (elf->ref_count != 0 && --elf->ref_count != 0)
- {
- /* Not yet the last activation. */
- int result = elf->ref_count;
- rwlock_unlock (elf->lock);
- return result;
- }
-
- if (elf->kind == ELF_K_AR)
- {
- /* We cannot remove the descriptor now since we still have some
- descriptors which depend on it. But we can free the archive
- symbol table since this is only available via the archive ELF
- descriptor. The long name table cannot be freed yet since
- the archive headers for the ELF files in the archive point
- into this array. */
- free (elf->state.ar.ar_sym);
- elf->state.ar.ar_sym = NULL;
-
- if (elf->state.ar.children != NULL)
- return 0;
- }
-
- /* Remove this structure from the children list. */
- parent = elf->parent;
- if (parent != NULL)
- {
- /* This is tricky. Lock must be acquire from the father to
- the child but here we already have the child lock. We
- solve this problem by giving free the child lock. The
- state of REF_COUNT==0 is handled all over the library, so
- this should be ok. */
- rwlock_unlock (elf->lock);
- rwlock_rdlock (parent->lock);
- rwlock_wrlock (elf->lock);
-
- if (parent->state.ar.children == elf)
- parent->state.ar.children = elf->next;
- else
- {
- struct Elf *child = parent->state.ar.children;
-
- while (child->next != elf)
- child = child->next;
-
- child->next = elf->next;
- }
-
- rwlock_unlock (parent->lock);
- }
-
- /* This was the last activation. Free all resources. */
- switch (elf->kind)
- {
- case ELF_K_AR:
- if (elf->state.ar.long_names != NULL)
- free (elf->state.ar.long_names);
- break;
-
- case ELF_K_ELF:
- {
- Elf_ScnList *list = (elf->class == ELFCLASS32
- || (offsetof (struct Elf, state.elf32.scns)
- == offsetof (struct Elf, state.elf64.scns))
- ? &elf->state.elf32.scns
- : &elf->state.elf64.scns);
-
- do
- {
- /* Free all separately allocated section headers. */
- size_t cnt = list->max;
-
- while (cnt-- > 0)
- {
- /* These pointers can be NULL; it's safe to use
- 'free' since it will check for this. */
- Elf_Scn *scn = &list->data[cnt];
- Elf_Data_List *runp;
-
- if ((scn->shdr_flags & ELF_F_MALLOCED) != 0)
- /* It doesn't matter which pointer. */
- free (scn->shdr.e32);
-
- /* If the file has the same byte order and the
- architecture doesn't require overly stringent
- alignment the raw data buffer is the same as the
- one used for presenting to the caller. */
- if (scn->data_base != scn->rawdata_base)
- free (scn->data_base);
-
- /* The section data is allocated if we couldn't mmap
- the file. */
- if (elf->map_address == NULL)
- free (scn->rawdata_base);
-
- /* Free the list of data buffers for the section.
- We don't free the buffers themselves since this
- is the users job. */
- runp = scn->data_list.next;
- while (runp != NULL)
- {
- Elf_Data_List *oldp = runp;
- runp = runp->next;
- if ((oldp->flags & ELF_F_MALLOCED) != 0)
- free (oldp);
- }
- }
-
- /* Free the memory for the array. */
- Elf_ScnList *oldp = list;
- list = list->next;
- assert (list == NULL || oldp->cnt == oldp->max);
- if (oldp != (elf->class == ELFCLASS32
- || (offsetof (struct Elf, state.elf32.scns)
- == offsetof (struct Elf, state.elf64.scns))
- ? &elf->state.elf32.scns
- : &elf->state.elf64.scns))
- free (oldp);
- }
- while (list != NULL);
- }
-
- /* Free the section header. */
- if (elf->state.elf.shdr_malloced != 0)
- free (elf->class == ELFCLASS32
- || (offsetof (struct Elf, state.elf32.shdr)
- == offsetof (struct Elf, state.elf64.shdr))
- ? (void *) elf->state.elf32.shdr
- : (void *) elf->state.elf64.shdr);
-
- /* Free the program header. */
- if ((elf->state.elf.phdr_flags & ELF_F_MALLOCED) != 0)
- free (elf->class == ELFCLASS32
- || (offsetof (struct Elf, state.elf32.phdr)
- == offsetof (struct Elf, state.elf64.phdr))
- ? (void *) elf->state.elf32.phdr
- : (void *) elf->state.elf64.phdr);
- break;
-
- default:
- break;
- }
-
- if (elf->map_address != NULL && parent == NULL)
- {
- /* The file was read or mapped for this descriptor. */
- if ((elf->flags & ELF_F_MALLOCED) != 0)
- free (elf->map_address);
- else if ((elf->flags & ELF_F_MMAPPED) != 0)
- munmap (elf->map_address, elf->maximum_size);
- }
-
- rwlock_fini (elf->lock);
-
- /* Finally the descriptor itself. */
- free (elf);
-
- return parent != NULL && parent->ref_count == 0 ? elf_end (parent) : 0;
-}
diff --git a/libelf/elf_error.c b/libelf/elf_error.c
deleted file mode 100644
index acbe406c..00000000
--- a/libelf/elf_error.c
+++ /dev/null
@@ -1,366 +0,0 @@
-/* Error handling in libelf.
- Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-//#include <libintl.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdlib.h>
-
-#include "libelfP.h"
-
-
-#ifdef USE_TLS
-/* The error number. */
-static __thread int global_error;
-#else
-/* This is the key for the thread specific memory. */
-static tls_key_t key;
-
-/* The error number. Used in non-threaded programs. */
-static int global_error;
-static bool threaded;
-/* We need to initialize the thread-specific data. */
-once_define (static, once);
-
-/* The initialization and destruction functions. */
-static void init (void);
-static void free_key_mem (void *mem);
-#endif /* TLS */
-
-
-int
-elf_errno (void)
-{
- int result;
-
-#ifndef USE_TLS
- /* If we have not yet initialized the buffer do it now. */
- once_execute (once, init);
-
- if (threaded)
- {
- /* We do not allocate memory for the data. It is only a word.
- We can store it in place of the pointer. */
- result = (intptr_t) getspecific (key);
-
- setspecific (key, (void *) (intptr_t) ELF_E_NOERROR);
- return result;
- }
-#endif /* TLS */
-
- result = global_error;
- global_error = ELF_E_NOERROR;
- return result;
-}
-
-
-/* Return the appropriate message for the error. */
-static const char msgstr[] =
-{
-#define ELF_E_NOERROR_IDX 0
- N_("no error")
- "\0"
-#define ELF_E_UNKNOWN_ERROR_IDX (ELF_E_NOERROR_IDX + sizeof "no error")
- N_("unknown error")
- "\0"
-#define ELF_E_UNKNOWN_VERSION_IDX \
- (ELF_E_UNKNOWN_ERROR_IDX + sizeof "unknown error")
- N_("unknown version")
- "\0"
-#define ELF_E_UNKNOWN_TYPE_IDX \
- (ELF_E_UNKNOWN_VERSION_IDX + sizeof "unknown version")
- N_("unknown type")
- "\0"
-#define ELF_E_INVALID_HANDLE_IDX \
- (ELF_E_UNKNOWN_TYPE_IDX + sizeof "unknown type")
- N_("invalid `Elf' handle")
- "\0"
-#define ELF_E_SOURCE_SIZE_IDX \
- (ELF_E_INVALID_HANDLE_IDX + sizeof "invalid `Elf' handle")
- N_("invalid size of source operand")
- "\0"
-#define ELF_E_DEST_SIZE_IDX \
- (ELF_E_SOURCE_SIZE_IDX + sizeof "invalid size of source operand")
- N_("invalid size of destination operand")
- "\0"
-#define ELF_E_INVALID_ENCODING_IDX \
- (ELF_E_DEST_SIZE_IDX + sizeof "invalid size of destination operand")
- N_("invalid encoding")
- "\0"
-#define ELF_E_NOMEM_IDX \
- (ELF_E_INVALID_ENCODING_IDX + sizeof "invalid encoding")
- N_("out of memory")
- "\0"
-#define ELF_E_INVALID_FILE_IDX \
- (ELF_E_NOMEM_IDX + sizeof "out of memory")
- N_("invalid file descriptor")
- "\0"
-#define ELF_E_INVALID_OP_IDX \
- (ELF_E_INVALID_FILE_IDX + sizeof "invalid file descriptor")
- N_("invalid operation")
- "\0"
-#define ELF_E_NO_VERSION_IDX \
- (ELF_E_INVALID_OP_IDX + sizeof "invalid operation")
- N_("ELF version not set")
- "\0"
-#define ELF_E_INVALID_CMD_IDX \
- (ELF_E_NO_VERSION_IDX + sizeof "ELF version not set")
- N_("invalid command")
- "\0"
-#define ELF_E_RANGE_IDX \
- (ELF_E_INVALID_CMD_IDX + sizeof "invalid command")
- N_("offset out of range")
- "\0"
-#define ELF_E_ARCHIVE_FMAG_IDX \
- (ELF_E_RANGE_IDX + sizeof "offset out of range")
- N_("invalid fmag field in archive header")
- "\0"
-#define ELF_E_INVALID_ARCHIVE_IDX \
- (ELF_E_ARCHIVE_FMAG_IDX + sizeof "invalid fmag field in archive header")
- N_("invalid archive file")
- "\0"
-#define ELF_E_NO_ARCHIVE_IDX \
- (ELF_E_INVALID_ARCHIVE_IDX + sizeof "invalid archive file")
- N_("descriptor is not for an archive")
- "\0"
-#define ELF_E_NO_INDEX_IDX \
- (ELF_E_NO_ARCHIVE_IDX + sizeof "descriptor is not for an archive")
- N_("no index available")
- "\0"
-#define ELF_E_READ_ERROR_IDX \
- (ELF_E_NO_INDEX_IDX + sizeof "no index available")
- N_("cannot read data from file")
- "\0"
-#define ELF_E_WRITE_ERROR_IDX \
- (ELF_E_READ_ERROR_IDX + sizeof "cannot read data from file")
- N_("cannot write data to file")
- "\0"
-#define ELF_E_INVALID_CLASS_IDX \
- (ELF_E_WRITE_ERROR_IDX + sizeof "cannot write data to file")
- N_("invalid binary class")
- "\0"
-#define ELF_E_INVALID_INDEX_IDX \
- (ELF_E_INVALID_CLASS_IDX + sizeof "invalid binary class")
- N_("invalid section index")
- "\0"
-#define ELF_E_INVALID_OPERAND_IDX \
- (ELF_E_INVALID_INDEX_IDX + sizeof "invalid section index")
- N_("invalid operand")
- "\0"
-#define ELF_E_INVALID_SECTION_IDX \
- (ELF_E_INVALID_OPERAND_IDX + sizeof "invalid operand")
- N_("invalid section")
- "\0"
-#define ELF_E_INVALID_COMMAND_IDX \
- (ELF_E_INVALID_SECTION_IDX + sizeof "invalid section")
- N_("invalid command")
- "\0"
-#define ELF_E_WRONG_ORDER_EHDR_IDX \
- (ELF_E_INVALID_COMMAND_IDX + sizeof "invalid command")
- N_("executable header not created first")
- "\0"
-#define ELF_E_FD_DISABLED_IDX \
- (ELF_E_WRONG_ORDER_EHDR_IDX + sizeof "executable header not created first")
- N_("file descriptor disabled")
- "\0"
-#define ELF_E_FD_MISMATCH_IDX \
- (ELF_E_FD_DISABLED_IDX + sizeof "file descriptor disabled")
- N_("archive/member fildes mismatch")
- "\0"
-#define ELF_E_OFFSET_RANGE_IDX \
- (ELF_E_FD_MISMATCH_IDX + sizeof "archive/member fildes mismatch")
- N_("offset out of range")
- "\0"
-#define ELF_E_NOT_NUL_SECTION_IDX \
- (ELF_E_OFFSET_RANGE_IDX + sizeof "offset out of range")
- N_("cannot manipulate null section")
- "\0"
-#define ELF_E_DATA_MISMATCH_IDX \
- (ELF_E_NOT_NUL_SECTION_IDX + sizeof "cannot manipulate null section")
- N_("data/scn mismatch")
- "\0"
-#define ELF_E_INVALID_SECTION_HEADER_IDX \
- (ELF_E_DATA_MISMATCH_IDX + sizeof "data/scn mismatch")
- N_("invalid section header")
- "\0"
-#define ELF_E_INVALID_DATA_IDX \
- (ELF_E_INVALID_SECTION_HEADER_IDX + sizeof "invalid section header")
- N_("invalid data")
- "\0"
-#define ELF_E_DATA_ENCODING_IDX \
- (ELF_E_INVALID_DATA_IDX + sizeof "invalid data")
- N_("unknown data encoding")
- "\0"
-#define ELF_E_SECTION_TOO_SMALL_IDX \
- (ELF_E_DATA_ENCODING_IDX + sizeof "unknown data encoding")
- N_("section `sh_size' too small for data")
- "\0"
-#define ELF_E_INVALID_ALIGN_IDX \
- (ELF_E_SECTION_TOO_SMALL_IDX + sizeof "section `sh_size' too small for data")
- N_("invalid section alignment")
- "\0"
-#define ELF_E_INVALID_SHENTSIZE_IDX \
- (ELF_E_INVALID_ALIGN_IDX + sizeof "invalid section alignment")
- N_("invalid section entry size")
- "\0"
-#define ELF_E_UPDATE_RO_IDX \
- (ELF_E_INVALID_SHENTSIZE_IDX + sizeof "invalid section entry size")
- N_("update() for write on read-only file")
- "\0"
-#define ELF_E_NOFILE_IDX \
- (ELF_E_UPDATE_RO_IDX + sizeof "update() for write on read-only file")
- N_("no such file")
- "\0"
-#define ELF_E_GROUP_NOT_REL_IDX \
- (ELF_E_NOFILE_IDX + sizeof "no such file")
- N_("only relocatable files can contain section groups")
- "\0"
-#define ELF_E_INVALID_PHDR_IDX \
- (ELF_E_GROUP_NOT_REL_IDX \
- + sizeof "only relocatable files can contain section groups")
- N_("program header only allowed in executables and shared objects")
- "\0"
-#define ELF_E_NO_PHDR_IDX \
- (ELF_E_INVALID_PHDR_IDX \
- + sizeof "program header only allowed in executables and shared objects")
- N_("file has no program header")
-};
-
-
-static const uint_fast16_t msgidx[ELF_E_NUM] =
-{
- [ELF_E_NOERROR] = ELF_E_NOERROR_IDX,
- [ELF_E_UNKNOWN_ERROR] = ELF_E_UNKNOWN_ERROR_IDX,
- [ELF_E_UNKNOWN_VERSION] = ELF_E_UNKNOWN_VERSION_IDX,
- [ELF_E_UNKNOWN_TYPE] = ELF_E_UNKNOWN_TYPE_IDX,
- [ELF_E_INVALID_HANDLE] = ELF_E_INVALID_HANDLE_IDX,
- [ELF_E_SOURCE_SIZE] = ELF_E_SOURCE_SIZE_IDX,
- [ELF_E_DEST_SIZE] = ELF_E_DEST_SIZE_IDX,
- [ELF_E_INVALID_ENCODING] = ELF_E_INVALID_ENCODING_IDX,
- [ELF_E_NOMEM] = ELF_E_NOMEM_IDX,
- [ELF_E_INVALID_FILE] = ELF_E_INVALID_FILE_IDX,
- [ELF_E_INVALID_OP] = ELF_E_INVALID_OP_IDX,
- [ELF_E_NO_VERSION] = ELF_E_NO_VERSION_IDX,
- [ELF_E_INVALID_CMD] = ELF_E_INVALID_CMD_IDX,
- [ELF_E_RANGE] = ELF_E_RANGE_IDX,
- [ELF_E_ARCHIVE_FMAG] = ELF_E_ARCHIVE_FMAG_IDX,
- [ELF_E_INVALID_ARCHIVE] = ELF_E_INVALID_ARCHIVE_IDX,
- [ELF_E_NO_ARCHIVE] = ELF_E_NO_ARCHIVE_IDX,
- [ELF_E_NO_INDEX] = ELF_E_NO_INDEX_IDX,
- [ELF_E_READ_ERROR] = ELF_E_READ_ERROR_IDX,
- [ELF_E_WRITE_ERROR] = ELF_E_WRITE_ERROR_IDX,
- [ELF_E_INVALID_CLASS] = ELF_E_INVALID_CLASS_IDX,
- [ELF_E_INVALID_INDEX] = ELF_E_INVALID_INDEX_IDX,
- [ELF_E_INVALID_OPERAND] = ELF_E_INVALID_OPERAND_IDX,
- [ELF_E_INVALID_SECTION] = ELF_E_INVALID_SECTION_IDX,
- [ELF_E_INVALID_COMMAND] = ELF_E_INVALID_COMMAND_IDX,
- [ELF_E_WRONG_ORDER_EHDR] = ELF_E_WRONG_ORDER_EHDR_IDX,
- [ELF_E_FD_DISABLED] = ELF_E_FD_DISABLED_IDX,
- [ELF_E_FD_MISMATCH] = ELF_E_FD_MISMATCH_IDX,
- [ELF_E_OFFSET_RANGE] = ELF_E_OFFSET_RANGE_IDX,
- [ELF_E_NOT_NUL_SECTION] = ELF_E_NOT_NUL_SECTION_IDX,
- [ELF_E_DATA_MISMATCH] = ELF_E_DATA_MISMATCH_IDX,
- [ELF_E_INVALID_SECTION_HEADER] = ELF_E_INVALID_SECTION_HEADER_IDX,
- [ELF_E_INVALID_DATA] = ELF_E_INVALID_DATA_IDX,
- [ELF_E_DATA_ENCODING] = ELF_E_DATA_ENCODING_IDX,
- [ELF_E_SECTION_TOO_SMALL] = ELF_E_SECTION_TOO_SMALL_IDX,
- [ELF_E_INVALID_ALIGN] = ELF_E_INVALID_ALIGN_IDX,
- [ELF_E_INVALID_SHENTSIZE] = ELF_E_INVALID_SHENTSIZE_IDX,
- [ELF_E_UPDATE_RO] = ELF_E_UPDATE_RO_IDX,
- [ELF_E_NOFILE] = ELF_E_NOFILE_IDX,
- [ELF_E_GROUP_NOT_REL] = ELF_E_GROUP_NOT_REL_IDX,
- [ELF_E_INVALID_PHDR] = ELF_E_INVALID_PHDR_IDX,
- [ELF_E_NO_PHDR] = ELF_E_NO_PHDR_IDX
-};
-#define nmsgidx ((int) (sizeof (msgidx) / sizeof (msgidx[0])))
-
-
-void
-__libelf_seterrno (value)
- int value;
-{
-#ifndef USE_TLS
- /* If we have not yet initialized the buffer do it now. */
- once_execute (once, init);
-
- if (threaded)
- /* We do not allocate memory for the data. It is only a word.
- We can store it in place of the pointer. */
- setspecific (key, (void *) (intptr_t) value);
-#endif /* TLS */
-
- global_error = value >= 0 && value < nmsgidx ? value : ELF_E_UNKNOWN_ERROR;
-}
-
-
-const char *
-elf_errmsg (error)
- int error;
-{
- int last_error;
-
-#ifndef USE_TLS
- /* If we have not yet initialized the buffer do it now. */
- once_execute (once, init);
-
- if ((error == 0 || error == -1) && threaded)
- /* We do not allocate memory for the data. It is only a word.
- We can store it in place of the pointer. */
- last_error = (intptr_t) getspecific (key);
- else
-#endif /* TLS */
- last_error = global_error;
-
- if (error == 0)
- {
- assert (msgidx[last_error] < sizeof (msgstr));
- return last_error != 0 ? _(msgstr + msgidx[last_error]) : NULL;
- }
- else if (error < -1 || error >= nmsgidx)
- return _(msgstr + ELF_E_UNKNOWN_ERROR_IDX);
-
- assert (msgidx[error == -1 ? last_error : error] < sizeof (msgstr));
- return _(msgstr + msgidx[error == -1 ? last_error : error]);
-}
-
-
-#ifndef USE_TLS
-/* Free the thread specific data, this is done if a thread terminates. */
-static void
-free_key_mem (void *mem)
-{
- setspecific (key, NULL);
-}
-
-
-/* Initialize the key for the global variable. */
-static void
-init (void)
-{
- // XXX Screw you, gcc4, the unused function attribute does not work.
- __asm ("" :: "r" (free_key_mem));
-
- if (key_create (&key, free_key_mem) == 0)
- /* Creating the key succeeded. */
- threaded = true;
-}
-#endif /* TLS */
diff --git a/libelf/elf_fill.c b/libelf/elf_fill.c
deleted file mode 100644
index 2880c2ed..00000000
--- a/libelf/elf_fill.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Set fill byte used when constructing ELF objects.
- Copyright (C) 1998, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-
-#include "libelfP.h"
-
-extern int __libelf_fill_byte = 0;
-
-void
-elf_fill (fill)
- int fill;
-{
- __libelf_fill_byte = fill;
-}
diff --git a/libelf/elf_flagdata.c b/libelf/elf_flagdata.c
deleted file mode 100644
index b5191316..00000000
--- a/libelf/elf_flagdata.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Manipulate ELF data flag.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-unsigned int
-elf_flagdata (data, cmd, flags)
- Elf_Data *data;
- Elf_Cmd cmd;
- unsigned int flags;
-{
- Elf_Data_Scn *data_scn;
- unsigned int result;
-
- if (data == NULL)
- return 0;
-
- data_scn = (Elf_Data_Scn *) data;
-
- if (data_scn == NULL || unlikely (data_scn->s->elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return 0;
- }
-
- if (likely (cmd == ELF_C_SET))
- result = (data_scn->s->flags |= (flags & ELF_F_DIRTY));
- else if (likely (cmd == ELF_C_CLR))
- result = (data_scn->s->flags &= ~(flags & ELF_F_DIRTY));
- else
- {
- __libelf_seterrno (ELF_E_INVALID_COMMAND);
- return 0;
- }
-
- return result;
-}
diff --git a/libelf/elf_flagehdr.c b/libelf/elf_flagehdr.c
deleted file mode 100644
index 2099fc51..00000000
--- a/libelf/elf_flagehdr.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Manipulate ELF header flags.
- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-unsigned int
-elf_flagehdr (elf, cmd, flags)
- Elf *elf;
- Elf_Cmd cmd;
- unsigned int flags;
-{
- unsigned int result;
-
- if (elf == NULL)
- return 0;
-
- if (unlikely (elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return 0;
- }
-
- if (likely (cmd == ELF_C_SET))
- result = (elf->state.elf.ehdr_flags |= (flags & ELF_F_DIRTY));
- else if (cmd == ELF_C_CLR)
- result = (elf->state.elf.ehdr_flags &= ~(flags & ELF_F_DIRTY));
- else
- {
- __libelf_seterrno (ELF_E_INVALID_COMMAND);
- return 0;
- }
-
- return result;
-}
diff --git a/libelf/elf_flagelf.c b/libelf/elf_flagelf.c
deleted file mode 100644
index 3a001f67..00000000
--- a/libelf/elf_flagelf.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Manipulate ELF file flags.
- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-unsigned int
-elf_flagelf (elf, cmd, flags)
- Elf *elf;
- Elf_Cmd cmd;
- unsigned int flags;
-{
- unsigned int result;
-
- if (elf == NULL)
- return 0;
-
- if (unlikely (elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return 0;
- }
-
- if (likely (cmd == ELF_C_SET))
- result = (elf->flags
- |= (flags & (ELF_F_DIRTY | ELF_F_LAYOUT | ELF_F_PERMISSIVE)));
- else if (likely (cmd == ELF_C_CLR))
- result = (elf->flags
- &= ~(flags & (ELF_F_DIRTY | ELF_F_LAYOUT | ELF_F_PERMISSIVE)));
- else
- {
- __libelf_seterrno (ELF_E_INVALID_COMMAND);
- return 0;
- }
-
- return result;
-}
diff --git a/libelf/elf_flagphdr.c b/libelf/elf_flagphdr.c
deleted file mode 100644
index c2f8794d..00000000
--- a/libelf/elf_flagphdr.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Manipulate ELF program header flags.
- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-unsigned int
-elf_flagphdr (elf, cmd, flags)
- Elf *elf;
- Elf_Cmd cmd;
- unsigned int flags;
-{
- unsigned int result;
-
- if (elf == NULL)
- return 0;
-
- if (unlikely (elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return 0;
- }
-
- if (likely (cmd == ELF_C_SET))
- result = (elf->state.elf.phdr_flags |= (flags & ELF_F_DIRTY));
- else if (likely (cmd == ELF_C_CLR))
- result = (elf->state.elf.phdr_flags &= ~(flags & ELF_F_DIRTY));
- else
- {
- __libelf_seterrno (ELF_E_INVALID_COMMAND);
- return 0;
- }
-
- return result;
-}
diff --git a/libelf/elf_flagscn.c b/libelf/elf_flagscn.c
deleted file mode 100644
index 9cd1cc40..00000000
--- a/libelf/elf_flagscn.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Manipulate ELF section flags.
- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-unsigned int
-elf_flagscn (scn, cmd, flags)
- Elf_Scn *scn;
- Elf_Cmd cmd;
- unsigned int flags;
-{
- unsigned int result;
-
- if (scn == NULL)
- return 0;
-
- if (unlikely (scn->elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return 0;
- }
-
- if (likely (cmd == ELF_C_SET))
- result = (scn->flags |= (flags & ELF_F_DIRTY));
- else if (likely (cmd == ELF_C_CLR))
- result = (scn->flags &= ~(flags & ELF_F_DIRTY));
- else
- {
- __libelf_seterrno (ELF_E_INVALID_COMMAND);
- return 0;
- }
-
- return result;
-}
diff --git a/libelf/elf_flagshdr.c b/libelf/elf_flagshdr.c
deleted file mode 100644
index 0972d27f..00000000
--- a/libelf/elf_flagshdr.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Manipulate ELF section header flags.
- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-unsigned int
-elf_flagshdr (scn, cmd, flags)
- Elf_Scn *scn;
- Elf_Cmd cmd;
- unsigned int flags;
-{
- unsigned int result;
-
- if (scn == NULL)
- return 0;
-
- if (unlikely (scn->elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return 0;
- }
-
- if (likely (cmd == ELF_C_SET))
- result = (scn->shdr_flags |= (flags & ELF_F_DIRTY));
- else if (likely (cmd == ELF_C_CLR))
- result = (scn->shdr_flags &= ~(flags & ELF_F_DIRTY));
- else
- {
- __libelf_seterrno (ELF_E_INVALID_COMMAND);
- return 0;
- }
-
- return result;
-}
diff --git a/libelf/elf_getarhdr.c b/libelf/elf_getarhdr.c
deleted file mode 100644
index da0b4a42..00000000
--- a/libelf/elf_getarhdr.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Read header of next archive member.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-Elf_Arhdr *
-elf_getarhdr (elf)
- Elf *elf;
-{
- Elf *parent = elf->parent;
-
- /* Calling this function is not ok for any file type but archives. */
- if (parent == NULL)
- {
- __libelf_seterrno (ELF_E_INVALID_OP);
- return NULL;
- }
-
- /* Make sure we have read the archive header. */
- if (parent->state.ar.elf_ar_hdr.ar_name == NULL
- && __libelf_next_arhdr (parent) != 0)
- /* Something went wrong. Maybe there is no member left. */
- return NULL;
-
-
- /* We can be sure the parent is an archive. */
- assert (parent->kind == ELF_K_AR);
-
- return &parent->state.ar.elf_ar_hdr;
-}
diff --git a/libelf/elf_getarsym.c b/libelf/elf_getarsym.c
deleted file mode 100644
index 33e4bff4..00000000
--- a/libelf/elf_getarsym.c
+++ /dev/null
@@ -1,251 +0,0 @@
-/* Return symbol table of archive.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-//#include <byteswap.h>
-//#include <endian.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <dl-hash.h>
-#include "libelfP.h"
-
-
-Elf_Arsym *
-elf_getarsym (elf, ptr)
- Elf *elf;
- size_t *ptr;
-{
- Elf_Arsym *result;
-
- if (elf->kind != ELF_K_AR)
- {
- /* This is no archive. */
- __libelf_seterrno (ELF_E_NO_ARCHIVE);
- return NULL;
- }
-
- if (ptr != NULL)
- /* In case of an error or when we know the value store the expected
- value now. Doing this allows us easier exits in an error case. */
- *ptr = elf->state.ar.ar_sym_num;
-
- if (elf->state.ar.ar_sym == (Elf_Arsym *) -1l)
- {
- /* There is no index. */
- __libelf_seterrno (ELF_E_NO_INDEX);
- return NULL;
- }
-
- result = elf->state.ar.ar_sym;
- if (result == NULL)
- {
- /* We have not yet read the index. */
- struct ar_hdr *index_hdr;
- uint32_t n;
- size_t index_size;
- char tmpbuf[17];
- size_t ar_sym_len;
- Elf_Arsym *arsym;
- size_t cnt;
-
- rwlock_wrlock (elf->lock);
-
- /* In case we find no index remember this for the next call. */
- elf->state.ar.ar_sym = (Elf_Arsym *) -1l;
-
- if (elf->map_address == NULL)
- {
- /* We must read index from the file. */
- assert (elf->fildes != -1);
- if (pread (elf->fildes, &elf->state.ar.ar_hdr,
- sizeof (struct ar_hdr), elf->start_offset + SARMAG)
- != sizeof (struct ar_hdr))
- {
- /* It is not possible to read the index. Maybe it does not
- exist. */
- __libelf_seterrno (ELF_E_READ_ERROR);
- goto out;
- }
-
- index_hdr = &elf->state.ar.ar_hdr;
- }
- else
- {
- if (SARMAG + sizeof (struct ar_hdr) > elf->maximum_size)
- {
- /* There is no room for the full archive. */
- __libelf_seterrno (ELF_E_NO_INDEX);
- goto out;
- }
-
- index_hdr = (struct ar_hdr *) (elf->map_address
- + elf->start_offset + SARMAG);
- }
-
- /* Now test whether this really is an archive. */
- if (memcmp (index_hdr->ar_fmag, ARFMAG, 2) != 0)
- {
- /* Invalid magic bytes. */
- __libelf_seterrno (ELF_E_ARCHIVE_FMAG);
- goto out;
- }
-
- /* Now test whether this is the index. It is denoted by the
- name being "/ ".
- XXX This is not entirely true. There are some more forms.
- Which of them shall we handle? */
- if (memcmp (index_hdr->ar_name, "/ ", 16) != 0)
- {
- /* If the index is not the first entry, there is no index.
-
- XXX Is this true? */
- __libelf_seterrno (ELF_E_NO_INDEX);
- goto out;
- }
-
- /* We have an archive. The first word in there is the number of
- entries in the table. */
- if (elf->map_address == NULL)
- {
- if (pread (elf->fildes, &n, sizeof (n),
- elf->start_offset + SARMAG + sizeof (struct ar_hdr))
- != sizeof (n))
- {
- /* Cannot read the number of entries. */
- __libelf_seterrno (ELF_E_NO_INDEX);
- goto out;
- }
- }
- else
- n = *(uint32_t *) (elf->map_address + elf->start_offset
- + SARMAG + sizeof (struct ar_hdr));
-
- if (__BYTE_ORDER == __LITTLE_ENDIAN)
- n = bswap_32 (n);
-
- /* Now we can perform some first tests on whether all the data
- needed for the index is available. */
- memcpy (tmpbuf, index_hdr->ar_size, 10);
- tmpbuf[10] = '\0';
- index_size = atol (tmpbuf);
-
- if (SARMAG + sizeof (struct ar_hdr) + index_size > elf->maximum_size
- || n * sizeof (uint32_t) > index_size)
- {
- /* This index table cannot be right since it does not fit into
- the file. */
- __libelf_seterrno (ELF_E_NO_INDEX);
- goto out;
- }
-
- /* Now we can allocate the arrays needed to store the index. */
- ar_sym_len = (n + 1) * sizeof (Elf_Arsym);
- elf->state.ar.ar_sym = (Elf_Arsym *) malloc (ar_sym_len);
- if (elf->state.ar.ar_sym != NULL)
- {
- uint32_t *file_data;
- char *str_data;
-
- if (elf->map_address == NULL)
- {
- char *new_str;
- Elf_Arsym *newp;
-
- file_data = (uint32_t *) alloca (n * sizeof (uint32_t));
-
- ar_sym_len += index_size - n * sizeof (uint32_t);
- newp = (Elf_Arsym *) realloc (elf->state.ar.ar_sym,
- ar_sym_len);
- if (newp == NULL)
- {
- free (elf->state.ar.ar_sym);
- elf->state.ar.ar_sym = NULL;
- __libelf_seterrno (ELF_E_NOMEM);
- goto out;
- }
- elf->state.ar.ar_sym = newp;
-
- new_str = (char *) (elf->state.ar.ar_sym + n + 1);
-
- /* Now read the data from the file. */
- if ((size_t) pread (elf->fildes, file_data,
- n * sizeof (uint32_t), elf->start_offset
- + SARMAG + sizeof (struct ar_hdr)
- + sizeof (uint32_t)) != n * sizeof (uint32_t)
- || ((size_t) pread (elf->fildes, new_str,
- index_size - n * sizeof (uint32_t),
- elf->start_offset
- + SARMAG + sizeof (struct ar_hdr)
- + (n + 1) * sizeof (uint32_t))
- != index_size - n * sizeof (uint32_t)))
- {
- /* We were not able to read the data. */
- free (elf->state.ar.ar_sym);
- elf->state.ar.ar_sym = NULL;
- __libelf_seterrno (ELF_E_NO_INDEX);
- goto out;
- }
-
- str_data = (char *) new_str;
- }
- else
- {
- file_data = (uint32_t *) (elf->map_address + elf->start_offset
- + SARMAG + sizeof (struct ar_hdr)
- + sizeof (uint32_t));
- str_data = (char *) &file_data[n];
- }
-
- /* Now we can build the data structure. */
- arsym = elf->state.ar.ar_sym;
- for (cnt = 0; cnt < n; ++cnt)
- {
- arsym[cnt].as_name = str_data;
- if (__BYTE_ORDER == __LITTLE_ENDIAN)
- arsym[cnt].as_off = bswap_32 (file_data[cnt]);
- else
- arsym[cnt].as_off = file_data[cnt];
- arsym[cnt].as_hash = _dl_elf_hash (str_data);
- str_data = rawmemchr (str_data, '\0') + 1;
- }
- /* At the end a special entry. */
- arsym[n].as_name = NULL;
- arsym[n].as_off = 0;
- arsym[n].as_hash = ~0UL;
-
- /* Tell the caller how many entries we have. */
- elf->state.ar.ar_sym_num = n + 1;
- }
-
- result = elf->state.ar.ar_sym;
-
- out:
- rwlock_unlock (elf->lock);
- }
-
- if (ptr != NULL)
- *ptr = elf->state.ar.ar_sym_num;
-
- return result;
-}
diff --git a/libelf/elf_getbase.c b/libelf/elf_getbase.c
deleted file mode 100644
index ea76f416..00000000
--- a/libelf/elf_getbase.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Return offset of first byte for the object.
- Copyright (C) 1998, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-off_t
-elf_getbase (elf)
- Elf *elf;
-{
- return elf == NULL ? (off_t) -1 : elf->start_offset;
-}
diff --git a/libelf/elf_getdata.c b/libelf/elf_getdata.c
deleted file mode 100644
index 2d5f27af..00000000
--- a/libelf/elf_getdata.c
+++ /dev/null
@@ -1,454 +0,0 @@
-/* Return the next data element from the section after possibly converting it.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stddef.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "libelfP.h"
-#include "common.h"
-#include "elf-knowledge.h"
-
-
-#if _STRING_ARCH_unaligned
-# define ALLOW_ALIGNED 1
-#else
-# define ALLOW_ALIGNED 0
-#endif
-
-
-#define TYPEIDX(Sh_Type) \
- (Sh_Type >= SHT_NULL && Sh_Type < SHT_NUM \
- ? Sh_Type \
- : (Sh_Type >= SHT_GNU_LIBLIST && Sh_Type <= SHT_HISUNW \
- ? SHT_NUM + Sh_Type - SHT_GNU_LIBLIST \
- : 0))
-
-static const struct
-{
- Elf_Type type;
- size_t size;
-#if ALLOW_ALIGNED
-# define AL(val)
-#else
- size_t align;
-# define AL(val), val
-#endif
-} shtype_map[EV_NUM - 1][ELFCLASSNUM - 1][TYPEIDX (SHT_HISUNW) + 1] =
-{
- [EV_CURRENT - 1] =
- {
- [ELFCLASS32 - 1] =
- {
- /* Associate section types with libelf types, their sizes and
- alignment. SHT_GNU_verdef is special since the section does
- not contain entries of only one size. */
-#define DEFINE(Bits) \
- [SHT_SYMTAB] = { ELF_T_SYM, sizeof (ElfW2(Bits,Sym)) \
- AL (__alignof__ (ElfW2(Bits,Sym))) }, \
- [SHT_RELA] = { ELF_T_RELA, sizeof (ElfW2(Bits,Rela)) \
- AL (__alignof__ (ElfW2(Bits,Rela))) }, \
- [SHT_HASH] = { ELF_T_WORD, sizeof (ElfW2(Bits,Word)) \
- AL (__alignof__ (ElfW2(Bits,Word))) }, \
- [SHT_DYNAMIC] = { ELF_T_DYN, sizeof (ElfW2(Bits,Dyn)) \
- AL (__alignof__ (ElfW2(Bits,Dyn))) }, \
- [SHT_REL] = { ELF_T_REL, sizeof (ElfW2(Bits,Rel)) \
- AL (__alignof__ (ElfW2(Bits,Rel))) }, \
- [SHT_DYNSYM] = { ELF_T_SYM, sizeof (ElfW2(Bits,Sym)) \
- AL (__alignof__ (ElfW2(Bits,Sym))) }, \
- [SHT_INIT_ARRAY] = { ELF_T_ADDR, sizeof (ElfW2(Bits,Addr)) \
- AL (__alignof__ (ElfW2(Bits,Addr))) }, \
- [SHT_FINI_ARRAY] = { ELF_T_ADDR, sizeof (ElfW2(Bits,Addr)) \
- AL (__alignof__ (ElfW2(Bits,Addr))) }, \
- [SHT_PREINIT_ARRAY] = { ELF_T_ADDR, sizeof (ElfW2(Bits,Addr)) \
- AL (__alignof__ (ElfW2(Bits,Addr))) }, \
- [SHT_GROUP] = { ELF_T_WORD, sizeof (Elf32_Word) \
- AL (__alignof__ (Elf32_Word)) }, \
- [SHT_SYMTAB_SHNDX] = { ELF_T_WORD, sizeof (Elf32_Word) \
- AL (__alignof__ (Elf32_Word)) }, \
- [TYPEIDX (SHT_GNU_verdef)] = { ELF_T_VDEF, 1 AL (1) }, \
- [TYPEIDX (SHT_GNU_verneed)] = { ELF_T_VNEED, \
- sizeof (ElfW2(Bits,Verneed)) \
- AL (__alignof__ (ElfW2(Bits,Verneed)))},\
- [TYPEIDX (SHT_GNU_versym)] = { ELF_T_HALF, sizeof (ElfW2(Bits,Versym)) \
- AL (__alignof__ (ElfW2(Bits,Versym))) }, \
- [TYPEIDX (SHT_SUNW_syminfo)] = { ELF_T_SYMINFO, \
- sizeof (ElfW2(Bits,Syminfo)) \
- AL(__alignof__ (ElfW2(Bits,Syminfo)))},\
- [TYPEIDX (SHT_SUNW_move)] = { ELF_T_MOVE, sizeof (ElfW2(Bits,Move)) \
- AL (__alignof__ (ElfW2(Bits,Move))) }, \
- [TYPEIDX (SHT_GNU_LIBLIST)] = { ELF_T_LIB, sizeof (ElfW2(Bits,Lib)) \
- AL (__alignof__ (ElfW2(Bits,Lib))) }
- DEFINE (32)
- },
- [ELFCLASS64 - 1] =
- {
- DEFINE (64)
- }
- }
-};
-
-
-/* Convert the data in the current section. */
-static void
-convert_data (Elf_Scn *scn, int version, int eclass, int data,
- size_t size, size_t type)
-{
-#if ALLOW_ALIGNED
- /* No need to compute the alignment requirement of the host. */
- const size_t align = 1;
-#else
-# if EV_NUM != 2
- size_t align = shtype_map[__libelf_version - 1][eclass - 1][type].align;
-# else
- size_t align = shtype_map[0][eclass - 1][type].align;
-# endif
-#endif
-
- if (data == MY_ELFDATA)
- {
- if (ALLOW_ALIGNED
- || (((size_t) ((char *) scn->rawdata_base)) & (align - 1)) == 0)
- /* No need to copy, we can use the raw data. */
- scn->data_base = scn->rawdata_base;
- else
- {
- scn->data_base = (char *) malloc (size);
- if (scn->data_base == NULL)
- {
- __libelf_seterrno (ELF_E_NOMEM);
- return;
- }
-
- /* The copy will be appropriately aligned for direct access. */
- memcpy (scn->data_base, scn->rawdata_base, size);
- }
- }
- else
- {
- xfct_t fp;
-
- scn->data_base = (char *) malloc (size);
- if (scn->data_base == NULL)
- {
- __libelf_seterrno (ELF_E_NOMEM);
- return;
- }
-
- /* Get the conversion function. */
-#if EV_NUM != 2
- fp = __elf_xfctstom[version - 1][__libelf_version - 1][eclass - 1][type];
-#else
- fp = __elf_xfctstom[0][0][eclass - 1][type];
-#endif
-
- fp (scn->data_base, scn->rawdata_base, size, 0);
- }
-
- scn->data_list.data.d.d_buf = scn->data_base;
- scn->data_list.data.d.d_size = size;
- scn->data_list.data.d.d_type = type;
- scn->data_list.data.d.d_off = scn->rawdata.d.d_off;
- scn->data_list.data.d.d_align = scn->rawdata.d.d_align;
- scn->data_list.data.d.d_version = scn->rawdata.d.d_version;
-
- scn->data_list.data.s = scn;
-}
-
-
-/* Store the information for the raw data in the `rawdata' element. */
-int
-internal_function_def
-__libelf_set_rawdata (Elf_Scn *scn)
-{
- size_t offset;
- size_t size;
- size_t align;
- int type;
- Elf *elf = scn->elf;
-
- if (elf->class == ELFCLASS32)
- {
- Elf32_Shdr *shdr = scn->shdr.e32 ?: INTUSE(elf32_getshdr) (scn);
-
- if (shdr == NULL)
- /* Something went terribly wrong. */
- return 1;
-
- offset = shdr->sh_offset;
- size = shdr->sh_size;
- type = shdr->sh_type;
- align = shdr->sh_addralign;
- }
- else
- {
- Elf64_Shdr *shdr = scn->shdr.e64 ?: INTUSE(elf64_getshdr) (scn);
-
- if (shdr == NULL)
- /* Something went terribly wrong. */
- return 1;
-
- offset = shdr->sh_offset;
- size = shdr->sh_size;
- type = shdr->sh_type;
- align = shdr->sh_addralign;
- }
-
- /* If the section has no data (for whatever reason), leave the `d_buf'
- pointer NULL. */
- if (size != 0 && type != SHT_NOBITS)
- {
- /* First a test whether the section is valid at all. */
- size_t entsize;
-
- if (type == SHT_HASH)
- {
- GElf_Ehdr ehdr_mem;
-
- entsize = SH_ENTSIZE_HASH (gelf_getehdr (elf, &ehdr_mem));
- }
- else
- {
-#if EV_NUM != 2
- entsize = shtype_map[__libelf_version - 1][elf->class - 1][TYPEIDX (type)].size;
-#else
- entsize = shtype_map[0][elf->class - 1][TYPEIDX (type)].size;
-#endif
- }
-
- /* We assume it is an array of bytes if it is none of the structured
- sections we know of. */
- if (entsize == 0)
- entsize = 1;
-
- if (size % entsize != 0)
- {
- __libelf_seterrno (ELF_E_INVALID_DATA);
- return 1;
- }
-
- /* We can use the mapped or loaded data if available. */
- if (elf->map_address != NULL)
- {
- /* First see whether the information in the section header is
- valid and it does not ask for too much. */
- if (offset + size > elf->maximum_size)
- {
- /* Something is wrong. */
- __libelf_seterrno (ELF_E_INVALID_SECTION_HEADER);
- return 1;
- }
-
- scn->rawdata_base = scn->rawdata.d.d_buf
- = (char *) elf->map_address + elf->start_offset + offset;
- }
- else if (elf->fildes != -1)
- {
- /* We have to read the data from the file. Allocate the needed
- memory. */
- scn->rawdata_base = scn->rawdata.d.d_buf
- = (char *) malloc (size);
- if (scn->rawdata.d.d_buf == NULL)
- {
- __libelf_seterrno (ELF_E_NOMEM);
- return 1;
- }
-
- if ((size_t) pread (elf->fildes, scn->rawdata.d.d_buf, size,
- elf->start_offset + offset) != size)
- {
- /* Cannot read the data. */
- free (scn->rawdata.d.d_buf);
- scn->rawdata_base = scn->rawdata.d.d_buf = NULL;
- __libelf_seterrno (ELF_E_READ_ERROR);
- return 1;
- }
- }
- else
- {
- /* The file descriptor is already closed, we cannot get the data
- anymore. */
- __libelf_seterrno (ELF_E_FD_DISABLED);
- return 1;
- }
- }
-
- scn->rawdata.d.d_size = size;
- /* Some broken ELF ABI for 64-bit machines use the wrong hash table
- entry size. See elf-knowledge.h for more information. */
- if (type == SHT_HASH && elf->class == ELFCLASS64)
- {
- GElf_Ehdr ehdr_mem;
-
- scn->rawdata.d.d_type = (SH_ENTSIZE_HASH (gelf_getehdr (elf, &ehdr_mem))
- == 4 ? ELF_T_WORD : ELF_T_XWORD);
- }
- else
- {
-#if EV_NUM != 2
- scn->rawdata.d.d_type =
- shtype_map[__libelf_version - 1][elf->class - 1][TYPEIDX (type)].type;
-#else
- scn->rawdata.d.d_type =
- shtype_map[0][elf->class - 1][TYPEIDX (type)].type;
-#endif
- }
- scn->rawdata.d.d_off = 0;
- scn->rawdata.d.d_align = align;
- if (elf->class == ELFCLASS32
- || (offsetof (struct Elf, state.elf32.ehdr)
- == offsetof (struct Elf, state.elf64.ehdr)))
- scn->rawdata.d.d_version =
- elf->state.elf32.ehdr->e_ident[EI_VERSION];
- else
- scn->rawdata.d.d_version =
- elf->state.elf64.ehdr->e_ident[EI_VERSION];
-
- scn->rawdata.s = scn;
-
- scn->data_read = 1;
-
- /* We actually read data from the file. At least we tried. */
- scn->flags |= ELF_F_FILEDATA;
-
- return 0;
-}
-
-
-Elf_Data *
-elf_getdata (scn, data)
- Elf_Scn *scn;
- Elf_Data *data;
-{
- Elf_Data *result = NULL;
- Elf *elf;
-
- if (scn == NULL)
- return NULL;
-
- if (unlikely (scn->elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- /* We will need this multiple times later on. */
- elf = scn->elf;
-
- rwlock_rdlock (elf->lock);
-
- /* If `data' is not NULL this means we are not addressing the initial
- data in the file. But this also means this data is already read
- (since otherwise it is not possible to have a valid `data' pointer)
- and all the data structures are initialized as well. In this case
- we can simply walk the list of data records. */
- if (data != NULL)
- {
- Elf_Data_List *runp;
-
- /* It is not possible that if DATA is not NULL the first entry is
- returned. But this also means that there must be a first data
- entry. */
- if (scn->data_list_rear == NULL
- /* The section the reference data is for must match the section
- parameter. */
- || unlikely (((Elf_Data_Scn *) data)->s != scn))
- {
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- goto out;
- }
-
- /* We start searching with the first entry. */
- runp = &scn->data_list;
-
- while (1)
- {
- /* If `data' does not match any known record punt. */
- if (runp == NULL)
- {
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- goto out;
- }
-
- if (&runp->data.d == data)
- /* Found the entry. */
- break;
-
- runp = runp->next;
- }
-
- /* Return the data for the next data record. */
- result = runp->next ? &runp->next->data.d : NULL;
- goto out;
- }
-
- /* If the data for this section was not yet initialized do it now. */
- if (scn->data_read == 0)
- {
- /* We cannot acquire a write lock while we are holding a read
- lock. Therefore give up the read lock and then get the write
- lock. But this means that the data could meanwhile be
- modified, therefore start the tests again. */
- rwlock_unlock (elf->lock);
- rwlock_wrlock (elf->lock);
-
- /* Read the data from the file. There is always a file (or
- memory region) associated with this descriptor since
- otherwise the `data_read' flag would be set. */
- if (scn->data_read == 0 && __libelf_set_rawdata (scn) != 0)
- /* Something went wrong. The error value is already set. */
- goto out;
- }
-
- /* At this point we know the raw data is available. But it might be
- empty in case the section has size zero (for whatever reason).
- Now create the converted data in case this is necessary. */
- if (scn->data_list_rear == NULL)
- {
- if (scn->rawdata.d.d_buf != NULL && scn->rawdata.d.d_size > 0)
- /* Convert according to the version and the type. */
- convert_data (scn, __libelf_version, elf->class,
- (elf->class == ELFCLASS32
- || (offsetof (struct Elf, state.elf32.ehdr)
- == offsetof (struct Elf, state.elf64.ehdr))
- ? elf->state.elf32.ehdr->e_ident[EI_DATA]
- : elf->state.elf64.ehdr->e_ident[EI_DATA]),
- scn->rawdata.d.d_size,
- scn->rawdata.d.d_type);
- else
- /* This is an empty or NOBITS section. There is no buffer but
- the size information etc is important. */
- scn->data_list.data.d = scn->rawdata.d;
-
- scn->data_list_rear = &scn->data_list;
- }
-
- /* If no data is present we cannot return any. */
- if (scn->data_list_rear != NULL)
- /* Return the first data element in the list. */
- result = &scn->data_list.data.d;
-
- out:
- rwlock_unlock (elf->lock);
-
- return result;
-}
-INTDEF(elf_getdata)
diff --git a/libelf/elf_getident.c b/libelf/elf_getident.c
deleted file mode 100644
index b673b5c6..00000000
--- a/libelf/elf_getident.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Retrieve file identification data.
- Copyright (C) 1998, 1999, 2000, 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-char *
-elf_getident (elf, ptr)
- Elf *elf;
- size_t *ptr;
-{
- /* In case this is no ELF file, the handle is invalid and we return
- NULL. */
- if (elf == NULL || elf->kind != ELF_K_ELF)
- {
- if (ptr != NULL)
- *ptr = 0;
- return NULL;
- }
-
- /* We already read the ELF header. Return a pointer to it and store
- the length in *PTR. */
- if (ptr != NULL)
- *ptr = EI_NIDENT;
-
- return (char *) (elf->class == ELFCLASS32
- || (offsetof (struct Elf, state.elf32.ehdr)
- == offsetof (struct Elf, state.elf64.ehdr))
- ? elf->state.elf32.ehdr->e_ident
- : elf->state.elf64.ehdr->e_ident);
-}
diff --git a/libelf/elf_getscn.c b/libelf/elf_getscn.c
deleted file mode 100644
index a6b4767c..00000000
--- a/libelf/elf_getscn.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Get section at specific index.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <stddef.h>
-#include <stdlib.h>
-
-#include "libelfP.h"
-
-
-Elf_Scn *
-elf_getscn (elf, idx)
- Elf *elf;
- size_t idx;
-{
- if (elf == NULL)
- return NULL;
-
- if (unlikely (elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- rwlock_rdlock (elf->lock);
-
- Elf_Scn *result = NULL;
-
- /* Find the section in the list. */
- Elf_ScnList *runp = (elf->class == ELFCLASS32
- || (offsetof (struct Elf, state.elf32.scns)
- == offsetof (struct Elf, state.elf64.scns))
- ? &elf->state.elf32.scns : &elf->state.elf64.scns);
- while (1)
- {
- if (idx < runp->max)
- {
- if (idx < runp->cnt)
- result = &runp->data[idx];
- else
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- break;
- }
-
- idx -= runp->max;
-
- runp = runp->next;
- if (runp == NULL)
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- break;
- }
- }
-
- rwlock_unlock (elf->lock);
-
- return result;
-}
-INTDEF(elf_getscn)
diff --git a/libelf/elf_getshnum.c b/libelf/elf_getshnum.c
deleted file mode 100644
index 52d6a056..00000000
--- a/libelf/elf_getshnum.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Return number of sections in the ELF file.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-int
-elf_getshnum (elf, dst)
- Elf *elf;
- size_t *dst;
-{
- int result = 0;
- int idx;
-
- if (elf == NULL)
- return -1;
-
- if (unlikely (elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return -1;
- }
-
- rwlock_rdlock (elf->lock);
-
- idx = elf->state.elf.scns_last->cnt;
- if (idx != 0
- || (elf->state.elf.scns_last
- != (elf->class == ELFCLASS32
- || (offsetof (Elf, state.elf32.scns)
- == offsetof (Elf, state.elf64.scns))
- ? &elf->state.elf32.scns : &elf->state.elf64.scns)))
- /* There is at least one section. */
- *dst = 1 + elf->state.elf.scns_last->data[idx - 1].index;
- else
- *dst = 0;
-
- rwlock_unlock (elf->lock);
-
- return result;
-}
-INTDEF(elf_getshnum)
diff --git a/libelf/elf_getshstrndx.c b/libelf/elf_getshstrndx.c
deleted file mode 100644
index 706092b7..00000000
--- a/libelf/elf_getshstrndx.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Return section index of section header string table.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <stddef.h>
-#include <unistd.h>
-
-#include "libelfP.h"
-#include "common.h"
-
-
-int
-elf_getshstrndx (elf, dst)
- Elf *elf;
- size_t *dst;
-{
- int result = 0;
-
- if (elf == NULL)
- return -1;
-
- if (unlikely (elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return -1;
- }
-
- rwlock_rdlock (elf->lock);
-
- /* We rely here on the fact that the `elf' element is a common prefix
- of `elf32' and `elf64'. */
- assert (offsetof (struct Elf, state.elf.ehdr)
- == offsetof (struct Elf, state.elf32.ehdr));
- assert (sizeof (elf->state.elf.ehdr)
- == sizeof (elf->state.elf32.ehdr));
- assert (offsetof (struct Elf, state.elf.ehdr)
- == offsetof (struct Elf, state.elf64.ehdr));
- assert (sizeof (elf->state.elf.ehdr)
- == sizeof (elf->state.elf64.ehdr));
-
- if (unlikely (elf->state.elf.ehdr == NULL))
- {
- __libelf_seterrno (ELF_E_WRONG_ORDER_EHDR);
- result = -1;
- }
- else
- {
- Elf32_Word num;
-
- num = (elf->class == ELFCLASS32
- ? elf->state.elf32.ehdr->e_shstrndx
- : elf->state.elf64.ehdr->e_shstrndx);
-
- /* Determine whether the index is too big to fit in the ELF
- header. */
- if (unlikely (num == SHN_XINDEX))
- {
- /* Yes. Search the zeroth section header. */
- if (elf->class == ELFCLASS32)
- {
- size_t offset;
-
- if (elf->state.elf32.scns.data[0].shdr.e32 != NULL)
- {
- num = elf->state.elf32.scns.data[0].shdr.e32->sh_link;
- goto success;
- }
-
- offset = elf->state.elf32.ehdr->e_shoff;
-
- if (elf->map_address != NULL
- && elf->state.elf32.ehdr->e_ident[EI_DATA] == MY_ELFDATA
- && (ALLOW_UNALIGNED
- || (((size_t) ((char *) elf->map_address + offset))
- & (__alignof__ (Elf32_Shdr) - 1)) == 0))
- /* We can directly access the memory. */
- num = ((Elf32_Shdr *) (elf->map_address + offset))->sh_link;
- else
- {
- /* We avoid reading in all the section headers. Just read
- the first one. */
- Elf32_Shdr shdr_mem;
-
- if (pread (elf->fildes, &shdr_mem, sizeof (Elf32_Shdr),
- offset) != sizeof (Elf32_Shdr))
- {
- /* We must be able to read this ELF section header. */
- __libelf_seterrno (ELF_E_INVALID_FILE);
- result = -1;
- goto out;
- }
-
- if (elf->state.elf32.ehdr->e_ident[EI_DATA] != MY_ELFDATA)
- CONVERT (shdr_mem.sh_link);
- num = shdr_mem.sh_link;
- }
- }
- else
- {
- size_t offset;
-
- if (elf->state.elf64.scns.data[0].shdr.e64 != NULL)
- {
- num = elf->state.elf64.scns.data[0].shdr.e64->sh_link;
- goto success;
- }
-
- offset = elf->state.elf64.ehdr->e_shoff;
-
- if (elf->map_address != NULL
- && elf->state.elf64.ehdr->e_ident[EI_DATA] == MY_ELFDATA
- && (ALLOW_UNALIGNED
- || (((size_t) ((char *) elf->map_address + offset))
- & (__alignof__ (Elf64_Shdr) - 1)) == 0))
- /* We can directly access the memory. */
- num = ((Elf64_Shdr *) (elf->map_address + offset))->sh_link;
- else
- {
- /* We avoid reading in all the section headers. Just read
- the first one. */
- Elf64_Shdr shdr_mem;
-
- if (pread (elf->fildes, &shdr_mem, sizeof (Elf64_Shdr),
- offset) != sizeof (Elf64_Shdr))
- {
- /* We must be able to read this ELF section header. */
- __libelf_seterrno (ELF_E_INVALID_FILE);
- result = -1;
- goto out;
- }
-
- if (elf->state.elf64.ehdr->e_ident[EI_DATA] != MY_ELFDATA)
- CONVERT (shdr_mem.sh_link);
- num = shdr_mem.sh_link;
- }
- }
- }
-
- /* Store the result. */
- success:
- *dst = num;
- }
-
- out:
- rwlock_unlock (elf->lock);
-
- return result;
-}
-INTDEF(elf_getshstrndx)
diff --git a/libelf/elf_hash.c b/libelf/elf_hash.c
deleted file mode 100644
index 38f4ae06..00000000
--- a/libelf/elf_hash.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Hash function used in ELF implementations.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelfP.h>
-
-/* Get the implementation. */
-#include <dl-hash.h>
-
-unsigned long int
-elf_hash (string)
- const char *string;
-{
- return _dl_elf_hash (string);
-}
-INTDEF(elf_hash)
diff --git a/libelf/elf_kind.c b/libelf/elf_kind.c
deleted file mode 100644
index a67ebe72..00000000
--- a/libelf/elf_kind.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Return the kind of file associated with the descriptor.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-Elf_Kind
-elf_kind (elf)
- Elf *elf;
-{
- return elf == NULL ? ELF_K_NONE : elf->kind;
-}
diff --git a/libelf/elf_memory.c b/libelf/elf_memory.c
deleted file mode 100644
index 57221f99..00000000
--- a/libelf/elf_memory.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Create descriptor for memory region.
- Copyright (C) 1999, 2000, 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-Elf *
-elf_memory (image, size)
- char *image;
- size_t size;
-{
- if (image == NULL)
- {
- __libelf_seterrno (ELF_E_INVALID_OPERAND);
- return NULL;
- }
-
- return __libelf_read_mmaped_file (-1, image, 0, size, ELF_C_READ, NULL);
-}
diff --git a/libelf/elf_ndxscn.c b/libelf/elf_ndxscn.c
deleted file mode 100644
index edd6bdae..00000000
--- a/libelf/elf_ndxscn.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Get index of section.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-size_t
-elf_ndxscn (scn)
- Elf_Scn *scn;
-{
- if (scn == NULL)
- return SHN_UNDEF;
-
- return scn->index;
-}
diff --git a/libelf/elf_newdata.c b/libelf/elf_newdata.c
deleted file mode 100644
index bae3b3f5..00000000
--- a/libelf/elf_newdata.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Create new, empty section data.
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stddef.h>
-#include <stdlib.h>
-
-#include "libelfP.h"
-
-
-Elf_Data *
-elf_newdata (Elf_Scn *scn)
-{
- Elf_Data_List *result = NULL;
-
- if (scn == NULL)
- return NULL;
-
- if (unlikely (scn->index == 0))
- {
- /* It is not allowed to add something to the 0th section. */
- __libelf_seterrno (ELF_E_NOT_NUL_SECTION);
- return NULL;
- }
-
- if (scn->elf->class == ELFCLASS32
- || (offsetof (struct Elf, state.elf32.ehdr)
- == offsetof (struct Elf, state.elf64.ehdr))
- ? scn->elf->state.elf32.ehdr == NULL
- : scn->elf->state.elf64.ehdr == NULL)
- {
- __libelf_seterrno (ELF_E_WRONG_ORDER_EHDR);
- return NULL;
- }
-
- rwlock_wrlock (scn->elf->lock);
-
- if (scn->data_read && scn->data_list_rear == NULL)
- {
- /* This means the section was created by the user and this is the
- first data. */
- result = &scn->data_list;
- result->flags = ELF_F_DIRTY;
- }
- else
- {
- /* Create a new, empty data descriptor. */
- result = (Elf_Data_List *) calloc (1, sizeof (Elf_Data_List));
- if (result == NULL)
- {
- __libelf_seterrno (ELF_E_NOMEM);
- goto out;
- }
-
- result->flags = ELF_F_DIRTY | ELF_F_MALLOCED;
-
- if (scn->data_list_rear == NULL)
- /* We create new data without reading/converting the data from the
- file. That is fine but we have to remember this. */
- scn->data_list_rear = &scn->data_list;
- }
-
- /* Set the predefined values. */
- result->data.d.d_version = __libelf_version;
-
- result->data.s = scn;
-
- /* Add to the end of the list. */
- if (scn->data_list_rear != NULL)
- scn->data_list_rear->next = result;
-
- scn->data_list_rear = result;
-
- out:
- rwlock_unlock (scn->elf->lock);
-
- /* Please note that the following is thread safe and is also defined
- for RESULT == NULL since it still return NULL. */
- return &result->data.d;
-}
diff --git a/libelf/elf_newscn.c b/libelf/elf_newscn.c
deleted file mode 100644
index f3ea0d80..00000000
--- a/libelf/elf_newscn.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Append new section.
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-Elf_Scn *
-elf_newscn (elf)
- Elf *elf;
-{
- Elf_Scn *result = NULL;
- bool first = false;
-
- if (elf == NULL)
- return NULL;
-
- /* We rely on the prefix of the `elf', `elf32', and `elf64' element
- being the same. */
- assert (offsetof (Elf, state.elf.scns_last)
- == offsetof (Elf, state.elf32.scns_last));
- assert (offsetof (Elf, state.elf.scns_last)
- == offsetof (Elf, state.elf64.scns_last));
- assert (offsetof (Elf, state.elf32.scns)
- == offsetof (Elf, state.elf64.scns));
-
- rwlock_wrlock (elf->lock);
-
- again:
- if (elf->state.elf.scns_last->cnt < elf->state.elf.scns_last->max)
- {
- result = &elf->state.elf.scns_last->data[elf->state.elf.scns_last->cnt];
-
- if (++elf->state.elf.scns_last->cnt == 1
- && (elf->state.elf.scns_last
- == (elf->class == ELFCLASS32
- || (offsetof (Elf, state.elf32.scns)
- == offsetof (Elf, state.elf64.scns))
- ? &elf->state.elf32.scns : &elf->state.elf64.scns)))
- /* This is zeroth section. */
- first = true;
- else
- {
- assert (elf->state.elf.scns_last->cnt > 1);
- result->index = result[-1].index + 1;
- }
- }
- else
- {
- /* We must allocate a new element. */
- Elf_ScnList *newp;
-
- assert (elf->state.elf.scnincr > 0);
-
- newp = (Elf_ScnList *) calloc (sizeof (Elf_ScnList)
- + ((elf->state.elf.scnincr *= 2)
- * sizeof (Elf_Scn)), 1);
- if (newp == NULL)
- {
- __libelf_seterrno (ELF_E_NOMEM);
- goto out;
- }
-
- result = &newp->data[0];
-
- /* One section used. */
- ++newp->cnt;
-
- /* This is the number of sections we allocated. */
- newp->max = elf->state.elf.scnincr;
-
- /* Remember the index for the first section in this block. */
- newp->data[0].index
- = 1 + elf->state.elf.scns_last->data[elf->state.elf.scns_last->max - 1].index;
-
- /* Enqueue the new list element. */
- elf->state.elf.scns_last = elf->state.elf.scns_last->next = newp;
- }
-
- /* Create a section header for this section. */
- if (elf->class == ELFCLASS32)
- {
- result->shdr.e32 = (Elf32_Shdr *) calloc (1, sizeof (Elf32_Shdr));
- if (result->shdr.e32 == NULL)
- {
- __libelf_seterrno (ELF_E_NOMEM);
- goto out;
- }
- }
- else
- {
- result->shdr.e64 = (Elf64_Shdr *) calloc (1, sizeof (Elf64_Shdr));
- if (result->shdr.e64 == NULL)
- {
- __libelf_seterrno (ELF_E_NOMEM);
- goto out;
- }
- }
-
- result->elf = elf;
- result->shdr_flags = ELF_F_DIRTY | ELF_F_MALLOCED;
- result->list = elf->state.elf.scns_last;
-
- /* Initialize the data part. */
- result->data_read = 1;
- if (unlikely (first))
- {
- /* For the first section we mark the data as already available. */
- //result->data_list_rear = &result->data_list;
- first = false;
- goto again;
- }
-
- result->flags |= ELF_F_DIRTY;
-
- out:
- rwlock_unlock (elf->lock);
-
- return result;
-}
diff --git a/libelf/elf_next.c b/libelf/elf_next.c
deleted file mode 100644
index 58a07753..00000000
--- a/libelf/elf_next.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Advance in archive to next element.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-Elf_Cmd
-elf_next (elf)
- Elf *elf;
-{
- Elf *parent;
-
- /* Be gratious, the specs demand it. */
- if (elf == NULL || elf->parent == NULL)
- return ELF_C_NULL;
-
- /* We can be sure the parent is an archive. */
- parent = elf->parent;
- assert (parent->kind == ELF_K_AR);
-
- /* Now advance the offset. */
- parent->state.ar.offset += (sizeof (struct ar_hdr)
- + ((parent->state.ar.elf_ar_hdr.ar_size + 1)
- & ~1l));
-
- /* Get the next archive header. */
- if (__libelf_next_arhdr (parent) != 0)
- return ELF_C_NULL;
-
- return elf->cmd;
-}
diff --git a/libelf/elf_nextscn.c b/libelf/elf_nextscn.c
deleted file mode 100644
index de9df64b..00000000
--- a/libelf/elf_nextscn.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Get next section.
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-Elf_Scn *
-elf_nextscn (elf, scn)
- Elf *elf;
- Elf_Scn *scn;
-{
- Elf_Scn *result = NULL;
-
- if (elf == NULL)
- return NULL;
-
- rwlock_rdlock (elf->lock);
-
- if (scn == NULL)
- {
- /* If no section handle is given return the first (not 0th) section. */
- if (elf->class == ELFCLASS32
- || (offsetof (Elf, state.elf32.scns)
- == offsetof (Elf, state.elf64.scns)))
- {
- if (elf->state.elf32.scns.cnt > 1)
- result = &elf->state.elf32.scns.data[1];
- }
- else
- {
- if (elf->state.elf64.scns.cnt > 1)
- result = &elf->state.elf64.scns.data[1];
- }
- }
- else
- {
- Elf_ScnList *list = scn->list;
-
- if (scn + 1 < &list->data[list->cnt])
- result = scn + 1;
- else if (scn + 1 == &list->data[list->max]
- && (list = list->next) != NULL)
- {
- /* If there is another element in the section list it must
- have at least one entry. */
- assert (list->cnt > 0);
- result = &list->data[0];
- }
- }
-
- rwlock_unlock (elf->lock);
-
- return result;
-}
-INTDEF(elf_nextscn)
diff --git a/libelf/elf_rand.c b/libelf/elf_rand.c
deleted file mode 100644
index 76c3862f..00000000
--- a/libelf/elf_rand.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Select specific element in archive.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-size_t
-elf_rand (elf, offset)
- Elf *elf;
- size_t offset;
-{
- /* Be gratious, the specs demand it. */
- if (elf == NULL || elf->kind != ELF_K_AR)
- return 0;
-
- /* Save the old offset and set the offset. */
- elf->state.ar.offset = elf->start_offset + offset;
-
- /* Get the next archive header. */
- if (__libelf_next_arhdr (elf) != 0)
- {
- /* Mark the archive header as unusable. */
- elf->state.ar.elf_ar_hdr.ar_name = NULL;
- return 0;
- }
-
- return offset;
-}
diff --git a/libelf/elf_rawdata.c b/libelf/elf_rawdata.c
deleted file mode 100644
index 547c37f4..00000000
--- a/libelf/elf_rawdata.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Return raw section content.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdlib.h>
-
-#include "libelfP.h"
-
-
-Elf_Data *
-elf_rawdata (scn, data)
- Elf_Scn *scn;
- Elf_Data *data;
-{
- if (scn == NULL || scn->elf->kind != ELF_K_ELF)
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- /* If `data' is not NULL this means we are not addressing the initial
- data in the file. But this also means this data is already read
- (since otherwise it is not possible to have a valid `data' pointer)
- and all the data structures are initialized as well. In this case
- we can simply walk the list of data records. */
- if (data != NULL
- || (scn->data_read != 0 && (scn->flags & ELF_F_FILEDATA) == 0))
- {
- /* We don't allow accessing any but the data read from the file
- as raw. */
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- return NULL;
- }
-
- /* If the data for this section was not yet initialized do it now. */
- if (scn->data_read == 0)
- {
- /* First thing we do is to read the data from the file. There is
- always a file (or memory region) associated with this descriptor
- since otherwise the `data_read' flag would be set. */
- if (__libelf_set_rawdata (scn) != 0)
- /* Something went wrong. The error value is already set. */
- return NULL;
- }
-
- /* Return the first data element in the list. */
- return &scn->rawdata.d;
-}
-INTDEF(elf_rawdata)
diff --git a/libelf/elf_rawfile.c b/libelf/elf_rawfile.c
deleted file mode 100644
index 3f6dc3c8..00000000
--- a/libelf/elf_rawfile.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Retrieve uninterpreted file contents.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-char *
-elf_rawfile (elf, ptr)
- Elf *elf;
- size_t *ptr;
-{
- if (elf == NULL)
- {
- /* No valid descriptor. */
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- error_out:
- if (ptr != NULL)
- *ptr = 0;
- return NULL;
- }
-
- /* If the file is not mmap'ed and not previously loaded, do it now. */
- if (elf->map_address == NULL && __libelf_readall (elf) == NULL)
- goto error_out;
-
- if (ptr != NULL)
- *ptr = elf->maximum_size;
-
- return (char *) elf->map_address + elf->start_offset;
-}
diff --git a/libelf/elf_readall.c b/libelf/elf_readall.c
deleted file mode 100644
index d36da270..00000000
--- a/libelf/elf_readall.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Read all of the file associated with the descriptor.
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <unistd.h>
-
-#include "libelfP.h"
-#include "common.h"
-
-
-static void
-set_address (Elf *elf, size_t offset)
-{
- if (elf->kind == ELF_K_AR)
- {
- Elf *child = elf->state.ar.children;
-
- while (child != NULL)
- {
- if (child->map_address == NULL)
- {
- child->map_address = elf->map_address;
- child->start_offset -= offset;
- if (child->kind == ELF_K_AR)
- child->state.ar.offset -= offset;
-
- set_address (child, offset);
- }
-
- child = child->next;
- }
- }
-}
-
-
-char *
-__libelf_readall (elf)
- Elf *elf;
-{
- /* Get the file. */
- rwlock_wrlock (elf->lock);
-
- if (elf->map_address == NULL && unlikely (elf->fildes == -1))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- rwlock_unlock (elf->lock);
- return NULL;
- }
-
- /* If the file is not mmap'ed and not previously loaded, do it now. */
- if (elf->map_address == NULL)
- {
- char *mem;
-
- /* If this is an archive and we have derived descriptors get the
- locks for all of them. */
- libelf_acquire_all (elf);
-
- /* Allocate all the memory we need. */
- mem = (char *) malloc (elf->maximum_size);
- if (mem != NULL)
- {
- /* Read the file content. */
- if ((size_t) pread (elf->fildes, mem, elf->maximum_size,
- elf->start_offset) != elf->maximum_size)
- {
- /* Something went wrong. */
- __libelf_seterrno (ELF_E_READ_ERROR);
- free (mem);
- }
- else
- {
- /* Remember the address. */
- elf->map_address = mem;
-
- /* Also remember that we allocated the memory. */
- elf->flags |= ELF_F_MALLOCED;
-
- /* Propagate the information down to all children and
- their children. */
- set_address (elf, elf->start_offset);
-
- /* Correct the own offsets. */
- if (elf->kind == ELF_K_AR)
- elf->state.ar.offset -= elf->start_offset;
- elf->start_offset = 0;
- }
- }
- else
- __libelf_seterrno (ELF_E_NOMEM);
-
- /* Free the locks on the children. */
- libelf_release_all (elf);
- }
-
- rwlock_unlock (elf->lock);
-
- return (char *) elf->map_address;
-}
diff --git a/libelf/elf_strptr.c b/libelf/elf_strptr.c
deleted file mode 100644
index 327adfd1..00000000
--- a/libelf/elf_strptr.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Return string pointer from string section.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-char *
-elf_strptr (elf, idx, offset)
- Elf *elf;
- size_t idx;
- size_t offset;
-{
- if (elf == NULL)
- return NULL;
-
- if (elf->kind != ELF_K_ELF)
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- rwlock_rdlock (elf->lock);
-
- char *result = NULL;
- Elf_Scn *strscn;
-
- /* Find the section in the list. */
- Elf_ScnList *runp = (elf->class == ELFCLASS32
- || (offsetof (struct Elf, state.elf32.scns)
- == offsetof (struct Elf, state.elf64.scns))
- ? &elf->state.elf32.scns : &elf->state.elf64.scns);
- while (1)
- {
- if (idx < runp->max)
- {
- if (idx < runp->cnt)
- strscn = &runp->data[idx];
- else
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
- break;
- }
-
- idx -= runp->max;
-
- runp = runp->next;
- if (runp == NULL)
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
- }
-
- if (elf->class == ELFCLASS32)
- {
- if (unlikely (strscn->shdr.e32->sh_type != SHT_STRTAB))
- {
- /* This is no string section. */
- __libelf_seterrno (ELF_E_INVALID_SECTION);
- goto out;
- }
-
- if (unlikely (offset >= strscn->shdr.e32->sh_size))
- {
- /* The given offset is too big, it is beyond this section. */
- __libelf_seterrno (ELF_E_OFFSET_RANGE);
- goto out;
- }
- }
- else
- {
- if (unlikely (strscn->shdr.e64->sh_type != SHT_STRTAB))
- {
- /* This is no string section. */
- __libelf_seterrno (ELF_E_INVALID_SECTION);
- goto out;
- }
-
- if (unlikely (offset >= strscn->shdr.e64->sh_size))
- {
- /* The given offset is too big, it is beyond this section. */
- __libelf_seterrno (ELF_E_OFFSET_RANGE);
- goto out;
- }
- }
-
- if (strscn->rawdata_base == NULL
- /* Read the section data. */
- && __libelf_set_rawdata (strscn) != 0)
- goto out;
-
- result = &strscn->rawdata_base[offset];
-
- out:
- rwlock_unlock (elf->lock);
-
- return result;
-}
-INTDEF(elf_strptr)
diff --git a/libelf/elf_update.c b/libelf/elf_update.c
deleted file mode 100644
index ece22251..00000000
--- a/libelf/elf_update.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/* Update data structures for changes and write them out.
- Copyright (C) 1999, 2000, 2001, 2002, 2004 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <unistd.h>
-#include <sys/mman.h>
-
-#include "libelfP.h"
-
-
-static off_t
-write_file (Elf *elf, off_t size, int change_bo, size_t shnum)
-{
- int class = elf->class;
-
- /* Adjust the size in any case. We do this even if we use `write'.
- We cannot do this if this file is in an archive. We also don't
- do it *now* if we are shortening the file since this would
- prevent programs to use the data of the file in generating the
- new file. We truncate the file later in this case. */
- if (elf->parent == NULL
- && (elf->maximum_size == ~((size_t) 0) || size > elf->maximum_size)
- && unlikely (ftruncate (elf->fildes, size) != 0))
- {
- __libelf_seterrno (ELF_E_WRITE_ERROR);
- return -1;
- }
-
- /* Try to map the file if this isn't done yet. */
- if (elf->map_address == NULL && elf->cmd == ELF_C_WRITE_MMAP)
- {
- elf->map_address = mmap (NULL, size, PROT_READ | PROT_WRITE,
- MAP_SHARED, elf->fildes, 0);
- if (unlikely (elf->map_address == MAP_FAILED))
- elf->map_address = NULL;
- }
-
- if (elf->map_address != NULL)
- {
- /* The file is mmaped. */
- if ((class == ELFCLASS32
- ? __elf32_updatemmap (elf, change_bo, shnum)
- : __elf64_updatemmap (elf, change_bo, shnum)) != 0)
- /* Some problem while writing. */
- size = -1;
- }
- else
- {
- /* The file is not mmaped. */
- if ((class == ELFCLASS32
- ? __elf32_updatefile (elf, change_bo, shnum)
- : __elf64_updatefile (elf, change_bo, shnum)) != 0)
- /* Some problem while writing. */
- size = -1;
- }
-
- if (size != -1
- && elf->parent == NULL
- && elf->maximum_size != ~((size_t) 0)
- && size < elf->maximum_size
- && unlikely (ftruncate (elf->fildes, size) != 0))
- {
- __libelf_seterrno (ELF_E_WRITE_ERROR);
- size = -1;
- }
-
- if (size != -1 && elf->parent == NULL)
- elf->maximum_size = size;
-
- return size;
-}
-
-
-off_t
-elf_update (elf, cmd)
- Elf *elf;
- Elf_Cmd cmd;
-{
- size_t shnum;
- off_t size;
- int change_bo = 0;
-
- if (cmd != ELF_C_NULL
- && cmd != ELF_C_WRITE
- && unlikely (cmd != ELF_C_WRITE_MMAP))
- {
- __libelf_seterrno (ELF_E_INVALID_CMD);
- return -1;
- }
-
- if (elf == NULL)
- return -1;
-
- if (elf->kind != ELF_K_ELF)
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return -1;
- }
-
- rwlock_rdlock (elf->lock);
-
- /* Make sure we have an ELF header. */
- if (elf->state.elf.ehdr == NULL)
- {
- __libelf_seterrno (ELF_E_WRONG_ORDER_EHDR);
- size = -1;
- goto out;
- }
-
- /* Determine the number of sections. */
- shnum = (elf->state.elf.scns_last->cnt == 0
- ? 0
- : 1 + elf->state.elf.scns_last->data[elf->state.elf.scns_last->cnt - 1].index);
-
- /* Update the ELF descriptor. First, place the program header. It
- will come right after the ELF header. The count the size of all
- sections and finally place the section table. */
- size = (elf->class == ELFCLASS32
- ? __elf32_updatenull (elf, &change_bo, shnum)
- : __elf64_updatenull (elf, &change_bo, shnum));
- if (likely (size != -1)
- /* See whether we actually have to write out the data. */
- && (cmd == ELF_C_WRITE || cmd == ELF_C_WRITE_MMAP))
- {
- if (elf->cmd != ELF_C_RDWR
- && elf->cmd != ELF_C_RDWR_MMAP
- && elf->cmd != ELF_C_WRITE
- && unlikely (elf->cmd != ELF_C_WRITE_MMAP))
- {
- __libelf_seterrno (ELF_E_UPDATE_RO);
- size = -1;
- }
- else if (unlikely (elf->fildes == -1))
- {
- /* We closed the file already. */
- __libelf_seterrno (ELF_E_FD_DISABLED);
- size = -1;
- }
- else
- {
- if (elf->parent != NULL)
- {
- extern int puts (const char *);
- puts ("this is an archive member");
- }
-
- size = write_file (elf, size, change_bo, shnum);
- }
- }
-
- out:
- rwlock_unlock (elf->lock);
-
- return size;
-}
diff --git a/libelf/elf_version.c b/libelf/elf_version.c
deleted file mode 100644
index 16bfce10..00000000
--- a/libelf/elf_version.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Coordinate ELF library and application versions.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelfP.h>
-
-
-/* Is the version initialized? */
-int __libelf_version_initialized;
-
-/* Currently selected version. */
-unsigned int __libelf_version = EV_CURRENT;
-
-
-unsigned int
-elf_version (version)
- unsigned int version;
-{
- if (version == EV_NONE)
- return __libelf_version;
-
- if (likely (version < EV_NUM))
- {
- /* Phew, we know this version. */
- unsigned int last_version = __libelf_version;
-
- /* Store the new version. */
- __libelf_version = version;
-
- /* Signal that the version is now initialized. */
- __libelf_version_initialized = 1;
-
- /* And return the last version. */
- return last_version;
- }
-
- /* We cannot handle this version. */
- __libelf_seterrno (ELF_E_UNKNOWN_VERSION);
- return EV_NONE;
-}
-INTDEF(elf_version)
diff --git a/libelf/exttypes.h b/libelf/exttypes.h
deleted file mode 100644
index b6bde829..00000000
--- a/libelf/exttypes.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* External ELF types.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef _EXTTYPES_H
-#define _EXTTYPES_H 1
-
-/* Integral types. */
-typedef char Elf32_Ext_Addr[ELF32_FSZ_ADDR];
-typedef char Elf32_Ext_Off[ELF32_FSZ_OFF];
-typedef char Elf32_Ext_Half[ELF32_FSZ_HALF];
-typedef char Elf32_Ext_Sword[ELF32_FSZ_SWORD];
-typedef char Elf32_Ext_Word[ELF32_FSZ_WORD];
-typedef char Elf32_Ext_Sxword[ELF32_FSZ_SXWORD];
-typedef char Elf32_Ext_Xword[ELF32_FSZ_XWORD];
-
-typedef char Elf64_Ext_Addr[ELF64_FSZ_ADDR];
-typedef char Elf64_Ext_Off[ELF64_FSZ_OFF];
-typedef char Elf64_Ext_Half[ELF64_FSZ_HALF];
-typedef char Elf64_Ext_Sword[ELF64_FSZ_SWORD];
-typedef char Elf64_Ext_Word[ELF64_FSZ_WORD];
-typedef char Elf64_Ext_Sxword[ELF64_FSZ_SXWORD];
-typedef char Elf64_Ext_Xword[ELF64_FSZ_XWORD];
-
-
-/* Define the composed types. */
-#define START(Bits, Name, EName) typedef struct {
-#define END(Bits, Name) } ElfW2(Bits, Name)
-#define TYPE_NAME(Type, Name) Type Name;
-#define TYPE_EXTRA(Text) Text
-#define TYPE_XLATE(Text)
-
-/* Get the abstract definitions. */
-#include "abstract.h"
-
-/* And define the types. */
-Ehdr32 (Ext_);
-Phdr32 (Ext_);
-Shdr32 (Ext_);
-Sym32 (Ext_);
-Rel32 (Ext_);
-Rela32 (Ext_);
-Note32 (Ext_);
-Dyn32 (Ext_);
-Verdef32 (Ext_);
-Verdaux32 (Ext_);
-Verneed32 (Ext_);
-Vernaux32 (Ext_);
-Syminfo32 (Ext_);
-Move32 (Ext_);
-
-Ehdr64 (Ext_);
-Phdr64 (Ext_);
-Shdr64 (Ext_);
-Sym64 (Ext_);
-Rel64 (Ext_);
-Rela64 (Ext_);
-Note64 (Ext_);
-Dyn64 (Ext_);
-Verdef64 (Ext_);
-Verdaux64 (Ext_);
-Verneed64 (Ext_);
-Vernaux64 (Ext_);
-Syminfo64 (Ext_);
-Move64 (Ext_);
-
-#undef START
-#undef END
-#undef TYPE_NAME
-#undef TYPE_EXTRA
-#undef TYPE_XLATE
-
-#endif /* exttypes.h */
diff --git a/libelf/gelf.h b/libelf/gelf.h
deleted file mode 100644
index 9d9b3239..00000000
--- a/libelf/gelf.h
+++ /dev/null
@@ -1,304 +0,0 @@
-/* This file defines generic ELF types, structures, and macros.
- Copyright (C) 1999, 2000, 2001, 2002, 2004 Red Hat, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef _GELF_H
-#define _GELF_H 1
-
-#include <libelf.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Class independent type definitions. Correctly speaking this is not
- true. We assume that 64-bit binaries are the largest class and
- therefore all other classes can be represented without loss. */
-
-/* Type for a 16-bit quantity. */
-typedef Elf64_Half GElf_Half;
-
-/* Types for signed and unsigned 32-bit quantities. */
-typedef Elf64_Word GElf_Word;
-typedef Elf64_Sword GElf_Sword;
-
-/* Types for signed and unsigned 64-bit quantities. */
-typedef Elf64_Xword GElf_Xword;
-typedef Elf64_Sxword GElf_Sxword;
-
-/* Type of addresses. */
-typedef Elf64_Addr GElf_Addr;
-
-/* Type of file offsets. */
-typedef Elf64_Off GElf_Off;
-
-
-/* The ELF file header. This appears at the start of every ELF file. */
-typedef Elf64_Ehdr GElf_Ehdr;
-
-/* Section header. */
-typedef Elf64_Shdr GElf_Shdr;
-
-/* Section index. */
-/* XXX This should probably be a larger type in preparation of times when
- regular section indices can be larger. */
-typedef Elf64_Section GElf_Section;
-
-/* Symbol table entry. */
-typedef Elf64_Sym GElf_Sym;
-
-/* The syminfo section if available contains additional information about
- every dynamic symbol. */
-typedef Elf64_Syminfo GElf_Syminfo;
-
-/* Relocation table entry without addend (in section of type SHT_REL). */
-typedef Elf64_Rel GElf_Rel;
-
-/* Relocation table entry with addend (in section of type SHT_RELA). */
-typedef Elf64_Rela GElf_Rela;
-
-/* Program segment header. */
-typedef Elf64_Phdr GElf_Phdr;
-
-/* Dynamic section entry. */
-typedef Elf64_Dyn GElf_Dyn;
-
-
-/* Version definition sections. */
-typedef Elf64_Verdef GElf_Verdef;
-
-/* Auxialiary version information. */
-typedef Elf64_Verdaux GElf_Verdaux;
-
-/* Version dependency section. */
-typedef Elf64_Verneed GElf_Verneed;
-
-/* Auxiliary needed version information. */
-typedef Elf64_Vernaux GElf_Vernaux;
-
-
-/* Type for version symbol information. */
-typedef Elf64_Versym GElf_Versym;
-
-
-/* Auxiliary vector. */
-typedef Elf64_auxv_t GElf_auxv_t;
-
-
-/* Note section contents. */
-typedef Elf64_Nhdr GElf_Nhdr;
-
-
-/* Move structure. */
-typedef Elf64_Move GElf_Move;
-
-
-/* Library list structure. */
-typedef Elf64_Lib GElf_Lib;
-
-
-/* How to extract and insert information held in the st_info field. */
-
-#define GELF_ST_BIND(val) ELF64_ST_BIND (val)
-#define GELF_ST_TYPE(val) ELF64_ST_TYPE (val)
-#define GELF_ST_INFO(bind, type) ELF64_ST_INFO (bind, type)
-
-/* How to extract information held in the st_other field. */
-
-#define GELF_ST_VISIBILITY(val) ELF64_ST_VISIBILITY (val)
-
-
-/* How to extract and insert information held in the r_info field. */
-
-#define GELF_R_SYM(info) ELF64_R_SYM (info)
-#define GELF_R_TYPE(info) ELF64_R_TYPE (info)
-#define GELF_R_INFO(sym, type) ELF64_R_INFO (sym, type)
-
-
-/* How to extract and insert information held in the m_info field. */
-#define GELF_M_SYM(info) ELF64_M_SYM (info)
-#define GELF_M_SIZE(info) ELF64_M_SIZE (info)
-#define GELF_M_INFO(sym, size) ELF64_M_INFO (sym, size)
-
-
-/* Get class of the file associated with ELF. */
-extern int gelf_getclass (Elf *__elf);
-
-
-/* Return size of array of COUNT elemeents of the type denoted by TYPE
- in the external representation. The binary class is taken from ELF.
- The result is based on version VERSION of the ELF standard. */
-extern size_t gelf_fsize (Elf *__elf, Elf_Type __type, size_t __count,
- unsigned int __version);
-
-/* Retrieve object file header. */
-extern GElf_Ehdr *gelf_getehdr (Elf *__elf, GElf_Ehdr *__dest);
-
-/* Update the ELF header. */
-extern int gelf_update_ehdr (Elf *__elf, GElf_Ehdr *__src);
-
-/* Create new ELF header if none exists. */
-extern unsigned long int gelf_newehdr (Elf *__elf, int __class);
-
-/* Retrieve section header. */
-extern GElf_Shdr *gelf_getshdr (Elf_Scn *__scn, GElf_Shdr *__dst);
-
-/* Update section header. */
-extern int gelf_update_shdr (Elf_Scn *__scn, GElf_Shdr *__src);
-
-/* Retrieve program header table entry. */
-extern GElf_Phdr *gelf_getphdr (Elf *__elf, int __ndx, GElf_Phdr *__dst);
-
-/* Update the program header. */
-extern int gelf_update_phdr (Elf *__elf, int __ndx, GElf_Phdr *__src);
-
-/* Create new program header with PHNUM entries. */
-extern unsigned long int gelf_newphdr (Elf *__elf, size_t __phnum);
-
-
-/* Convert data structure from the representation in the file represented
- by ELF to their memory representation. */
-extern Elf_Data *gelf_xlatetom (Elf *__elf, Elf_Data *__dest,
- const Elf_Data *__src, unsigned int __encode);
-
-/* Convert data structure from to the representation in memory
- represented by ELF file representation. */
-extern Elf_Data *gelf_xlatetof (Elf *__elf, Elf_Data *__dest,
- const Elf_Data *__src, unsigned int __encode);
-
-
-/* Retrieve REL relocation info at the given index. */
-extern GElf_Rel *gelf_getrel (Elf_Data *__data, int __ndx, GElf_Rel *__dst);
-
-/* Retrieve RELA relocation info at the given index. */
-extern GElf_Rela *gelf_getrela (Elf_Data *__data, int __ndx, GElf_Rela *__dst);
-
-/* Update REL relocation information at given index. */
-extern int gelf_update_rel (Elf_Data *__dst, int __ndx, GElf_Rel *__src);
-
-/* Update RELA relocation information at given index. */
-extern int gelf_update_rela (Elf_Data *__dst, int __ndx, GElf_Rela *__src);
-
-
-/* Retrieve symbol information from the symbol table at the given index. */
-extern GElf_Sym *gelf_getsym (Elf_Data *__data, int __ndx, GElf_Sym *__dst);
-
-/* Update symbol information in the symbol table at the given index. */
-extern int gelf_update_sym (Elf_Data *__data, int __ndx, GElf_Sym *__src);
-
-
-/* Retrieve symbol information and separate section index from the
- symbol table at the given index. */
-extern GElf_Sym *gelf_getsymshndx (Elf_Data *__symdata, Elf_Data *__shndxdata,
- int __ndx, GElf_Sym *__sym,
- Elf32_Word *__xshndx);
-
-/* Update symbol information and separate section index in the symbol
- table at the given index. */
-extern int gelf_update_symshndx (Elf_Data *__symdata, Elf_Data *__shndxdata,
- int __ndx, GElf_Sym *__sym,
- Elf32_Word __xshndx);
-
-
-/* Retrieve additional symbol information from the symbol table at the
- given index. */
-extern GElf_Syminfo *gelf_getsyminfo (Elf_Data *__data, int __ndx,
- GElf_Syminfo *__dst);
-
-/* Update additional symbol information in the symbol table at the
- given index. */
-extern int gelf_update_syminfo (Elf_Data *__data, int __ndx,
- GElf_Syminfo *__src);
-
-
-/* Get information from dynamic table at the given index. */
-extern GElf_Dyn *gelf_getdyn (Elf_Data *__data, int __ndx, GElf_Dyn *__dst);
-
-/* Update information in dynamic table at the given index. */
-extern int gelf_update_dyn (Elf_Data *__dst, int __ndx, GElf_Dyn *__src);
-
-
-/* Get move structure at the given index. */
-extern GElf_Move *gelf_getmove (Elf_Data *__data, int __ndx, GElf_Move *__dst);
-
-/* Update move structure at the given index. */
-extern int gelf_update_move (Elf_Data *__data, int __ndx,
- GElf_Move *__src);
-
-
-/* Get library from table at the given index. */
-extern GElf_Lib *gelf_getlib (Elf_Data *__data, int __ndx, GElf_Lib *__dst);
-
-/* Update library in table at the given index. */
-extern int gelf_update_lib (Elf_Data *__data, int __ndx, GElf_Lib *__src);
-
-
-
-/* Retrieve symbol version information at given index. */
-extern GElf_Versym *gelf_getversym (Elf_Data *__data, int __ndx,
- GElf_Versym *__dst);
-
-/* Update symbol version information. */
-extern int gelf_update_versym (Elf_Data *__data, int __ndx,
- GElf_Versym *__src);
-
-
-/* Retrieve required symbol version information at given offset. */
-extern GElf_Verneed *gelf_getverneed (Elf_Data *__data, int __offset,
- GElf_Verneed *__dst);
-
-/* Update required symbol version information. */
-extern int gelf_update_verneed (Elf_Data *__data, int __offset,
- GElf_Verneed *__src);
-
-/* Retrieve additional required symbol version information at given offset. */
-extern GElf_Vernaux *gelf_getvernaux (Elf_Data *__data, int __offset,
- GElf_Vernaux *__dst);
-
-/* Update additional required symbol version information. */
-extern int gelf_update_vernaux (Elf_Data *__data, int __offset,
- GElf_Vernaux *__src);
-
-
-/* Retrieve symbol version definition information at given offset. */
-extern GElf_Verdef *gelf_getverdef (Elf_Data *__data, int __offset,
- GElf_Verdef *__dst);
-
-/* Update symbol version definition information. */
-extern int gelf_update_verdef (Elf_Data *__data, int __offset,
- GElf_Verdef *__src);
-
-/* Retrieve additional symbol version definition information at given
- offset. */
-extern GElf_Verdaux *gelf_getverdaux (Elf_Data *__data, int __offset,
- GElf_Verdaux *__dst);
-
-/* Update additional symbol version definition information. */
-extern int gelf_update_verdaux (Elf_Data *__data, int __offset,
- GElf_Verdaux *__src);
-
-
-/* Retrieve uninterpreted chunk of the file contents. */
-extern char *gelf_rawchunk (Elf *__elf, GElf_Off __offset, GElf_Word __size);
-
-/* Release uninterpreted chunk of the file contents. */
-extern void gelf_freechunk (Elf *__elf, char *__ptr);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* gelf.h */
diff --git a/libelf/gelf_checksum.c b/libelf/gelf_checksum.c
deleted file mode 100644
index bbd04df9..00000000
--- a/libelf/gelf_checksum.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Convert from file to memory representation. Generic ELF version.
- Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-long int
-gelf_checksum (elf)
- Elf *elf;
-{
- if (elf == NULL)
- return -1l;
-
- return (elf->class == ELFCLASS32
- ? INTUSE(elf32_checksum) (elf) : INTUSE(elf64_checksum) (elf));
-}
diff --git a/libelf/gelf_freechunk.c b/libelf/gelf_freechunk.c
deleted file mode 100644
index c47ec9aa..00000000
--- a/libelf/gelf_freechunk.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Release uninterpreted chunk of the file contents.
- Copyright (C) 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-#include <stdlib.h>
-
-#include "libelfP.h"
-
-
-void
-gelf_freechunk (elf, ptr)
- Elf *elf;
- char *ptr;
-{
- if (elf == NULL)
- /* No valid descriptor. */
- return;
-
- /* We do not have to do anything if the pointer returned by
- gelf_rawchunk points into the memory allocated for the ELF
- descriptor. */
- if (ptr < (char *) elf->map_address + elf->start_offset
- || ptr >= ((char *) elf->map_address + elf->start_offset
- + elf->maximum_size))
- free (ptr);
-}
diff --git a/libelf/gelf_fsize.c b/libelf/gelf_fsize.c
deleted file mode 100644
index 0432ba0b..00000000
--- a/libelf/gelf_fsize.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Return the size of an object file type.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-/* These are the sizes for all the known types. */
-const size_t __libelf_type_sizes[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] =
-{
- /* We have no entry for EV_NONE siince we have to set an error. */
- [EV_CURRENT - 1] = {
- [ELFCLASS32 - 1] = {
-#define TYPE_SIZES(LIBELFBITS) \
- [ELF_T_ADDR] = ELFW2(LIBELFBITS, FSZ_ADDR), \
- [ELF_T_OFF] = ELFW2(LIBELFBITS, FSZ_OFF), \
- [ELF_T_BYTE] = 1, \
- [ELF_T_HALF] = ELFW2(LIBELFBITS, FSZ_HALF), \
- [ELF_T_WORD] = ELFW2(LIBELFBITS, FSZ_WORD), \
- [ELF_T_SWORD] = ELFW2(LIBELFBITS, FSZ_SWORD), \
- [ELF_T_XWORD] = ELFW2(LIBELFBITS, FSZ_XWORD), \
- [ELF_T_SXWORD] = ELFW2(LIBELFBITS, FSZ_SXWORD), \
- [ELF_T_EHDR] = sizeof (ElfW2(LIBELFBITS, Ext_Ehdr)), \
- [ELF_T_SHDR] = sizeof (ElfW2(LIBELFBITS, Ext_Shdr)), \
- [ELF_T_SYM] = sizeof (ElfW2(LIBELFBITS, Ext_Sym)), \
- [ELF_T_REL] = sizeof (ElfW2(LIBELFBITS, Ext_Rel)), \
- [ELF_T_RELA] = sizeof (ElfW2(LIBELFBITS, Ext_Rela)), \
- [ELF_T_PHDR] = sizeof (ElfW2(LIBELFBITS, Ext_Phdr)), \
- [ELF_T_DYN] = sizeof (ElfW2(LIBELFBITS, Ext_Dyn)), \
- [ELF_T_VDEF] = sizeof (ElfW2(LIBELFBITS, Ext_Verdef)), \
- [ELF_T_VDAUX] = sizeof (ElfW2(LIBELFBITS, Ext_Verdaux)), \
- [ELF_T_VNEED] = sizeof (ElfW2(LIBELFBITS, Ext_Verneed)), \
- [ELF_T_VNAUX] = sizeof (ElfW2(LIBELFBITS, Ext_Vernaux)), \
- [ELF_T_NHDR] = sizeof (ElfW2(LIBELFBITS, Ext_Nhdr)), \
- [ELF_T_SYMINFO] = sizeof (ElfW2(LIBELFBITS, Ext_Syminfo)), \
- [ELF_T_MOVE] = sizeof (ElfW2(LIBELFBITS, Ext_Move))
- TYPE_SIZES (32)
- },
- [ELFCLASS64 - 1] = {
- TYPE_SIZES (64)
- }
- }
-};
-
-
-size_t
-gelf_fsize (elf, type, count, version)
- Elf *elf;
- Elf_Type type;
- size_t count;
- unsigned int version;
-{
- /* We do not have differences between file and memory sizes. Better
- not since otherwise `mmap' would not work. */
- if (elf == NULL)
- return 0;
-
- if (version == EV_NONE || version >= EV_NUM)
- {
- __libelf_seterrno (ELF_E_UNKNOWN_VERSION);
- return 0;
- }
-
- if (type >= ELF_T_NUM)
- {
- __libelf_seterrno (ELF_E_UNKNOWN_TYPE);
- return 0;
- }
-
-#if EV_NUM != 2
- return count * __libelf_type_sizes[version - 1][elf->class - 1][type];
-#else
- return count * __libelf_type_sizes[0][elf->class - 1][type];
-#endif
-}
-INTDEF(gelf_fsize)
diff --git a/libelf/gelf_getclass.c b/libelf/gelf_getclass.c
deleted file mode 100644
index 2ae1b329..00000000
--- a/libelf/gelf_getclass.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Return the class of file associated with the descriptor.
- Copyright (C) 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_getclass (elf)
- Elf *elf;
-{
- return elf == NULL || elf->kind != ELF_K_ELF ? ELFCLASSNONE : elf->class;
-}
diff --git a/libelf/gelf_getdyn.c b/libelf/gelf_getdyn.c
deleted file mode 100644
index d75744ea..00000000
--- a/libelf/gelf_getdyn.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Get information from dynamic table at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Dyn *
-gelf_getdyn (data, ndx, dst)
- Elf_Data *data;
- int ndx;
- GElf_Dyn *dst;
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
- GElf_Dyn *result = NULL;
- Elf *elf;
-
- if (data_scn == NULL)
- return NULL;
-
- if (unlikely (data_scn->d.d_type != ELF_T_DYN))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- elf = data_scn->s->elf;
-
- rwlock_rdlock (elf->lock);
-
- /* This is the one place where we have to take advantage of the fact
- that an `Elf_Data' pointer is also a pointer to `Elf_Data_Scn'.
- The interface is broken so that it requires this hack. */
- if (elf->class == ELFCLASS32)
- {
- Elf32_Dyn *src;
-
- /* Here it gets a bit more complicated. The format of the symbol
- table entries has to be adopted. The user better has provided
- a buffer where we can store the information. While copying the
- data we are converting the format. */
- if (unlikely ((ndx + 1) * sizeof (Elf32_Dyn) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- src = &((Elf32_Dyn *) data_scn->d.d_buf)[ndx];
-
- /* This might look like a simple copy operation but it's
- not. There are zero- and sign-extensions going on. */
- dst->d_tag = src->d_tag;
- /* It OK to copy `d_val' since `d_ptr' has the same size. */
- dst->d_un.d_val = src->d_un.d_val;
- }
- else
- {
- /* If this is a 64 bit object it's easy. */
- assert (sizeof (GElf_Dyn) == sizeof (Elf64_Dyn));
-
- /* The data is already in the correct form. Just make sure the
- index is OK. */
- if (unlikely ((ndx + 1) * sizeof (GElf_Dyn) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- *dst = ((GElf_Dyn *) data_scn->d.d_buf)[ndx];
- }
-
- result = dst;
-
- out:
- rwlock_unlock (elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_getehdr.c b/libelf/gelf_getehdr.c
deleted file mode 100644
index 6b926442..00000000
--- a/libelf/gelf_getehdr.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Get ELF header.
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Ehdr *
-gelf_getehdr (elf, dest)
- Elf *elf;
- GElf_Ehdr *dest;
-{
- GElf_Ehdr *result = NULL;
-
- if (elf == NULL)
- return NULL;
-
- if (unlikely (elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- rwlock_rdlock (elf->lock);
-
- if (elf->class == ELFCLASS32)
- {
- Elf32_Ehdr *ehdr = elf->state.elf32.ehdr;
-
- /* Maybe no ELF header was created yet. */
- if (ehdr == NULL)
- __libelf_seterrno (ELF_E_WRONG_ORDER_EHDR);
- else
- {
- /* Convert the 32-bit struct to an 64-bit one. */
- memcpy (dest->e_ident, ehdr->e_ident, EI_NIDENT);
-#define COPY(name) \
- dest->name = ehdr->name
- COPY (e_type);
- COPY (e_machine);
- COPY (e_version);
- COPY (e_entry);
- COPY (e_phoff);
- COPY (e_shoff);
- COPY (e_flags);
- COPY (e_ehsize);
- COPY (e_phentsize);
- COPY (e_phnum);
- COPY (e_shentsize);
- COPY (e_shnum);
- COPY (e_shstrndx);
-
- result = dest;
- }
- }
- else
- {
- /* Maybe no ELF header was created yet. */
- if (elf->state.elf64.ehdr == NULL)
- __libelf_seterrno (ELF_E_WRONG_ORDER_EHDR);
- else
- result = memcpy (dest, elf->state.elf64.ehdr, sizeof (*dest));
- }
-
- rwlock_unlock (elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_getlib.c b/libelf/gelf_getlib.c
deleted file mode 100644
index 9366c79a..00000000
--- a/libelf/gelf_getlib.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Get library from table at the given index.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Lib *
-gelf_getlib (data, ndx, dst)
- Elf_Data *data;
- int ndx;
- GElf_Lib *dst;
-{
- if (data == NULL)
- return NULL;
-
- if (unlikely (data->d_type != ELF_T_LIB))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
-
- rwlock_rdlock (data_scn->s->elf->lock);
-
- /* The on disk format of Elf32_Lib and Elf64_Lib is identical. So
- we can simplify things significantly. */
- assert (sizeof (GElf_Lib) == sizeof (Elf32_Lib));
- assert (sizeof (GElf_Lib) == sizeof (Elf64_Lib));
-
- /* The data is already in the correct form. Just make sure the
- index is OK. */
- GElf_Lib *result = NULL;
- if (unlikely ((ndx + 1) * sizeof (GElf_Lib) > data->d_size))
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- else
- {
- *dst = ((GElf_Lib *) data->d_buf)[ndx];
-
- result = dst;
- }
-
- rwlock_unlock (data_scn->s->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_getmove.c b/libelf/gelf_getmove.c
deleted file mode 100644
index a3b96bbc..00000000
--- a/libelf/gelf_getmove.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Get move structure at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-GElf_Move *
-gelf_getmove (data, ndx, dst)
- Elf_Data *data;
- int ndx;
- GElf_Move *dst;
-{
- GElf_Move *result = NULL;
- Elf *elf;
-
- if (data == NULL)
- return NULL;
-
- if (unlikely (data->d_type != ELF_T_MOVE))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- /* The types for 32 and 64 bit are the same. Lucky us. */
- assert (sizeof (GElf_Move) == sizeof (Elf32_Move));
- assert (sizeof (GElf_Move) == sizeof (Elf64_Move));
-
- /* The data is already in the correct form. Just make sure the
- index is OK. */
- if (unlikely ((ndx + 1) * sizeof (GElf_Move) > data->d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- elf = ((Elf_Data_Scn *) data)->s->elf;
- rwlock_rdlock (elf->lock);
-
- *dst = ((GElf_Move *) data->d_buf)[ndx];
-
- rwlock_unlock (elf->lock);
-
- result = dst;
-
- out:
- return result;
-}
diff --git a/libelf/gelf_getphdr.c b/libelf/gelf_getphdr.c
deleted file mode 100644
index fd033e56..00000000
--- a/libelf/gelf_getphdr.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Return program header table entry.
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Phdr *
-gelf_getphdr (elf, ndx, dst)
- Elf *elf;
- int ndx;
- GElf_Phdr *dst;
-{
- GElf_Phdr *result = NULL;
-
- if (elf == NULL)
- return NULL;
-
- if (unlikely (elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- if (dst == NULL)
- {
- __libelf_seterrno (ELF_E_INVALID_OPERAND);
- return NULL;
- }
-
- rwlock_rdlock (elf->lock);
-
- if (elf->class == ELFCLASS32)
- {
- /* Copy the elements one-by-one. */
- Elf32_Phdr *phdr = elf->state.elf32.phdr;
-
- if (phdr == NULL)
- {
- phdr = INTUSE(elf32_getphdr) (elf);
- if (phdr == NULL)
- /* The error number is already set. */
- goto out;
- }
-
- /* Test whether the index is ok. */
- if (ndx >= elf->state.elf32.ehdr->e_phnum)
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- /* We know the result now. */
- result = dst;
-
- /* Now correct the pointer to point to the correct element. */
- phdr += ndx;
-
-#define COPY(Name) result->Name = phdr->Name
- COPY (p_type);
- COPY (p_offset);
- COPY (p_vaddr);
- COPY (p_paddr);
- COPY (p_filesz);
- COPY (p_memsz);
- COPY (p_flags);
- COPY (p_align);
- }
- else
- {
- /* Copy the elements one-by-one. */
- Elf64_Phdr *phdr = elf->state.elf64.phdr;
-
- if (phdr == NULL)
- {
- phdr = INTUSE(elf64_getphdr) (elf);
- if (phdr == NULL)
- /* The error number is already set. */
- goto out;
- }
-
- /* Test whether the index is ok. */
- if (ndx >= elf->state.elf64.ehdr->e_phnum)
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- /* We only have to copy the data. */
- result = memcpy (dst, phdr + ndx, sizeof (GElf_Phdr));
- }
-
- out:
- rwlock_unlock (elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_getrel.c b/libelf/gelf_getrel.c
deleted file mode 100644
index 7dc78a7e..00000000
--- a/libelf/gelf_getrel.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Get REL relocation information at given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Rel *
-gelf_getrel (data, ndx, dst)
- Elf_Data *data;
- int ndx;
- GElf_Rel *dst;
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
- Elf_Scn *scn;
- GElf_Rel *result;
-
- if (data_scn == NULL)
- return NULL;
-
- if (unlikely (ndx < 0))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return NULL;
- }
-
- if (unlikely (data_scn->d.d_type != ELF_T_REL))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- /* This is the one place where we have to take advantage of the fact
- that an `Elf_Data' pointer is also a pointer to `Elf_Data_Scn'.
- The interface is broken so that it requires this hack. */
- scn = data_scn->s;
-
- rwlock_rdlock (scn->elf->lock);
-
- if (scn->elf->class == ELFCLASS32)
- {
- /* We have to convert the data. */
- if (unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- result = NULL;
- }
- else
- {
- Elf32_Rel *src = &((Elf32_Rel *) data_scn->d.d_buf)[ndx];
-
- dst->r_offset = src->r_offset;
- dst->r_info = GELF_R_INFO (ELF32_R_SYM (src->r_info),
- ELF32_R_TYPE (src->r_info));
-
- result = dst;
- }
- }
- else
- {
- /* Simply copy the data after we made sure we are actually getting
- correct data. */
- if (unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- result = NULL;
- }
- else
- result = memcpy (dst, &((Elf64_Rel *) data_scn->d.d_buf)[ndx],
- sizeof (Elf64_Rel));
- }
-
- rwlock_unlock (scn->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_getrela.c b/libelf/gelf_getrela.c
deleted file mode 100644
index fb94b008..00000000
--- a/libelf/gelf_getrela.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Get RELA relocation information at given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Rela *
-gelf_getrela (data, ndx, dst)
- Elf_Data *data;
- int ndx;
- GElf_Rela *dst;
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
- Elf_Scn *scn;
- GElf_Rela *result;
-
- if (data_scn == NULL)
- return NULL;
-
- if (unlikely (ndx < 0))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return NULL;
- }
-
- if (unlikely (data_scn->d.d_type != ELF_T_RELA))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- /* This is the one place where we have to take advantage of the fact
- that an `Elf_Data' pointer is also a pointer to `Elf_Data_Scn'.
- The interface is broken so that it requires this hack. */
- scn = data_scn->s;
-
- rwlock_rdlock (scn->elf->lock);
-
- if (scn->elf->class == ELFCLASS32)
- {
- /* We have to convert the data. */
- if (unlikely ((ndx + 1) * sizeof (Elf32_Rela) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- result = NULL;
- }
- else
- {
- Elf32_Rela *src = &((Elf32_Rela *) data_scn->d.d_buf)[ndx];
-
- dst->r_offset = src->r_offset;
- dst->r_info = GELF_R_INFO (ELF32_R_SYM (src->r_info),
- ELF32_R_TYPE (src->r_info));
- dst->r_addend = src->r_addend;
-
- result = dst;
- }
- }
- else
- {
- /* Simply copy the data after we made sure we are actually getting
- correct data. */
- if (unlikely ((ndx + 1) * sizeof (Elf64_Rela) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- result = NULL;
- }
- else
- result = memcpy (dst, &((Elf64_Rela *) data_scn->d.d_buf)[ndx],
- sizeof (Elf64_Rela));
- }
-
- rwlock_unlock (scn->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_getshdr.c b/libelf/gelf_getshdr.c
deleted file mode 100644
index 4ea5886d..00000000
--- a/libelf/gelf_getshdr.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Return section header.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Shdr *
-gelf_getshdr (scn, dst)
- Elf_Scn *scn;
- GElf_Shdr *dst;
-{
- GElf_Shdr *result = NULL;
-
- if (scn == NULL)
- return NULL;
-
- if (dst == NULL)
- {
- __libelf_seterrno (ELF_E_INVALID_OPERAND);
- return NULL;
- }
-
- rwlock_rdlock (scn->elf->lock);
-
- if (scn->elf->class == ELFCLASS32)
- {
- /* Copy the elements one-by-one. */
- Elf32_Shdr *shdr = scn->shdr.e32 ?: INTUSE(elf32_getshdr) (scn);
-
- if (shdr == NULL)
- {
- __libelf_seterrno (ELF_E_INVALID_OPERAND);
- goto out;
- }
-
-#define COPY(name) \
- dst->name = shdr->name
- COPY (sh_name);
- COPY (sh_type);
- COPY (sh_flags);
- COPY (sh_addr);
- COPY (sh_offset);
- COPY (sh_size);
- COPY (sh_link);
- COPY (sh_info);
- COPY (sh_addralign);
- COPY (sh_entsize);
-
- result = dst;
- }
- else
- {
- Elf64_Shdr *shdr = scn->shdr.e64 ?: INTUSE(elf64_getshdr) (scn);
-
- if (shdr == NULL)
- {
- __libelf_seterrno (ELF_E_INVALID_OPERAND);
- goto out;
- }
-
- /* We only have to copy the data. */
- result = memcpy (dst, shdr, sizeof (GElf_Shdr));
- }
-
- out:
- rwlock_unlock (scn->elf->lock);
-
- return result;
-}
-INTDEF(gelf_getshdr)
diff --git a/libelf/gelf_getsym.c b/libelf/gelf_getsym.c
deleted file mode 100644
index 90536c60..00000000
--- a/libelf/gelf_getsym.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Get symbol information from symbol table at the given index.
- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Sym *
-gelf_getsym (data, ndx, dst)
- Elf_Data *data;
- int ndx;
- GElf_Sym *dst;
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
- GElf_Sym *result = NULL;
-
- if (data == NULL)
- return NULL;
-
- if (unlikely (data->d_type != ELF_T_SYM))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- rwlock_rdlock (data_scn->s->elf->lock);
-
- /* This is the one place where we have to take advantage of the fact
- that an `Elf_Data' pointer is also a pointer to `Elf_Data_Scn'.
- The interface is broken so that it requires this hack. */
- if (data_scn->s->elf->class == ELFCLASS32)
- {
- Elf32_Sym *src;
-
- /* Here it gets a bit more complicated. The format of the symbol
- table entries has to be adopted. The user better has provided
- a buffer where we can store the information. While copying the
- data we are converting the format. */
- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > data->d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- src = &((Elf32_Sym *) data->d_buf)[ndx];
-
- /* This might look like a simple copy operation but it's
- not. There are zero- and sign-extensions going on. */
-#define COPY(name) \
- dst->name = src->name
- COPY (st_name);
- /* Please note that we can simply copy the `st_info' element since
- the definitions of ELFxx_ST_BIND and ELFxx_ST_TYPE are the same
- for the 64 bit variant. */
- COPY (st_info);
- COPY (st_other);
- COPY (st_shndx);
- COPY (st_value);
- COPY (st_size);
- }
- else
- {
- /* If this is a 64 bit object it's easy. */
- assert (sizeof (GElf_Sym) == sizeof (Elf64_Sym));
-
- /* The data is already in the correct form. Just make sure the
- index is OK. */
- if (unlikely ((ndx + 1) * sizeof (GElf_Sym) > data->d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- *dst = ((GElf_Sym *) data->d_buf)[ndx];
- }
-
- result = dst;
-
- out:
- rwlock_unlock (data_scn->s->elf->lock);
-
- return result;
-}
-INTDEF(gelf_getsym)
diff --git a/libelf/gelf_getsyminfo.c b/libelf/gelf_getsyminfo.c
deleted file mode 100644
index 70cfdcd3..00000000
--- a/libelf/gelf_getsyminfo.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Get additional symbol information from symbol table at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Syminfo *
-gelf_getsyminfo (data, ndx, dst)
- Elf_Data *data;
- int ndx;
- GElf_Syminfo *dst;
-{
- GElf_Syminfo *result = NULL;
-
- if (data == NULL)
- return NULL;
-
- if (unlikely (data->d_type != ELF_T_SYMINFO))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- /* The types for 32 and 64 bit are the same. Lucky us. */
- assert (sizeof (GElf_Syminfo) == sizeof (Elf32_Syminfo));
- assert (sizeof (GElf_Syminfo) == sizeof (Elf64_Syminfo));
-
- rwlock_rdlock (((Elf_Data_Scn *) data)->s->elf->lock);
-
- /* The data is already in the correct form. Just make sure the
- index is OK. */
- if (unlikely ((ndx + 1) * sizeof (GElf_Syminfo) > data->d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- *dst = ((GElf_Syminfo *) data->d_buf)[ndx];
-
- result = dst;
-
- out:
- rwlock_unlock (((Elf_Data_Scn *) data)->s->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_getsymshndx.c b/libelf/gelf_getsymshndx.c
deleted file mode 100644
index 856f4919..00000000
--- a/libelf/gelf_getsymshndx.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Get symbol information and separate section index from symbol table
- at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Sym *
-gelf_getsymshndx (symdata, shndxdata, ndx, dst, dstshndx)
- Elf_Data *symdata;
- Elf_Data *shndxdata;
- int ndx;
- GElf_Sym *dst;
- Elf32_Word *dstshndx;
-{
- Elf_Data_Scn *symdata_scn = (Elf_Data_Scn *) symdata;
- Elf_Data_Scn *shndxdata_scn = (Elf_Data_Scn *) shndxdata;
- GElf_Sym *result = NULL;
- Elf32_Word shndx = 0;
-
- if (symdata == NULL)
- return NULL;
-
- if (unlikely (symdata->d_type != ELF_T_SYM)
- || (likely (shndxdata_scn != NULL)
- && unlikely (shndxdata->d_type != ELF_T_WORD)))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- rwlock_rdlock (symdata_scn->s->elf->lock);
-
- /* The user is not required to pass a data descriptor for an extended
- section index table. */
- if (likely (shndxdata_scn != NULL))
- {
- if (unlikely ((ndx + 1) * sizeof (Elf32_Word) > shndxdata_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- shndx = ((Elf32_Word *) shndxdata_scn->d.d_buf)[ndx];
- }
-
- /* This is the one place where we have to take advantage of the fact
- that an `Elf_Data' pointer is also a pointer to `Elf_Data_Scn'.
- The interface is broken so that it requires this hack. */
- if (symdata_scn->s->elf->class == ELFCLASS32)
- {
- Elf32_Sym *src;
-
- /* Here it gets a bit more complicated. The format of the symbol
- table entries has to be adopted. The user better has provided
- a buffer where we can store the information. While copying the
- data we are converting the format. */
- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > symdata->d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- src = &((Elf32_Sym *) symdata->d_buf)[ndx];
-
- /* This might look like a simple copy operation but it's
- not. There are zero- and sign-extensions going on. */
-#define COPY(name) \
- dst->name = src->name
- COPY (st_name);
- /* Please note that we can simply copy the `st_info' element since
- the definitions of ELFxx_ST_BIND and ELFxx_ST_TYPE are the same
- for the 64 bit variant. */
- COPY (st_info);
- COPY (st_other);
- COPY (st_shndx);
- COPY (st_value);
- COPY (st_size);
- }
- else
- {
- /* If this is a 64 bit object it's easy. */
- assert (sizeof (GElf_Sym) == sizeof (Elf64_Sym));
-
- /* The data is already in the correct form. Just make sure the
- index is OK. */
- if (unlikely ((ndx + 1) * sizeof (GElf_Sym) > symdata->d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- *dst = ((GElf_Sym *) symdata->d_buf)[ndx];
- }
-
- /* Now we can store the section index. */
- if (dstshndx != NULL)
- *dstshndx = shndx;
-
- result = dst;
-
- out:
- rwlock_unlock (symdata_scn->s->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_getverdaux.c b/libelf/gelf_getverdaux.c
deleted file mode 100644
index 0a14b121..00000000
--- a/libelf/gelf_getverdaux.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Get additional symbol version definition information at the given offset.
- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Verdaux *
-gelf_getverdaux (data, offset, dst)
- Elf_Data *data;
- int offset;
- GElf_Verdaux *dst;
-{
- GElf_Verdaux *result;
-
- if (data == NULL)
- return NULL;
-
- if (unlikely (data->d_type != ELF_T_VDEF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- /* It's easy to handle this type. It has the same size for 32 and
- 64 bit objects. */
- assert (sizeof (GElf_Verdaux) == sizeof (Elf32_Verdaux));
- assert (sizeof (GElf_Verdaux) == sizeof (Elf64_Verdaux));
-
- rwlock_rdlock (((Elf_Data_Scn *) data)->s->elf->lock);
-
- /* The data is already in the correct form. Just make sure the
- index is OK. */
- if (unlikely (offset < 0)
- || unlikely (offset + sizeof (GElf_Verdaux) > data->d_size)
- || unlikely (offset % __alignof__ (GElf_Verdaux) != 0))
- {
- __libelf_seterrno (ELF_E_OFFSET_RANGE);
- result = NULL;
- }
- else
- result = (GElf_Verdaux *) memcpy (dst, (char *) data->d_buf + offset,
- sizeof (GElf_Verdaux));
-
-
- rwlock_unlock (((Elf_Data_Scn *) data)->s->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_getverdef.c b/libelf/gelf_getverdef.c
deleted file mode 100644
index b9492ef7..00000000
--- a/libelf/gelf_getverdef.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Get symbol version definition information at the given offset.
- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Verdef *
-gelf_getverdef (data, offset, dst)
- Elf_Data *data;
- int offset;
- GElf_Verdef *dst;
-{
- GElf_Verdef *result;
-
- if (data == NULL)
- return NULL;
-
- if (unlikely (data->d_type != ELF_T_VDEF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- /* It's easy to handle this type. It has the same size for 32 and
- 64 bit objects. */
- assert (sizeof (GElf_Verdef) == sizeof (Elf32_Verdef));
- assert (sizeof (GElf_Verdef) == sizeof (Elf64_Verdef));
-
- rwlock_rdlock (((Elf_Data_Scn *) data)->s->elf->lock);
-
- /* The data is already in the correct form. Just make sure the
- index is OK. */
- if (unlikely (offset < 0)
- || unlikely (offset + sizeof (GElf_Verdef) > data->d_size)
- || unlikely (offset % __alignof__ (GElf_Verdef) != 0))
- {
- __libelf_seterrno (ELF_E_OFFSET_RANGE);
- result = NULL;
- }
- else
- result = (GElf_Verdef *) memcpy (dst, (char *) data->d_buf + offset,
- sizeof (GElf_Verdef));
-
- rwlock_unlock (((Elf_Data_Scn *) data)->s->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_getvernaux.c b/libelf/gelf_getvernaux.c
deleted file mode 100644
index fbaa109a..00000000
--- a/libelf/gelf_getvernaux.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Get additional required symbol version information at the given offset.
- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Vernaux *
-gelf_getvernaux (data, offset, dst)
- Elf_Data *data;
- int offset;
- GElf_Vernaux *dst;
-{
- GElf_Vernaux *result;
-
- if (data == NULL)
- return NULL;
-
- if (unlikely (data->d_type != ELF_T_VNEED))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- /* It's easy to handle this type. It has the same size for 32 and
- 64 bit objects. And fortunately the `ElfXXX_Vernaux' records
- also have the same size. */
- assert (sizeof (GElf_Vernaux) == sizeof (Elf32_Verneed));
- assert (sizeof (GElf_Vernaux) == sizeof (Elf64_Verneed));
- assert (sizeof (GElf_Vernaux) == sizeof (Elf32_Vernaux));
- assert (sizeof (GElf_Vernaux) == sizeof (Elf64_Vernaux));
-
- rwlock_rdlock (((Elf_Data_Scn *) data)->s->elf->lock);
-
- /* The data is already in the correct form. Just make sure the
- index is OK. */
- if (unlikely (offset < 0)
- || unlikely (offset + sizeof (GElf_Vernaux) > data->d_size)
- || unlikely (offset % sizeof (GElf_Vernaux) != 0))
- {
- __libelf_seterrno (ELF_E_OFFSET_RANGE);
- result = NULL;
- }
- else
- result = (GElf_Vernaux *) memcpy (dst, (char *) data->d_buf + offset,
- sizeof (GElf_Verneed));
-
- rwlock_unlock (((Elf_Data_Scn *) data)->s->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_getverneed.c b/libelf/gelf_getverneed.c
deleted file mode 100644
index 573e116a..00000000
--- a/libelf/gelf_getverneed.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Get required symbol version information at the given offset.
- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Verneed *
-gelf_getverneed (data, offset, dst)
- Elf_Data *data;
- int offset;
- GElf_Verneed *dst;
-{
- GElf_Verneed *result;
-
- if (data == NULL)
- return NULL;
-
- if (unlikely (data->d_type != ELF_T_VNEED))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- /* It's easy to handle this type. It has the same size for 32 and
- 64 bit objects. And fortunately the `ElfXXX_Vernaux' records
- also have the same size. */
- assert (sizeof (GElf_Verneed) == sizeof (Elf32_Verneed));
- assert (sizeof (GElf_Verneed) == sizeof (Elf64_Verneed));
- assert (sizeof (GElf_Verneed) == sizeof (Elf32_Vernaux));
- assert (sizeof (GElf_Verneed) == sizeof (Elf64_Vernaux));
-
- rwlock_rdlock (((Elf_Data_Scn *) data)->s->elf->lock);
-
- /* The data is already in the correct form. Just make sure the
- index is OK. */
- if (unlikely (offset < 0)
- || unlikely (offset + sizeof (GElf_Verneed) > data->d_size)
- || unlikely (offset % sizeof (GElf_Verneed) != 0))
- {
- __libelf_seterrno (ELF_E_OFFSET_RANGE);
- result = NULL;
- }
- else
- result = (GElf_Verneed *) memcpy (dst, (char *) data->d_buf + offset,
- sizeof (GElf_Verneed));
-
- rwlock_unlock (((Elf_Data_Scn *) data)->s->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_getversym.c b/libelf/gelf_getversym.c
deleted file mode 100644
index 9274b142..00000000
--- a/libelf/gelf_getversym.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Get symbol version information at the given index.
- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-GElf_Versym *
-gelf_getversym (data, ndx, dst)
- Elf_Data *data;
- int ndx;
- GElf_Versym *dst;
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
- Elf_Scn *scn;
- GElf_Versym *result;
-
- if (data == NULL)
- return NULL;
-
- if (unlikely (data->d_type != ELF_T_HALF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- /* This is the one place where we have to take advantage of the fact
- that an `Elf_Data' pointer is also a pointer to `Elf_Data_Scn'.
- The interface is broken so that it requires this hack. */
- scn = data_scn->s;
-
- /* It's easy to handle this type. It has the same size for 32 and
- 64 bit objects. */
- assert (sizeof (GElf_Versym) == sizeof (Elf32_Versym));
- assert (sizeof (GElf_Versym) == sizeof (Elf64_Versym));
-
- rwlock_rdlock (scn->elf->lock);
-
- /* The data is already in the correct form. Just make sure the
- index is OK. */
- if (unlikely ((ndx + 1) * sizeof (GElf_Versym) > data->d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- result = NULL;
- }
- else
- {
- *dst = ((GElf_Versym *) data->d_buf)[ndx];
-
- result = dst;
- }
-
- rwlock_unlock (scn->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_newehdr.c b/libelf/gelf_newehdr.c
deleted file mode 100644
index 587283f4..00000000
--- a/libelf/gelf_newehdr.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Create new ELF header.
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <stdlib.h>
-
-#include "libelfP.h"
-
-
-unsigned long int
-gelf_newehdr (elf, class)
- Elf *elf;
- int class;
-{
- return (class == ELFCLASS32
- ? (unsigned long int) INTUSE(elf32_newehdr) (elf)
- : (unsigned long int) INTUSE(elf64_newehdr) (elf));
-}
diff --git a/libelf/gelf_newphdr.c b/libelf/gelf_newphdr.c
deleted file mode 100644
index d1d433e8..00000000
--- a/libelf/gelf_newphdr.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Create new ELF program header.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <stdlib.h>
-
-#include "libelfP.h"
-
-
-unsigned long int
-gelf_newphdr (elf, phnum)
- Elf *elf;
- size_t phnum;
-{
- return (elf->class == ELFCLASS32
- ? (unsigned long int) INTUSE(elf32_newphdr) (elf, phnum)
- : (unsigned long int) INTUSE(elf64_newphdr) (elf, phnum));
-}
diff --git a/libelf/gelf_rawchunk.c b/libelf/gelf_rawchunk.c
deleted file mode 100644
index 667f3013..00000000
--- a/libelf/gelf_rawchunk.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Retrieve uninterpreted chunk of the file contents.
- Copyright (C) 2002 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "libelfP.h"
-
-
-char *
-gelf_rawchunk (elf, offset, size)
- Elf *elf;
- GElf_Off offset;
- GElf_Word size;
-{
- if (elf == NULL)
- {
- /* No valid descriptor. */
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return NULL;
- }
-
- if (offset >= elf->maximum_size
- || offset + size >= elf->maximum_size
- || offset + size < offset)
- {
- /* Invalid request. */
- __libelf_seterrno (ELF_E_INVALID_OP);
- return NULL;
- }
-
- /* If the file is mmap'ed return an appropriate pointer. */
- if (elf->map_address != NULL)
- return (char *) elf->map_address + elf->start_offset + offset;
-
- /* We allocate the memory and read the data from the file. */
- char *result = (char *) malloc (size);
- if (result == NULL)
- __libelf_seterrno (ELF_E_NOMEM);
- else
- /* Read the file content. */
- if ((size_t) pread (elf->fildes, result, size, elf->start_offset + offset)
- != size)
- {
- /* Something went wrong. */
- __libelf_seterrno (ELF_E_READ_ERROR);
- free (result);
- }
-
- return result;
-}
diff --git a/libelf/gelf_update_dyn.c b/libelf/gelf_update_dyn.c
deleted file mode 100644
index b066fd62..00000000
--- a/libelf/gelf_update_dyn.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Update information in dynamic table at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_dyn (data, ndx, src)
- Elf_Data *data;
- int ndx;
- GElf_Dyn *src;
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
- Elf_Scn *scn;
- int result = 0;
-
- if (data == NULL)
- return 0;
-
- if (unlikely (ndx < 0))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return 0;
- }
-
- if (unlikely (data_scn->d.d_type != ELF_T_DYN))
- {
- /* The type of the data better should match. */
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- return 0;
- }
-
- scn = data_scn->s;
- rwlock_wrlock (scn->elf->lock);
-
- if (scn->elf->class == ELFCLASS32)
- {
- Elf32_Dyn *dyn;
-
- /* There is the possibility that the values in the input are
- too large. */
- if (unlikely (src->d_tag < -0x80000000ll)
- || unlikely (src->d_tag > 0x7fffffffll)
- || unlikely (src->d_un.d_val > 0xffffffffull))
- {
- __libelf_seterrno (ELF_E_INVALID_DATA);
- goto out;
- }
-
- /* Check whether we have to resize the data buffer. */
- if (unlikely ((ndx + 1) * sizeof (Elf32_Dyn) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- dyn = &((Elf32_Dyn *) data_scn->d.d_buf)[ndx];
-
- dyn->d_tag = src->d_tag;
- dyn->d_un.d_val = src->d_un.d_val;
- }
- else
- {
- /* Check whether we have to resize the data buffer. */
- if (unlikely ((ndx + 1) * sizeof (Elf64_Dyn) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- ((Elf64_Dyn *) data_scn->d.d_buf)[ndx] = *src;
- }
-
- result = 1;
-
- /* Mark the section as modified. */
- scn->flags |= ELF_F_DIRTY;
-
- out:
- rwlock_unlock (scn->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_update_ehdr.c b/libelf/gelf_update_ehdr.c
deleted file mode 100644
index e13121d0..00000000
--- a/libelf/gelf_update_ehdr.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Update ELF header.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_ehdr (Elf *elf, GElf_Ehdr *src)
-{
- int result = 0;
-
- if (elf == NULL)
- return 0;
-
- if (unlikely (elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return 0;
- }
-
- rwlock_wrlock (elf->lock);
-
- if (elf->class == ELFCLASS32)
- {
- Elf32_Ehdr *ehdr = elf->state.elf32.ehdr;
-
- if (ehdr == NULL)
- {
- __libelf_seterrno (ELF_E_WRONG_ORDER_EHDR);
- goto out;
- }
-
- /* We have to convert the data to the 32 bit format. This might
- overflow some fields so we have to test for this case before
- copying. */
- if (unlikely (src->e_entry > 0xffffffffull)
- || unlikely (src->e_phoff > 0xffffffffull)
- || unlikely (src->e_shoff > 0xffffffffull))
- {
- __libelf_seterrno (ELF_E_INVALID_DATA);
- goto out;
- }
-
- /* Copy the data. */
- memcpy (ehdr->e_ident, src->e_ident, EI_NIDENT);
-#define COPY(name) \
- ehdr->name = src->name
- COPY (e_type);
- COPY (e_machine);
- COPY (e_version);
- COPY (e_entry);
- COPY (e_phoff);
- COPY (e_shoff);
- COPY (e_flags);
- COPY (e_ehsize);
- COPY (e_phentsize);
- COPY (e_phnum);
- COPY (e_shentsize);
- COPY (e_shnum);
- COPY (e_shstrndx);
- }
- else
- {
- Elf64_Ehdr *ehdr = elf->state.elf64.ehdr;
-
- if (ehdr == NULL)
- {
- __libelf_seterrno (ELF_E_WRONG_ORDER_EHDR);
- goto out;
- }
-
- /* Just copy the data. */
- memcpy (ehdr, src, sizeof (Elf64_Ehdr));
- }
-
- result = 1;
-
- out:
- rwlock_unlock (elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_update_lib.c b/libelf/gelf_update_lib.c
deleted file mode 100644
index 08ce2296..00000000
--- a/libelf/gelf_update_lib.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Update library in table at the given index.
- Copyright (C) 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_lib (data, ndx, src)
- Elf_Data *data;
- int ndx;
- GElf_Lib *src;
-{
- if (data == NULL)
- return 0;
-
- if (unlikely (ndx < 0))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return 0;
- }
-
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
- if (unlikely (data_scn->d.d_type != ELF_T_LIB))
- {
- /* The type of the data better should match. */
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- return 0;
- }
-
- Elf_Scn *scn = data_scn->s;
- rwlock_wrlock (scn->elf->lock);
-
- /* Check whether we have to resize the data buffer. */
- int result = 0;
- if (unlikely ((ndx + 1) * sizeof (Elf64_Lib) > data_scn->d.d_size))
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- else
- {
- ((Elf64_Lib *) data_scn->d.d_buf)[ndx] = *src;
-
- result = 1;
-
- /* Mark the section as modified. */
- scn->flags |= ELF_F_DIRTY;
- }
-
- rwlock_unlock (scn->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_update_move.c b/libelf/gelf_update_move.c
deleted file mode 100644
index 090e3975..00000000
--- a/libelf/gelf_update_move.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Update move structure at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <stdlib.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_move (data, ndx, src)
- Elf_Data *data;
- int ndx;
- GElf_Move *src;
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
-
- if (data == NULL)
- return 0;
-
- /* The types for 32 and 64 bit are the same. Lucky us. */
- assert (sizeof (GElf_Move) == sizeof (Elf32_Move));
- assert (sizeof (GElf_Move) == sizeof (Elf64_Move));
-
- /* Check whether we have to resize the data buffer. */
- if (unlikely (ndx < 0)
- || unlikely ((ndx + 1) * sizeof (GElf_Move) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return 0;
- }
-
- if (unlikely (data_scn->d.d_type != ELF_T_MOVE))
- {
- /* The type of the data better should match. */
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- return 0;
- }
-
- rwlock_wrlock (data_scn->s->elf->lock);
-
- ((GElf_Move *) data_scn->d.d_buf)[ndx] = *src;
-
- /* Mark the section as modified. */
- data_scn->s->flags |= ELF_F_DIRTY;
-
- rwlock_unlock (data_scn->s->elf->lock);
-
- return 1;
-}
diff --git a/libelf/gelf_update_phdr.c b/libelf/gelf_update_phdr.c
deleted file mode 100644
index ddd4e1ee..00000000
--- a/libelf/gelf_update_phdr.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Update program header program header table entry.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_phdr (Elf *elf, int ndx, GElf_Phdr *src)
-{
- int result = 0;
-
- if (elf == NULL)
- return 0;
-
- if (unlikely (elf->kind != ELF_K_ELF))
- {
- __libelf_seterrno (ELF_E_INVALID_HANDLE);
- return 0;
- }
-
- rwlock_wrlock (elf->lock);
-
- if (elf->class == ELFCLASS32)
- {
- Elf32_Phdr *phdr = elf->state.elf32.phdr;
-
- /* We have to convert the data to the 32 bit format. This might
- overflow some fields so we have to test for this case before
- copying. */
- if (unlikely (src->p_offset > 0xffffffffull)
- || unlikely (src->p_vaddr > 0xffffffffull)
- || unlikely (src->p_paddr > 0xffffffffull)
- || unlikely (src->p_filesz > 0xffffffffull)
- || unlikely (src->p_memsz > 0xffffffffull)
- || unlikely (src->p_align > 0xffffffffull))
- {
- __libelf_seterrno (ELF_E_INVALID_DATA);
- goto out;
- }
-
- if (phdr == NULL)
- {
- phdr = INTUSE(elf32_getphdr) (elf);
- if (phdr == NULL)
- /* The error number is already set. */
- goto out;
- }
-
- /* Test whether the index is ok. */
- if (unlikely (ndx >= elf->state.elf32.ehdr->e_phnum))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- /* Now correct the pointer to point to the correct element. */
- phdr += ndx;
-
-#define COPY(name) \
- phdr->name = src->name
- COPY (p_type);
- COPY (p_offset);
- COPY (p_vaddr);
- COPY (p_paddr);
- COPY (p_filesz);
- COPY (p_memsz);
- COPY (p_flags);
- COPY (p_align);
- }
- else
- {
- Elf64_Phdr *phdr = elf->state.elf64.phdr;
-
- if (phdr == NULL)
- {
- phdr = INTUSE(elf64_getphdr) (elf);
- if (phdr == NULL)
- /* The error number is already set. */
- goto out;
- }
-
- /* Test whether the index is ok. */
- if (unlikely (ndx >= elf->state.elf64.ehdr->e_phnum))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- /* Just copy the data. */
- memcpy (phdr + ndx, src, sizeof (Elf64_Phdr));
- }
-
- result = 1;
-
- out:
- rwlock_unlock (elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_update_rel.c b/libelf/gelf_update_rel.c
deleted file mode 100644
index c59c6dd4..00000000
--- a/libelf/gelf_update_rel.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Update REL relocation information at given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <stdlib.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_rel (Elf_Data *dst, int ndx, GElf_Rel *src)
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) dst;
- Elf_Scn *scn;
- int result = 0;
-
- if (dst == NULL)
- return 0;
-
- if (unlikely (ndx < 0))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return 0;
- }
-
- if (unlikely (data_scn->d.d_type != ELF_T_REL))
- {
- /* The type of the data better should match. */
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- return 0;
- }
-
- scn = data_scn->s;
- rwlock_wrlock (scn->elf->lock);
-
- if (scn->elf->class == ELFCLASS32)
- {
- Elf32_Rel *rel;
-
- /* There is the possibility that the values in the input are
- too large. */
- if (unlikely (src->r_offset > 0xffffffffull)
- || unlikely (GELF_R_SYM (src->r_info) > 0xffffff)
- || unlikely (GELF_R_TYPE (src->r_info) > 0xff))
- {
- __libelf_seterrno (ELF_E_INVALID_DATA);
- goto out;
- }
-
- /* Check whether we have to resize the data buffer. */
- if (unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- rel = &((Elf32_Rel *) data_scn->d.d_buf)[ndx];
-
- rel->r_offset = src->r_offset;
- rel->r_info = ELF32_R_INFO (GELF_R_SYM (src->r_info),
- GELF_R_TYPE (src->r_info));
- }
- else
- {
- /* Check whether we have to resize the data buffer. */
- if (unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- ((Elf64_Rel *) data_scn->d.d_buf)[ndx] = *src;
- }
-
- result = 1;
-
- /* Mark the section as modified. */
- scn->flags |= ELF_F_DIRTY;
-
- out:
- rwlock_unlock (scn->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_update_rela.c b/libelf/gelf_update_rela.c
deleted file mode 100644
index f932c018..00000000
--- a/libelf/gelf_update_rela.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Update RELA relocation information at given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <stdlib.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_rela (Elf_Data *dst, int ndx, GElf_Rela *src)
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) dst;
- Elf_Scn *scn;
- int result = 0;
-
- if (dst == NULL)
- return 0;
-
- if (unlikely (ndx < 0))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return 0;
- }
-
- if (unlikely (data_scn->d.d_type != ELF_T_RELA))
- {
- /* The type of the data better should match. */
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- return 0;
- }
-
- scn = data_scn->s;
- rwlock_wrlock (scn->elf->lock);
-
- if (scn->elf->class == ELFCLASS32)
- {
- Elf32_Rela *rel;
-
- /* There is the possibility that the values in the input are
- too large. */
- if (unlikely (src->r_offset > 0xffffffffull)
- || unlikely (GELF_R_SYM (src->r_info) > 0xffffff)
- || unlikely (GELF_R_TYPE (src->r_info) > 0xff)
- || unlikely (src->r_addend < -0x80000000ll)
- || unlikely (src->r_addend > 0x7fffffffll))
- {
- __libelf_seterrno (ELF_E_INVALID_DATA);
- goto out;
- }
-
- /* Check whether we have to resize the data buffer. */
- if (unlikely ((ndx + 1) * sizeof (Elf32_Rela) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- rel = &((Elf32_Rela *) data_scn->d.d_buf)[ndx];
-
- rel->r_offset = src->r_offset;
- rel->r_info = ELF32_R_INFO (GELF_R_SYM (src->r_info),
- GELF_R_TYPE (src->r_info));
- rel->r_addend = src->r_addend;
- }
- else
- {
- /* Check whether we have to resize the data buffer. */
- if (unlikely ((ndx + 1) * sizeof (Elf64_Rela) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- ((Elf64_Rela *) data_scn->d.d_buf)[ndx] = *src;
- }
-
- result = 1;
-
- /* Mark the section as modified. */
- scn->flags |= ELF_F_DIRTY;
-
- out:
- rwlock_unlock (scn->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_update_shdr.c b/libelf/gelf_update_shdr.c
deleted file mode 100644
index c54e8c52..00000000
--- a/libelf/gelf_update_shdr.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Update section header.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_shdr (Elf_Scn *scn, GElf_Shdr *src)
-{
- int result = 0;
- Elf *elf;
-
- if (scn == NULL || src == NULL)
- return 0;
-
- elf = scn->elf;
- rwlock_wrlock (elf->lock);
-
- if (elf->class == ELFCLASS32)
- {
- Elf32_Shdr *shdr = scn->shdr.e32 ?: INTUSE(elf32_getshdr) (scn);
-
- if (shdr == NULL)
- {
- __libelf_seterrno (ELF_E_INVALID_OPERAND);
- goto out;
- }
-
- if (unlikely (src->sh_flags > 0xffffffffull)
- || unlikely (src->sh_addr > 0xffffffffull)
- || unlikely (src->sh_offset > 0xffffffffull)
- || unlikely (src->sh_size > 0xffffffffull)
- || unlikely (src->sh_addralign > 0xffffffffull)
- || unlikely (src->sh_entsize > 0xffffffffull))
- {
- __libelf_seterrno (ELF_E_INVALID_DATA);
- goto out;
- }
-
-#define COPY(name) \
- shdr->name = src->name
- COPY (sh_name);
- COPY (sh_type);
- COPY (sh_flags);
- COPY (sh_addr);
- COPY (sh_offset);
- COPY (sh_size);
- COPY (sh_link);
- COPY (sh_info);
- COPY (sh_addralign);
- COPY (sh_entsize);
- }
- else
- {
- Elf64_Shdr *shdr = scn->shdr.e64 ?: INTUSE(elf64_getshdr) (scn);
-
- if (shdr == NULL)
- {
- __libelf_seterrno (ELF_E_INVALID_OPERAND);
- goto out;
- }
-
- /* We only have to copy the data. */
- (void) memcpy (shdr, src, sizeof (GElf_Shdr));
- }
-
- result = 1;
-
- out:
- rwlock_unlock (elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_update_sym.c b/libelf/gelf_update_sym.c
deleted file mode 100644
index 8fc7dd66..00000000
--- a/libelf/gelf_update_sym.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Update symbol information in symbol table at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_sym (data, ndx, src)
- Elf_Data *data;
- int ndx;
- GElf_Sym *src;
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
- Elf_Scn *scn;
- int result = 0;
-
- if (data == NULL)
- return 0;
-
- if (unlikely (ndx < 0))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return 0;
- }
-
- if (unlikely (data_scn->d.d_type != ELF_T_SYM))
- {
- /* The type of the data better should match. */
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- return 0;
- }
-
- scn = data_scn->s;
- rwlock_wrlock (scn->elf->lock);
-
- if (scn->elf->class == ELFCLASS32)
- {
- Elf32_Sym *sym;
-
- /* There is the possibility that the values in the input are
- too large. */
- if (unlikely (src->st_value > 0xffffffffull)
- || unlikely (src->st_size > 0xffffffffull))
- {
- __libelf_seterrno (ELF_E_INVALID_DATA);
- goto out;
- }
-
- /* Check whether we have to resize the data buffer. */
- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- sym = &((Elf32_Sym *) data_scn->d.d_buf)[ndx];
-
-#define COPY(name) \
- sym->name = src->name
- COPY (st_name);
- COPY (st_value);
- COPY (st_size);
- /* Please note that we can simply copy the `st_info' element since
- the definitions of ELFxx_ST_BIND and ELFxx_ST_TYPE are the same
- for the 64 bit variant. */
- COPY (st_info);
- COPY (st_other);
- COPY (st_shndx);
- }
- else
- {
- /* Check whether we have to resize the data buffer. */
- if (unlikely ((ndx + 1) * sizeof (Elf64_Sym) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- ((Elf64_Sym *) data_scn->d.d_buf)[ndx] = *src;
- }
-
- result = 1;
-
- /* Mark the section as modified. */
- scn->flags |= ELF_F_DIRTY;
-
- out:
- rwlock_unlock (scn->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_update_syminfo.c b/libelf/gelf_update_syminfo.c
deleted file mode 100644
index a60aa5c5..00000000
--- a/libelf/gelf_update_syminfo.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Update additional symbol information in symbol table at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <stdlib.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_syminfo (data, ndx, src)
- Elf_Data *data;
- int ndx;
- GElf_Syminfo *src;
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
- Elf_Scn *scn;
- int result = 0;
-
- if (data == NULL)
- return 0;
-
- if (unlikely (ndx < 0))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return 0;
- }
-
- if (unlikely (data_scn->d.d_type != ELF_T_SYMINFO))
- {
- /* The type of the data better should match. */
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- return 0;
- }
-
- /* The types for 32 and 64 bit are the same. Lucky us. */
- assert (sizeof (GElf_Syminfo) == sizeof (Elf32_Syminfo));
- assert (sizeof (GElf_Syminfo) == sizeof (Elf64_Syminfo));
-
- scn = data_scn->s;
- rwlock_wrlock (scn->elf->lock);
-
- /* Check whether we have to resize the data buffer. */
- if (unlikely ((ndx + 1) * sizeof (GElf_Syminfo) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- ((GElf_Syminfo *) data_scn->d.d_buf)[ndx] = *src;
-
- result = 1;
-
- /* Mark the section as modified. */
- scn->flags |= ELF_F_DIRTY;
-
- out:
- rwlock_unlock (scn->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_update_symshndx.c b/libelf/gelf_update_symshndx.c
deleted file mode 100644
index 4f376150..00000000
--- a/libelf/gelf_update_symshndx.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Update symbol information and section index in symbol table at the
- given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_symshndx (symdata, shndxdata, ndx, src, srcshndx)
- Elf_Data *symdata;
- Elf_Data *shndxdata;
- int ndx;
- GElf_Sym *src;
- Elf32_Word srcshndx;
-{
- Elf_Data_Scn *symdata_scn = (Elf_Data_Scn *) symdata;
- Elf_Data_Scn *shndxdata_scn = (Elf_Data_Scn *) shndxdata;
- Elf_Scn *scn;
- Elf32_Word *shndx = NULL;
- int result = 0;
-
- if (symdata == NULL)
- return 0;
-
- if (unlikely (ndx < 0))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return 0;
- }
-
- if (unlikely (symdata_scn->d.d_type != ELF_T_SYM))
- {
- /* The type of the data better should match. */
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- return 0;
- }
-
- scn = symdata_scn->s;
- /* We simply have to believe the user that the two sections belong to
- the same ELF file. */
- rwlock_wrlock (scn->elf->lock);
-
- /* The user is not required to pass a data descriptor for an extended
- section index table. */
- if (shndxdata_scn != NULL)
- {
- if (unlikely ((ndx + 1) * sizeof (Elf32_Word) > shndxdata_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- shndx = &((Elf32_Word *) shndxdata_scn->d.d_buf)[ndx];
- }
- /* But if s/he does not the extended sectio index must be zero. */
- else if (unlikely (srcshndx != 0))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- if (scn->elf->class == ELFCLASS32)
- {
- Elf32_Sym *sym;
-
- /* There is the possibility that the values in the input are
- too large. */
- if (unlikely (src->st_value > 0xffffffffull)
- || unlikely (src->st_size > 0xffffffffull))
- {
- __libelf_seterrno (ELF_E_INVALID_DATA);
- goto out;
- }
-
- /* Check whether we have to resize the data buffer. */
- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > symdata_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- sym = &((Elf32_Sym *) symdata_scn->d.d_buf)[ndx];
-
-#define COPY(name) \
- sym->name = src->name
- COPY (st_name);
- COPY (st_value);
- COPY (st_size);
- /* Please note that we can simply copy the `st_info' element since
- the definitions of ELFxx_ST_BIND and ELFxx_ST_TYPE are the same
- for the 64 bit variant. */
- COPY (st_info);
- COPY (st_other);
- COPY (st_shndx);
- }
- else
- {
- /* Check whether we have to resize the data buffer. */
- if (unlikely ((ndx + 1) * sizeof (Elf64_Sym) > symdata_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- goto out;
- }
-
- ((Elf64_Sym *) symdata_scn->d.d_buf)[ndx] = *src;
- }
-
- /* Now we can store the section index. */
- if (shndx != NULL)
- *shndx = srcshndx;
-
- result = 1;
-
- /* Mark the section as modified. */
- scn->flags |= ELF_F_DIRTY;
-
- out:
- rwlock_unlock (scn->elf->lock);
-
- return result;
-}
diff --git a/libelf/gelf_update_verdaux.c b/libelf/gelf_update_verdaux.c
deleted file mode 100644
index e21428e0..00000000
--- a/libelf/gelf_update_verdaux.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Update additional symbol version definition information.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_verdaux (data, offset, src)
- Elf_Data *data;
- int offset;
- GElf_Verdaux *src;
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
-
- if (data == NULL)
- return 0;
-
- /* The types for 32 and 64 bit are the same. Lucky us. */
- assert (sizeof (GElf_Verdaux) == sizeof (Elf32_Verdaux));
- assert (sizeof (GElf_Verdaux) == sizeof (Elf64_Verdaux));
-
- /* Check whether we have to resize the data buffer. */
- if (unlikely (offset < 0)
- || unlikely ((offset + sizeof (GElf_Verdaux)) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return 0;
- }
-
- if (unlikely (data_scn->d.d_type != ELF_T_VDEF))
- {
- /* The type of the data better should match. */
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- return 0;
- }
-
- rwlock_wrlock (data_scn->s->elf->lock);
-
- memcpy ((char *) data_scn->d.d_buf + offset, src, sizeof (GElf_Verdaux));
-
- /* Mark the section as modified. */
- data_scn->s->flags |= ELF_F_DIRTY;
-
- rwlock_unlock (data_scn->s->elf->lock);
-
- return 1;
-}
diff --git a/libelf/gelf_update_verdef.c b/libelf/gelf_update_verdef.c
deleted file mode 100644
index 833a058b..00000000
--- a/libelf/gelf_update_verdef.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Update symbol version definition information.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_verdef (data, offset, src)
- Elf_Data *data;
- int offset;
- GElf_Verdef *src;
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
-
- if (data == NULL)
- return 0;
-
- /* The types for 32 and 64 bit are the same. Lucky us. */
- assert (sizeof (GElf_Verdef) == sizeof (Elf32_Verdef));
- assert (sizeof (GElf_Verdef) == sizeof (Elf64_Verdef));
-
- /* Check whether we have to resize the data buffer. */
- if (unlikely (offset < 0)
- || unlikely ((offset + sizeof (GElf_Verdef)) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return 0;
- }
-
- if (unlikely (data_scn->d.d_type != ELF_T_VDEF))
- {
- /* The type of the data better should match. */
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- return 0;
- }
-
- rwlock_wrlock (data_scn->s->elf->lock);
-
- memcpy ((char *) data_scn->d.d_buf + offset, src, sizeof (GElf_Verdef));
-
- /* Mark the section as modified. */
- data_scn->s->flags |= ELF_F_DIRTY;
-
- rwlock_unlock (data_scn->s->elf->lock);
-
- return 1;
-}
diff --git a/libelf/gelf_update_vernaux.c b/libelf/gelf_update_vernaux.c
deleted file mode 100644
index 3f506d48..00000000
--- a/libelf/gelf_update_vernaux.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Update additional required symbol version information.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_vernaux (data, offset, src)
- Elf_Data *data;
- int offset;
- GElf_Vernaux *src;
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
-
- if (data == NULL)
- return 0;
-
- /* The types for 32 and 64 bit are the same. Lucky us. */
- assert (sizeof (GElf_Vernaux) == sizeof (Elf32_Vernaux));
- assert (sizeof (GElf_Vernaux) == sizeof (Elf64_Vernaux));
-
- /* Check whether we have to resize the data buffer. */
- if (unlikely (offset < 0)
- || unlikely ((offset + sizeof (GElf_Vernaux)) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return 0;
- }
-
- if (unlikely (data_scn->d.d_type != ELF_T_VNEED))
- {
- /* The type of the data better should match. */
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- return 0;
- }
-
- rwlock_wrlock (data_scn->s->elf->lock);
-
- memcpy ((char *) data_scn->d.d_buf + offset, src, sizeof (GElf_Vernaux));
-
- /* Mark the section as modified. */
- data_scn->s->flags |= ELF_F_DIRTY;
-
- rwlock_unlock (data_scn->s->elf->lock);
-
- return 1;
-}
diff --git a/libelf/gelf_update_verneed.c b/libelf/gelf_update_verneed.c
deleted file mode 100644
index 6fccd937..00000000
--- a/libelf/gelf_update_verneed.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Update required symbol version information.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_verneed (data, offset, src)
- Elf_Data *data;
- int offset;
- GElf_Verneed *src;
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
-
- if (data == NULL)
- return 0;
-
- /* The types for 32 and 64 bit are the same. Lucky us. */
- assert (sizeof (GElf_Verneed) == sizeof (Elf32_Verneed));
- assert (sizeof (GElf_Verneed) == sizeof (Elf64_Verneed));
-
- /* Check whether we have to resize the data buffer. */
- if (unlikely (offset < 0)
- || unlikely ((offset + sizeof (GElf_Verneed)) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return 0;
- }
-
- if (unlikely (data_scn->d.d_type != ELF_T_VNEED))
- {
- /* The type of the data better should match. */
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- return 0;
- }
-
- rwlock_wrlock (data_scn->s->elf->lock);
-
- memcpy ((char *) data_scn->d.d_buf + offset, src, sizeof (GElf_Verneed));
-
- /* Mark the section as modified. */
- data_scn->s->flags |= ELF_F_DIRTY;
-
- rwlock_unlock (data_scn->s->elf->lock);
-
- return 1;
-}
diff --git a/libelf/gelf_update_versym.c b/libelf/gelf_update_versym.c
deleted file mode 100644
index 404d5bc3..00000000
--- a/libelf/gelf_update_versym.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Update symbol version information.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <gelf.h>
-#include <stdlib.h>
-
-#include "libelfP.h"
-
-
-int
-gelf_update_versym (data, ndx, src)
- Elf_Data *data;
- int ndx;
- GElf_Versym *src;
-{
- Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
-
- if (data == NULL)
- return 0;
-
- /* The types for 32 and 64 bit are the same. Lucky us. */
- assert (sizeof (GElf_Versym) == sizeof (Elf32_Versym));
- assert (sizeof (GElf_Versym) == sizeof (Elf64_Versym));
-
- /* Check whether we have to resize the data buffer. */
- if (unlikely (ndx < 0)
- || unlikely ((ndx + 1) * sizeof (GElf_Versym) > data_scn->d.d_size))
- {
- __libelf_seterrno (ELF_E_INVALID_INDEX);
- return 0;
- }
-
- if (unlikely (data_scn->d.d_type != ELF_T_HALF))
- {
- /* The type of the data better should match. */
- __libelf_seterrno (ELF_E_DATA_MISMATCH);
- return 0;
- }
-
- rwlock_wrlock (data_scn->s->elf->lock);
-
- ((GElf_Versym *) data_scn->d.d_buf)[ndx] = *src;
-
- /* Mark the section as modified. */
- data_scn->s->flags |= ELF_F_DIRTY;
-
- rwlock_unlock (data_scn->s->elf->lock);
-
- return 1;
-}
diff --git a/libelf/gelf_xlate.c b/libelf/gelf_xlate.c
deleted file mode 100644
index 25284b4d..00000000
--- a/libelf/gelf_xlate.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/* Transformation functions for ELF data types.
- Copyright (C) 1998, 1999, 2000, 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-//#include <byteswap.h>
-#include <stdint.h>
-#include <string.h>
-
-#include "libelfP.h"
-
-#ifndef LIBELFBITS
-# define LIBELFBITS 32
-#endif
-
-
-/* Well, what shall I say. Nothing to do here. */
-#define elf_cvt_Byte(dest, src, n) \
- (__builtin_constant_p (n) && (n) == 1 \
- ? (void) (*((char *) (dest)) = *((char *) (src))) \
- : Elf32_cvt_Byte (dest, src, n))
-static void
-(elf_cvt_Byte) (void *dest, const void *src, size_t n, int encode)
-{
- memmove (dest, src, n);
-}
-
-
-/* We'll optimize the definition of the conversion functions here a
- bit. We need only functions for 16, 32, and 64 bits. The
- functions referenced in the table will be aliases for one of these
- functions. Which one is decided by the ELFxx_FSZ_type. */
-#define LEN2_SWAP(Src) bswap_16 (*((uint16_t *) Src))
-#define word2_t uint16_t
-
-#define LEN4_SWAP(Src) bswap_32 (*((uint32_t *) Src))
-#define word4_t uint32_t
-
-#define LEN8_SWAP(Src) bswap_64 (*((uint64_t *) Src))
-#define word8_t uint64_t
-
-
-/* Now define the conversion functions for the basic types. We use here
- the fact that file and memory types are the same and that we have the
- ELFxx_FSZ_* macros.
-
- At the same time we define inline functions which we will use to
- convert the complex types. */
-#define FUNDAMENTAL(NAME, Name, Bits) \
- INLINE2 (ELFW2(Bits,FSZ_##NAME), ElfW2(Bits,cvt_##Name), ElfW2(Bits,Name))
-#define INLINE2(Bytes, FName, TName) \
- INLINE3 (Bytes, FName, TName)
-#define INLINE3(Bytes, FName, TName) \
- static void FName (void *dest, const void *ptr, size_t len, int encode) \
- { \
- size_t n = len / sizeof (TName); \
- if (dest < ptr) \
- { \
- word##Bytes##_t *tdest = (word##Bytes##_t *) dest; \
- const word##Bytes##_t *tptr = (const word##Bytes##_t *) ptr; \
- while (n-- > 0) \
- { \
- *tdest++ = LEN##Bytes##_SWAP (tptr); \
- tptr++; \
- } \
- } \
- else \
- { \
- word##Bytes##_t *tdest = (word##Bytes##_t *) dest + n; \
- const word##Bytes##_t *tptr = (const word##Bytes##_t *) ptr + n; \
- while (n-- > 0) \
- { \
- --tptr; \
- *--tdest = LEN##Bytes##_SWAP (tptr); \
- } \
- } \
- } \
- \
- static inline void FName##1 (void *dest, const void *ptr) \
- { \
- *((word##Bytes##_t *) dest) = \
- LEN##Bytes##_SWAP ((((word##Bytes##_t *) ptr))); \
- }
-
-
-/* Now the tricky part: define the transformation functions for the
- complex types. We will use the definitions of the types in
- abstract.h. */
-#define START(Bits, Name, EName) \
- static void \
- ElfW2 (Bits, cvt_##Name) (void *dest, const void *src, size_t len, \
- int encode) \
- { ElfW2(Bits, Name) *tdest = (ElfW2(Bits, Name) *) dest; \
- ElfW2(Bits, Name) *tsrc = (ElfW2(Bits, Name) *) src; \
- size_t n = len / sizeof (ElfW2(Bits, Name)); \
- for (; n > 0; ++tdest, ++tsrc, --n) {
-#define END(Bits, Name) } }
-#define TYPE_EXTRA(Code)
-#define TYPE_XLATE(Code) Code
-#define TYPE_NAME(Type, Name) TYPE_NAME2 (Type, Name)
-#define TYPE_NAME2(Type, Name) Type##1 (&tdest->Name, &tsrc->Name);
-#define TYPE(Name, Bits) TYPE2 (Name, Bits)
-#define TYPE2(Name, Bits) TYPE3 (Name##Bits)
-#define TYPE3(Name) Name (cvt_)
-
-/* Signal that we are generating conversion functions. */
-#define GENERATE_CONVERSION
-
-/* First generate the 32-bit conversion functions. */
-#define LIBELFBITS 32
-#include "gelf_xlate.h"
-
-/* Now generate the 64-bit conversion functions. */
-#define LIBELFBITS 64
-#include "gelf_xlate.h"
-
-
-/* We have a few functions which we must create by hand since the sections
- do not contain records of only one type. */
-#include "version_xlate.h"
-
-
-/* Now the externally visible table with the function pointers. */
-const xfct_t __elf_xfctstom[EV_NUM - 1][EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] =
-{
- [EV_CURRENT - 1] = {
- [EV_CURRENT - 1] = {
- [ELFCLASS32 - 1] = {
-#define define_xfcts(Bits) \
- [ELF_T_BYTE] = elf_cvt_Byte, \
- [ELF_T_ADDR] = ElfW2(Bits, cvt_Addr), \
- [ELF_T_DYN] = ElfW2(Bits, cvt_Dyn), \
- [ELF_T_EHDR] = ElfW2(Bits, cvt_Ehdr), \
- [ELF_T_HALF] = ElfW2(Bits, cvt_Half), \
- [ELF_T_OFF] = ElfW2(Bits, cvt_Off), \
- [ELF_T_PHDR] = ElfW2(Bits, cvt_Phdr), \
- [ELF_T_RELA] = ElfW2(Bits, cvt_Rela), \
- [ELF_T_REL] = ElfW2(Bits, cvt_Rel), \
- [ELF_T_SHDR] = ElfW2(Bits, cvt_Shdr), \
- [ELF_T_SWORD] = ElfW2(Bits, cvt_Sword), \
- [ELF_T_SYM] = ElfW2(Bits, cvt_Sym), \
- [ELF_T_WORD] = ElfW2(Bits, cvt_Word), \
- [ELF_T_XWORD] = ElfW2(Bits, cvt_Xword), \
- [ELF_T_SXWORD] = ElfW2(Bits, cvt_Sxword), \
- [ELF_T_VDEF] = elf_cvt_Verdef, \
- [ELF_T_VDAUX] = elf_cvt_Verdef, \
- [ELF_T_VNEED] = elf_cvt_Verneed, \
- [ELF_T_VNAUX] = elf_cvt_Verneed, \
- [ELF_T_NHDR] = ElfW2(Bits, cvt_Nhdr), \
- [ELF_T_SYMINFO] = ElfW2(Bits, cvt_Syminfo), \
- [ELF_T_MOVE] = ElfW2(Bits, cvt_Move), \
- [ELF_T_LIB] = ElfW2(Bits, cvt_Lib)
- define_xfcts (32)
- },
- [ELFCLASS64 - 1] = {
- define_xfcts (64)
- }
- }
- }
-};
-/* For now we only handle the case where the memory representation is the
- same as the file representation. Should this change we have to define
- separate functions. For now reuse them. */
-//strong_alias (__elf_xfctstom, __elf_xfctstof)
diff --git a/libelf/gelf_xlate.h b/libelf/gelf_xlate.h
deleted file mode 100644
index 42e91c08..00000000
--- a/libelf/gelf_xlate.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Helper file for type conversion function generation.
- Copyright (C) 1998, 1999, 2000, 2002, 2004 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-
-/* Simple types. */
-FUNDAMENTAL (ADDR, Addr, LIBELFBITS);
-FUNDAMENTAL (OFF, Off, LIBELFBITS);
-FUNDAMENTAL (HALF, Half, LIBELFBITS);
-FUNDAMENTAL (WORD, Word, LIBELFBITS);
-FUNDAMENTAL (SWORD, Sword, LIBELFBITS);
-FUNDAMENTAL (XWORD, Xword, LIBELFBITS);
-FUNDAMENTAL (SXWORD, Sxword, LIBELFBITS);
-
-/* The structured types. */
-TYPE (Ehdr, LIBELFBITS)
-TYPE (Phdr, LIBELFBITS)
-TYPE (Shdr, LIBELFBITS)
-TYPE (Sym, LIBELFBITS)
-TYPE (Rel, LIBELFBITS)
-TYPE (Rela, LIBELFBITS)
-TYPE (Note, LIBELFBITS)
-TYPE (Dyn, LIBELFBITS)
-TYPE (Syminfo, LIBELFBITS)
-TYPE (Move, LIBELFBITS)
-TYPE (Lib, LIBELFBITS)
-
-
-/* Prepare for the next round. */
-#undef LIBELFBITS
diff --git a/libelf/gelf_xlatetof.c b/libelf/gelf_xlatetof.c
deleted file mode 100644
index 53cfae2e..00000000
--- a/libelf/gelf_xlatetof.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Convert from memory to file representation. Generic ELF version.
- Copyright (C) 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-Elf_Data *
-gelf_xlatetof (elf, dest, src, encode)
- Elf *elf;
- Elf_Data *dest;
- const Elf_Data * src;
- unsigned int encode;
-{
- if (elf == NULL)
- return NULL;
-
- return (elf->class == ELFCLASS32
- ? INTUSE(elf32_xlatetof) (dest, src, encode)
- : INTUSE(elf64_xlatetof) (dest, src, encode));
-}
diff --git a/libelf/gelf_xlatetom.c b/libelf/gelf_xlatetom.c
deleted file mode 100644
index 9295ee09..00000000
--- a/libelf/gelf_xlatetom.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Convert from file to memory representation. Generic ELF version.
- Copyright (C) 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gelf.h>
-#include <stddef.h>
-
-#include "libelfP.h"
-
-
-Elf_Data *
-gelf_xlatetom (elf, dest, src, encode)
- Elf *elf;
- Elf_Data *dest;
- const Elf_Data * src;
- unsigned int encode;
-{
- if (elf == NULL)
- return NULL;
-
- return (elf->class == ELFCLASS32
- ? INTUSE(elf32_xlatetom) (dest, src, encode)
- : INTUSE(elf64_xlatetom) (dest, src, encode));
-}
diff --git a/libelf/libelf.h b/libelf/libelf.h
deleted file mode 100644
index 5b3dc00b..00000000
--- a/libelf/libelf.h
+++ /dev/null
@@ -1,343 +0,0 @@
-/* Interface for libelf.
- Copyright (C) 1998, 1999, 2000, 2002, 2004 Red Hat, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef _LIBELF_H
-#define _LIBELF_H 1
-
-#include <sys/types.h>
-
-/* Get the ELF types. */
-#include <elf.h>
-
-
-/* Known translation types. */
-typedef enum
-{
- ELF_T_BYTE, /* unsigned char */
- ELF_T_ADDR, /* Elf32_Addr, Elf64_Addr, ... */
- ELF_T_DYN, /* Dynamic section record. */
- ELF_T_EHDR, /* ELF header. */
- ELF_T_HALF, /* Elf32_Half, Elf64_Half, ... */
- ELF_T_OFF, /* Elf32_Off, Elf64_Off, ... */
- ELF_T_PHDR, /* Program header. */
- ELF_T_RELA, /* Relocation entry with addend. */
- ELF_T_REL, /* Relocation entry. */
- ELF_T_SHDR, /* Section header. */
- ELF_T_SWORD, /* Elf32_Sword, Elf64_Sword, ... */
- ELF_T_SYM, /* Symbol record. */
- ELF_T_WORD, /* Elf32_Word, Elf64_Word, ... */
- ELF_T_XWORD, /* Elf32_Xword, Elf64_Xword, ... */
- ELF_T_SXWORD, /* Elf32_Sxword, Elf64_Sxword, ... */
- ELF_T_VDEF, /* Elf32_Verdef, Elf64_Verdef, ... */
- ELF_T_VDAUX, /* Elf32_Verdaux, Elf64_Verdaux, ... */
- ELF_T_VNEED, /* Elf32_Verneed, Elf64_Verneed, ... */
- ELF_T_VNAUX, /* Elf32_Vernaux, Elf64_Vernaux, ... */
- ELF_T_NHDR, /* Elf32_Nhdr, Elf64_Nhdr, ... */
- ELF_T_SYMINFO, /* Elf32_Syminfo, Elf64_Syminfo, ... */
- ELF_T_MOVE, /* Elf32_Move, Elf64_Move, ... */
- ELF_T_LIB, /* Elf32_Lib, Elf64_Lib, ... */
- /* Keep this the last entry. */
- ELF_T_NUM
-} Elf_Type;
-
-/* Descriptor for data to be converted to or from memory format. */
-typedef struct
-{
- void *d_buf; /* Pointer to the actual data. */
- Elf_Type d_type; /* Type of this piece of data. */
- unsigned int d_version; /* ELF version. */
- size_t d_size; /* Size in bytes. */
- off_t d_off; /* Offset into section. */
- size_t d_align; /* Alignment in section. */
-} Elf_Data;
-
-
-/* Commands for `...'. */
-typedef enum
-{
- ELF_C_NULL, /* Nothing, terminate, or compute only. */
- ELF_C_READ, /* Read .. */
- ELF_C_RDWR, /* Read and write .. */
- ELF_C_WRITE, /* Write .. */
- ELF_C_CLR, /* Clear flag. */
- ELF_C_SET, /* Set flag. */
- ELF_C_FDDONE, /* Signal that file descriptor will not be
- used anymore. */
- ELF_C_FDREAD, /* Read rest of data so that file descriptor
- is not used anymore. */
- /* The following are extensions. */
- ELF_C_READ_MMAP, /* Read, but mmap the file if possible. */
- ELF_C_RDWR_MMAP, /* Read and write, with mmap. */
- ELF_C_WRITE_MMAP, /* Write, with mmap. */
- ELF_C_READ_MMAP_PRIVATE, /* Read, but memory is writable, results are
- not written to the file. */
- ELF_C_EMPTY, /* Copy basic file data but not the content. */
- /* Keep this the last entry. */
- ELF_C_NUM
-} Elf_Cmd;
-
-
-/* Flags for the ELF structures. */
-enum
-{
- ELF_F_DIRTY = 0x1,
-#define ELF_F_DIRTY ELF_F_DIRTY
- ELF_F_LAYOUT = 0x4,
-#define ELF_F_LAYOUT ELF_F_LAYOUT
- ELF_F_PERMISSIVE = 0x8
-#define ELF_F_PERMISSIVE ELF_F_PERMISSIVE
-};
-
-
-/* Identification values for recognized object files. */
-typedef enum
-{
- ELF_K_NONE, /* Unknown. */
- ELF_K_AR, /* Archive. */
- ELF_K_COFF, /* Stupid old COFF. */
- ELF_K_ELF, /* ELF file. */
- /* Keep this the last entry. */
- ELF_K_NUM
-} Elf_Kind;
-
-
-/* Archive member header. */
-typedef struct
-{
- char *ar_name; /* Name of archive member. */
- time_t ar_date; /* File date. */
- uid_t ar_uid; /* User ID. */
- gid_t ar_gid; /* Group ID. */
- mode_t ar_mode; /* File mode. */
- off_t ar_size; /* File size. */
- char *ar_rawname; /* Original name of archive member. */
-} Elf_Arhdr;
-
-
-/* Archive symbol table entry. */
-typedef struct
-{
- char *as_name; /* Symbol name. */
- size_t as_off; /* Offset for this file in the archive. */
- unsigned long int as_hash; /* Hash value of the name. */
-} Elf_Arsym;
-
-
-/* Descriptor for the ELF file. */
-typedef struct Elf Elf;
-
-/* Descriptor for ELF file section. */
-typedef struct Elf_Scn Elf_Scn;
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Return descriptor for ELF file to work according to CMD. */
-extern Elf *elf_begin (int __fildes, Elf_Cmd __cmd, Elf *__ref);
-
-/* Create a clone of an existing ELF descriptor. */
- extern Elf *elf_clone (Elf *__elf, Elf_Cmd __cmd);
-
-/* Create descriptor for memory region. */
-extern Elf *elf_memory (char *__image, size_t __size);
-
-/* Advance archive descriptor to next element. */
-extern Elf_Cmd elf_next (Elf *__elf);
-
-/* Free resources allocated for ELF. */
-extern int elf_end (Elf *__elf);
-
-/* Update ELF descriptor and write file to disk. */
-extern off_t elf_update (Elf *__elf, Elf_Cmd __cmd);
-
-/* Determine what kind of file is associated with ELF. */
-extern Elf_Kind elf_kind (Elf *__elf) __attribute__ ((__pure__));
-
-/* Get the base offset for an object file. */
-extern off_t elf_getbase (Elf *__elf);
-
-
-/* Retrieve file identification data. */
-extern char *elf_getident (Elf *__elf, size_t *__ptr);
-
-/* Retrieve class-dependent object file header. */
-extern Elf32_Ehdr *elf32_getehdr (Elf *__elf);
-/* Similar but this time the binary calls is ELFCLASS64. */
-extern Elf64_Ehdr *elf64_getehdr (Elf *__elf);
-
-/* Create ELF header if none exists. */
-extern Elf32_Ehdr *elf32_newehdr (Elf *__elf);
-/* Similar but this time the binary calls is ELFCLASS64. */
-extern Elf64_Ehdr *elf64_newehdr (Elf *__elf);
-
-/* Retrieve class-dependent program header table. */
-extern Elf32_Phdr *elf32_getphdr (Elf *__elf);
-/* Similar but this time the binary calls is ELFCLASS64. */
-extern Elf64_Phdr *elf64_getphdr (Elf *__elf);
-
-/* Create ELF program header. */
-extern Elf32_Phdr *elf32_newphdr (Elf *__elf, size_t __cnt);
-/* Similar but this time the binary calls is ELFCLASS64. */
-extern Elf64_Phdr *elf64_newphdr (Elf *__elf, size_t __cnt);
-
-
-/* Get section at INDEX. */
-extern Elf_Scn *elf_getscn (Elf *__elf, size_t __index);
-
-/* Get index of section. */
-extern size_t elf_ndxscn (Elf_Scn *__scn);
-
-/* Get section with next section index. */
-extern Elf_Scn *elf_nextscn (Elf *__elf, Elf_Scn *__scn);
-
-/* Create a new section and append it at the end of the table. */
-extern Elf_Scn *elf_newscn (Elf *__elf);
-
-/* Get the number of sections in the ELF file. If the file uses more
- sections than can be represented in the e_shnum field of the ELF
- header the information from the sh_size field in the zeroth section
- header is used. */
-extern int elf_getshnum (Elf *__elf, size_t *__dst);
-
-
-/* Get the section index of the section header string table in the ELF
- file. If the index cannot be represented in the e_shnum field of
- the ELF header the information from the sh_link field in the zeroth
- section header is used. */
-extern int elf_getshstrndx (Elf *__elf, size_t *__dst);
-
-
-/* Retrieve section header of ELFCLASS32 binary. */
-extern Elf32_Shdr *elf32_getshdr (Elf_Scn *__scn);
-/* Similar for ELFCLASS64. */
-extern Elf64_Shdr *elf64_getshdr (Elf_Scn *__scn);
-
-
-/* Set or clear flags for ELF file. */
-extern unsigned int elf_flagelf (Elf *__elf, Elf_Cmd __cmd,
- unsigned int __flags);
-/* Similarly for the ELF header. */
-extern unsigned int elf_flagehdr (Elf *__elf, Elf_Cmd __cmd,
- unsigned int __flags);
-/* Similarly for the ELF program header. */
-extern unsigned int elf_flagphdr (Elf *__elf, Elf_Cmd __cmd,
- unsigned int __flags);
-/* Similarly for the given ELF section. */
-extern unsigned int elf_flagscn (Elf_Scn *__scn, Elf_Cmd __cmd,
- unsigned int __flags);
-/* Similarly for the given ELF data. */
-extern unsigned int elf_flagdata (Elf_Data *__data, Elf_Cmd __cmd,
- unsigned int __flags);
-/* Similarly for the given ELF section header. */
-extern unsigned int elf_flagshdr (Elf_Scn *__scn, Elf_Cmd __cmd,
- unsigned int __flags);
-
-
-/* Get data from section while translating from file representation
- to memory representation. */
-extern Elf_Data *elf_getdata (Elf_Scn *__scn, Elf_Data *__data);
-
-/* Get uninterpreted section content. */
-extern Elf_Data *elf_rawdata (Elf_Scn *__scn, Elf_Data *__data);
-
-/* Create new data descriptor for section SCN. */
-extern Elf_Data *elf_newdata (Elf_Scn *__scn);
-
-
-/* Return pointer to string at OFFSET in section INDEX. */
-extern char *elf_strptr (Elf *__elf, size_t __index, size_t __offset);
-
-
-/* Return header of archive. */
-extern Elf_Arhdr *elf_getarhdr (Elf *__elf);
-
-/* Select archive element at OFFSET. */
-extern size_t elf_rand (Elf *__elf, size_t __offset);
-
-/* Get symbol table of archhive. */
-extern Elf_Arsym *elf_getarsym (Elf *__elf, size_t *__ptr);
-
-
-/* Control ELF descriptor. */
-extern int elf_cntl (Elf *__elf, Elf_Cmd __cmd);
-
-/* Retrieve uninterpreted file contents. */
-extern char *elf_rawfile (Elf *__elf, size_t *__ptr);
-
-
-/* Return size of array of COUNT elements of the type denoted by TYPE
- in the external representation. The binary class is taken from ELF.
- The result is based on version VERSION of the ELF standard. */
-extern size_t elf32_fsize (Elf_Type __type, size_t __count,
- unsigned int __version)
- __attribute__ ((__const__));
-/* Similar but this time the binary calls is ELFCLASS64. */
-extern size_t elf64_fsize (Elf_Type __type, size_t __count,
- unsigned int __version)
- __attribute__ ((__const__));
-
-
-/* Convert data structure from the representation in the file represented
- by ELF to their memory representation. */
-extern Elf_Data *elf32_xlatetom (Elf_Data *__dest, const Elf_Data *__src,
- unsigned int __encode);
-/* Same for 64 bit class. */
-extern Elf_Data *elf64_xlatetom (Elf_Data *__dest, const Elf_Data *__src,
- unsigned int __encode);
-
-/* Convert data structure from to the representation in memory
- represented by ELF file representation. */
-extern Elf_Data *elf32_xlatetof (Elf_Data *__dest, const Elf_Data *__src,
- unsigned int __encode);
-/* Same for 64 bit class. */
-extern Elf_Data *elf64_xlatetof (Elf_Data *__dest, const Elf_Data *__src,
- unsigned int __encode);
-
-
-/* Return error code of last failing function call. This value is kept
- separately for each thread. */
-extern int elf_errno (void);
-
-/* Return error string for ERROR. If ERROR is zero, return error string
- for most recent error or NULL is none occurred. If ERROR is -1 the
- behaviour is similar to the last case except that not NULL but a legal
- string is returned. */
-extern const char *elf_errmsg (int __error);
-
-
-/* Coordinate ELF library and application versions. */
-extern unsigned int elf_version (unsigned int __version);
-
-/* Set fill bytes used to fill holes in data structures. */
-extern void elf_fill (int __fill);
-
-/* Compute hash value. */
-extern unsigned long int elf_hash (const char *__string)
- __attribute__ ((__pure__));
-
-
-/* Compute simple checksum from permanent parts of the ELF file. */
-extern long int elf32_checksum (Elf *__elf);
-/* Similar but this time the binary calls is ELFCLASS64. */
-extern long int elf64_checksum (Elf *__elf);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* libelf.h */
diff --git a/libelf/libelf.map b/libelf/libelf.map
deleted file mode 100644
index f416da7f..00000000
--- a/libelf/libelf.map
+++ /dev/null
@@ -1,106 +0,0 @@
-ELFUTILS_1.0 {
- global:
- elf32_checksum;
- elf32_fsize;
- elf32_getehdr;
- elf32_getphdr;
- elf32_getshdr;
- elf32_newehdr;
- elf32_newphdr;
- elf32_xlatetof;
- elf32_xlatetom;
- elf64_checksum;
- elf64_fsize;
- elf64_getehdr;
- elf64_getphdr;
- elf64_getshdr;
- elf64_newehdr;
- elf64_newphdr;
- elf64_xlatetof;
- elf64_xlatetom;
- elf_begin;
- elf_clone;
- elf_cntl;
- elf_end;
- elf_errmsg;
- elf_errno;
- elf_fill;
- elf_flagdata;
- elf_flagehdr;
- elf_flagelf;
- elf_flagphdr;
- elf_flagscn;
- elf_flagshdr;
- elf_getarhdr;
- elf_getarsym;
- elf_getbase;
- elf_getdata;
- elf_getident;
- elf_getscn;
- elf_getshnum;
- elf_getshstrndx;
- elf_hash;
- elf_kind;
- elf_memory;
- elf_ndxscn;
- elf_newdata;
- elf_newscn;
- elf_next;
- elf_nextscn;
- elf_rand;
- elf_rawdata;
- elf_rawfile;
- elf_scncnt;
- elf_strptr;
- elf_update;
- elf_version;
- gelf_checksum;
- gelf_freechunk;
- gelf_fsize;
- gelf_getclass;
- gelf_getdyn;
- gelf_getehdr;
- gelf_getmove;
- gelf_getphdr;
- gelf_getrel;
- gelf_getrela;
- gelf_getshdr;
- gelf_getsym;
- gelf_getsyminfo;
- gelf_getsymshndx;
- gelf_getverdaux;
- gelf_getverdef;
- gelf_getvernaux;
- gelf_getverneed;
- gelf_getversym;
- gelf_newehdr;
- gelf_newphdr;
- gelf_rawchunk;
- gelf_update_dyn;
- gelf_update_ehdr;
- gelf_update_move;
- gelf_update_phdr;
- gelf_update_rel;
- gelf_update_rela;
- gelf_update_shdr;
- gelf_update_sym;
- gelf_update_syminfo;
- gelf_update_symshndx;
- gelf_update_verdaux;
- gelf_update_verdef;
- gelf_update_vernaux;
- gelf_update_verneed;
- gelf_update_versym;
- gelf_xlatetof;
- gelf_xlatetom;
- nlist;
-
- local:
- *;
-};
-
-ELFUTILS_1.1 {
- global:
- gelf_getlib;
- gelf_update_lib;
-} ELFUTILS_1.0;
diff --git a/libelf/libelfP.h b/libelf/libelfP.h
deleted file mode 100644
index fd39a38f..00000000
--- a/libelf/libelfP.h
+++ /dev/null
@@ -1,532 +0,0 @@
-/* Internal interfaces for libelf.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Red Hat, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef _LIBELFP_H
-#define _LIBELFP_H 1
-
-#include <ar.h>
-#include <gelf.h>
-#include <stdint.h>
-
-/* gettext helper macros. */
-#define _(Str) dgettext ("libelf", Str)
-
-
-/* Helper Macros to write 32 bit and 64 bit functions. */
-#define __elfw2_(Bits, Name) __elf##Bits##_##Name
-#define elfw2_(Bits, Name) elf##Bits##_##Name
-#define ElfW2_(Bits, Name) Elf##Bits##_##Name
-#define ELFW2_(Bits, Name) ELF##Bits##_##Name
-#define ELFW_(Name, Bits) Name##Bits
-#define __elfw2(Bits, Name) __elfw2_(Bits, Name)
-#define elfw2(Bits, Name) elfw2_(Bits, Name)
-#define ElfW2(Bits, Name) ElfW2_(Bits, Name)
-#define ELFW2(Bits, Name) ELFW2_(Bits, Name)
-#define ELFW(Name, Bits) ELFW_(Name, Bits)
-
-
-/* Sizes of the external types, for 32 bits objects. */
-#define ELF32_FSZ_ADDR 4
-#define ELF32_FSZ_OFF 4
-#define ELF32_FSZ_HALF 2
-#define ELF32_FSZ_WORD 4
-#define ELF32_FSZ_SWORD 4
-#define ELF32_FSZ_XWORD 8
-#define ELF32_FSZ_SXWORD 8
-
-/* Same for 64 bits objects. */
-#define ELF64_FSZ_ADDR 8
-#define ELF64_FSZ_OFF 8
-#define ELF64_FSZ_HALF 2
-#define ELF64_FSZ_WORD 4
-#define ELF64_FSZ_SWORD 4
-#define ELF64_FSZ_XWORD 8
-#define ELF64_FSZ_SXWORD 8
-
-
-/* This is an extension of the ELF_F_* enumeration. The values here are
- not part of the library interface, they are only used internally. */
-enum
-{
- ELF_F_MMAPPED = 0x40,
- ELF_F_MALLOCED = 0x80,
- ELF_F_FILEDATA = 0x100
-};
-
-
-/* Get definition of all the external types. */
-#include "exttypes.h"
-
-
-/* Error values. */
-enum
-{
- ELF_E_NOERROR = 0,
- ELF_E_UNKNOWN_ERROR,
- ELF_E_UNKNOWN_VERSION,
- ELF_E_UNKNOWN_TYPE,
- ELF_E_INVALID_HANDLE,
- ELF_E_SOURCE_SIZE,
- ELF_E_DEST_SIZE,
- ELF_E_INVALID_ENCODING,
- ELF_E_NOMEM,
- ELF_E_INVALID_FILE,
- ELF_E_INVALID_OP,
- ELF_E_NO_VERSION,
- ELF_E_INVALID_CMD,
- ELF_E_RANGE,
- ELF_E_ARCHIVE_FMAG,
- ELF_E_INVALID_ARCHIVE,
- ELF_E_NO_ARCHIVE,
- ELF_E_NO_INDEX,
- ELF_E_READ_ERROR,
- ELF_E_WRITE_ERROR,
- ELF_E_INVALID_CLASS,
- ELF_E_INVALID_INDEX,
- ELF_E_INVALID_OPERAND,
- ELF_E_INVALID_SECTION,
- ELF_E_INVALID_COMMAND,
- ELF_E_WRONG_ORDER_EHDR,
- ELF_E_FD_DISABLED,
- ELF_E_FD_MISMATCH,
- ELF_E_OFFSET_RANGE,
- ELF_E_NOT_NUL_SECTION,
- ELF_E_DATA_MISMATCH,
- ELF_E_INVALID_SECTION_HEADER,
- ELF_E_INVALID_DATA,
- ELF_E_DATA_ENCODING,
- ELF_E_SECTION_TOO_SMALL,
- ELF_E_INVALID_ALIGN,
- ELF_E_INVALID_SHENTSIZE,
- ELF_E_UPDATE_RO,
- ELF_E_NOFILE,
- ELF_E_GROUP_NOT_REL,
- ELF_E_INVALID_PHDR,
- ELF_E_NO_PHDR,
- /* Keep this as the last entry. */
- ELF_E_NUM
-};
-
-
-/* The visible `Elf_Data' type is not sufficent for some operations due
- to a misdesigned interface. Extend it for internal purposes. */
-typedef struct
-{
- Elf_Data d;
- Elf_Scn *s;
-} Elf_Data_Scn;
-
-
-/* List of `Elf_Data' descriptors. This is what makes up the section
- contents. */
-typedef struct Elf_Data_List
-{
- /* `data' *must* be the first element in the struct. */
- Elf_Data_Scn data;
- struct Elf_Data_List *next;
- int flags;
-} Elf_Data_List;
-
-
-/* Descriptor for ELF section. */
-struct Elf_Scn
-{
- /* We have to distinguish several different situations:
-
- 1. the section is user created. Therefore there is no file or memory
- region to read the data from. Here we have two different subcases:
-
- a) data was not yet added (before the first `elf_newdata' call)
-
- b) at least one data set is available
-
- 2. this is a section from a file/memory region. We have to read the
- current content in one data block if we have to. But we don't
- read the data until it is necessary. So we have the subcases:
-
- a) the section in the file has size zero (for whatever reason)
-
- b) the data of the file is not (yet) read
-
- c) the data is read and available.
-
- In addition to this we have different data sets, the raw and the converted
- data. This distinction only exists for the data read from the file.
- All user-added data set (all but the first when read from the file or
- all of them for user-create sections) are the same in both formats.
- We don't create the converted data before it is necessary.
-
- The `data_read' element signals whether data is available in the
- raw format.
-
- If there is data from the file/memory region or if read one data
- set is added the `rawdata_list_read' pointer in non-NULL and points
- to the last filled data set. `raw_datalist_rear' is therefore NULL
- only if there is no data set at all.
-
- This so far allows to distinguish all but two cases (given that the
- `rawdata_list' and `data_list' entries are initialized to zero) is
- between not yet loaded data from the file/memory region and a section
- with zero size and type ELF_T_BYTE. */
- Elf_Data_List data_list; /* List of data buffers. */
- Elf_Data_List *data_list_rear; /* Pointer to the rear of the data list. */
-
- Elf_Data_Scn rawdata; /* Uninterpreted data of the section. */
-
- int data_read; /* Nonzero if the section was created by the
- user or if the data from the file/memory
- is read. */
-
- size_t index; /* Index of this section. */
- struct Elf *elf; /* The underlying ELF file. */
-
- union
- {
- Elf32_Shdr *e32; /* Pointer to 32bit section header. */
- Elf64_Shdr *e64; /* Pointer to 64bit section header. */
- } shdr;
-
- unsigned int shdr_flags; /* Section header modified? */
- unsigned int flags; /* Section changed in size? */
-
- char *rawdata_base; /* The unmodified data of the section. */
- char *data_base; /* The converted data of the section. */
-
- struct Elf_ScnList *list; /* Pointer the the section list element the
- data is in. */
-};
-
-
-/* List of section. */
-typedef struct Elf_ScnList
-{
- unsigned int cnt; /* Number of elements of 'data' used. */
- unsigned int max; /* Number of elements of 'data' allocated. */
- struct Elf_ScnList *next; /* Next block of sections. */
- struct Elf_Scn data[0]; /* Section data. */
-} Elf_ScnList;
-
-
-/* The ELF descriptor. */
-struct Elf
-{
- /* What kind of file is underneath (ELF file, archive...). */
- Elf_Kind kind;
-
- /* Command used to create this descriptor. */
- Elf_Cmd cmd;
-
- /* The binary class. */
- unsigned int class;
-
- /* The used file descriptor. -1 if not available anymore. */
- int fildes;
-
- /* Offset in the archive this file starts or zero. */
- off_t start_offset;
-
- /* Size of the file in the archive or the entire file size, or ~0
- for an (yet) unknown size. */
- size_t maximum_size;
-
- /* Address to which the file was mapped. NULL if not mapped. */
- void *map_address;
-
- /* Describes the way the memory was allocated and if the dirty bit is
- signalled it means that the whole file has to be rewritten since
- the layout changed. */
- int flags;
-
- /* When created for an archive member this points to the descriptor
- for the archive. */
- Elf *parent;
-
- /* Lock to handle multithreaded programs. */
- rwlock_define (,lock);
-
- /* Reference counting for the descriptor. */
- int ref_count;
-
- struct Elf *next; /* Used in list of archive descriptors. */
-
- union
- {
- struct
- {
- int ehdr_flags; /* Flags (dirty) for ELF header. */
- int phdr_flags; /* Flags (dirty|malloc) for program header. */
- int shdr_malloced; /* Nonzero if shdr array was allocated. */
-
- /* The next fields are only useful when testing for ==/!= NULL. */
- void *ehdr;
- void *shdr;
- void *phdr;
-
- Elf_ScnList *scns_last; /* Last element in the section list.
- If NULL the data has not yet been
- read from the file. */
- unsigned int scnincr; /* Number of sections allocate the last
- time. */
- off64_t sizestr_offset; /* Offset of the size string in the parent
- if this is an archive member. */
- } elf;
-
- struct
- {
- int ehdr_flags; /* Flags (dirty) for ELF header. */
- int phdr_flags; /* Flags (dirty|malloc) for program header. */
- int shdr_malloced; /* Nonzero if shdr array was allocated. */
-
- Elf32_Ehdr *ehdr; /* Pointer to the ELF header. This is
- never malloced. */
- Elf32_Shdr *shdr; /* Used when reading from a file. */
- Elf32_Phdr *phdr; /* Pointer to the program header array. */
- Elf_ScnList *scns_last; /* Last element in the section list.
- If NULL the data has not yet been
- read from the file. */
- unsigned int scnincr; /* Number of sections allocate the last
- time. */
- off64_t sizestr_offset; /* Offset of the size string in the parent
- if this is an archive member. */
- Elf32_Ehdr ehdr_mem; /* Memory used for ELF header when not
- mmaped. */
- char __e32scnspad[sizeof (Elf64_Ehdr) - sizeof (Elf32_Ehdr)];
-
- /* The section array. */
- Elf_ScnList scns;
- } elf32;
-
- struct
- {
- int ehdr_flags; /* Flags (dirty) for ELF header. */
- int phdr_flags; /* Flags (dirty|malloc) for program header. */
- int shdr_malloced; /* Nonzero if shdr array was allocated. */
-
- Elf64_Ehdr *ehdr; /* Pointer to the ELF header. This is
- never malloced. */
- Elf64_Shdr *shdr; /* Used when reading from a file. */
- Elf64_Phdr *phdr; /* Pointer to the program header array. */
- Elf_ScnList *scns_last; /* Last element in the section list.
- If NULL the data has not yet been
- read from the file. */
- unsigned int scnincr; /* Number of sections allocate the last
- time. */
- off64_t sizestr_offset; /* Offset of the size string in the parent
- if this is an archive member. */
- Elf64_Ehdr ehdr_mem; /* Memory used for ELF header when not
- mmaped. */
-
- /* The section array. */
- Elf_ScnList scns;
- } elf64;
-
- struct
- {
- int has_index; /* Set when file has index. 0 means
- undecided, > 0 means it has one. */
- Elf_Arsym *ar_sym; /* Symbol table returned by elf_getarsym. */
- size_t ar_sym_num; /* Number of entries in `ar_sym'. */
- char *long_names; /* If no index is available but long names
- are used this elements points to the data.*/
- size_t long_names_len; /* Length of the long name table. */
- off_t offset; /* Offset in file we are currently at.
- elf_next() advances this to the next
- member of the archive. */
- Elf_Arhdr elf_ar_hdr; /* Structure returned by 'elf_getarhdr'. */
- struct ar_hdr ar_hdr; /* Header read from file. */
- char ar_name[16]; /* NUL terminated ar_name of elf_ar_hdr. */
- char raw_name[17]; /* This is a buffer for the NUL terminated
- named raw_name used in the elf_ar_hdr. */
- struct Elf *children; /* List of all descriptors for this archive. */
- } ar;
- } state;
-
- /* There absolutely never must be anything following the union. */
-};
-
-
-/* Type of the conversion functions. These functions will convert the
- byte order. */
-typedef void (*xfct_t) (void *, const void *, size_t, int);
-
-/* The table with the function pointers. */
-extern const xfct_t __elf_xfctstom[EV_NUM - 1][EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] attribute_hidden;
-extern const xfct_t __elf_xfctstof[EV_NUM - 1][EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] attribute_hidden;
-
-
-/* Array with sizes of the external types indexed by ELF version, binary
- class, and type. */
-extern const size_t __libelf_type_sizes[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] attribute_hidden;
-/* We often have to access the size for a type in the current version. */
-#if EV_NUM != 2
-# define elf_typesize(class,type,n) \
- elfw2(class,fsize) (type, n, __libelf_version)
-#else
-# define elf_typesize(class,type,n) \
- (__libelf_type_sizes[EV_CURRENT - 1][ELFW(ELFCLASS,class) - 1][type] * n)
-#endif
-
-/* Currently selected version of the ELF specification. */
-extern unsigned int __libelf_version attribute_hidden;
-
-/* The byte value used for filling gaps. */
-extern int __libelf_fill_byte attribute_hidden;
-
-/* Nonzero if the version was set. */
-extern int __libelf_version_initialized attribute_hidden;
-
-
-/* The libelf API does not have such a function but it is still useful.
- Get the memory size for the given type.
-
- These functions cannot be marked internal since they are aliases
- of the export elfXX_fsize functions.*/
-extern size_t __elf32_msize (Elf_Type __type, size_t __count,
- unsigned int __version);
-extern size_t __elf64_msize (Elf_Type __type, size_t __count,
- unsigned int __version);
-
-
-/* Create Elf descriptor from memory image. */
-extern Elf *__libelf_read_mmaped_file (int fildes, void *map_address,
- off_t offset, size_t maxsize,
- Elf_Cmd cmd, Elf *parent)
- internal_function;
-
-/* Set error value. */
-extern void __libelf_seterrno (int value) internal_function;
-
-/* Get the next archive header. */
-extern int __libelf_next_arhdr (Elf *elf) internal_function;
-
-/* Read all of the file associated with the descriptor. */
-extern char *__libelf_readall (Elf *elf) internal_function;
-
-/* Read the complete section table and convert the byte order if necessary. */
-extern int __libelf_readsections (Elf *elf) internal_function;
-
-/* Store the information for the raw data in the `rawdata_list' element. */
-extern int __libelf_set_rawdata (Elf_Scn *scn) internal_function;
-
-
-/* Helper functions for elf_update. */
-extern off_t __elf32_updatenull (Elf *elf, int *change_bop, size_t shnum)
- internal_function;
-extern off_t __elf64_updatenull (Elf *elf, int *change_bop, size_t shnum)
- internal_function;
-
-extern int __elf32_updatemmap (Elf *elf, int change_bo, size_t shnum)
- internal_function;
-extern int __elf64_updatemmap (Elf *elf, int change_bo, size_t shnum)
- internal_function;
-extern int __elf32_updatefile (Elf *elf, int change_bo, size_t shnum)
- internal_function;
-extern int __elf64_updatefile (Elf *elf, int change_bo, size_t shnum)
- internal_function;
-
-
-/* Alias for exported functions to avoid PLT entries. */
-extern Elf *__elf_begin_internal (int __fildes, Elf_Cmd __cmd, Elf *__ref)
- attribute_hidden;
-extern Elf32_Ehdr *__elf32_getehdr_internal (Elf *__elf) attribute_hidden;
-extern Elf64_Ehdr *__elf64_getehdr_internal (Elf *__elf) attribute_hidden;
-extern Elf32_Ehdr *__elf32_newehdr_internal (Elf *__elf) attribute_hidden;
-extern Elf64_Ehdr *__elf64_newehdr_internal (Elf *__elf) attribute_hidden;
-extern Elf32_Phdr *__elf32_getphdr_internal (Elf *__elf) attribute_hidden;
-extern Elf64_Phdr *__elf64_getphdr_internal (Elf *__elf) attribute_hidden;
-extern Elf32_Phdr *__elf32_newphdr_internal (Elf *__elf, size_t __cnt)
- attribute_hidden;
-extern Elf64_Phdr *__elf64_newphdr_internal (Elf *__elf, size_t __cnt)
- attribute_hidden;
-extern int __elf_getshnum_internal (Elf *__elf, size_t *__dst)
- attribute_hidden;
-extern int __elf_getshstrndx_internal (Elf *__elf, size_t *__dst)
- attribute_hidden;
-extern Elf32_Shdr *__elf32_getshdr_internal (Elf_Scn *__scn) attribute_hidden;
-extern Elf64_Shdr *__elf64_getshdr_internal (Elf_Scn *__scn) attribute_hidden;
-extern Elf_Scn *__elf_getscn_internal (Elf *__elf, size_t __index)
- attribute_hidden;
-extern Elf_Scn *__elf_nextscn_internal (Elf *__elf, Elf_Scn *__scn)
- attribute_hidden;
-extern Elf_Data *__elf_getdata_internal (Elf_Scn *__scn, Elf_Data *__data)
- attribute_hidden;
-extern Elf_Data *__elf_rawdata_internal (Elf_Scn *__scn, Elf_Data *__data)
- attribute_hidden;
-extern char *__elf_strptr_internal (Elf *__elf, size_t __index,
- size_t __offset) attribute_hidden;
-extern Elf_Data *__elf32_xlatetom_internal (Elf_Data *__dest,
- const Elf_Data *__src,
- unsigned int __encode)
- attribute_hidden;
-extern Elf_Data *__elf64_xlatetom_internal (Elf_Data *__dest,
- const Elf_Data *__src,
- unsigned int __encode)
- attribute_hidden;
-extern Elf_Data *__elf32_xlatetof_internal (Elf_Data *__dest,
- const Elf_Data *__src,
- unsigned int __encode)
- attribute_hidden;
-extern Elf_Data *__elf64_xlatetof_internal (Elf_Data *__dest,
- const Elf_Data *__src,
- unsigned int __encode)
- attribute_hidden;
-extern unsigned int __elf_version_internal (unsigned int __version)
- attribute_hidden;
-extern unsigned long int __elf_hash_internal (const char *__string)
- __attribute__ ((__pure__, visibility ("hidden")));
-extern long int __elf32_checksum_internal (Elf *__elf) attribute_hidden;
-extern long int __elf64_checksum_internal (Elf *__elf) attribute_hidden;
-
-
-extern size_t __gelf_fsize_internal (Elf *__elf, Elf_Type __type,
- size_t __count, unsigned int __version)
- attribute_hidden;
-extern GElf_Shdr *__gelf_getshdr_internal (Elf_Scn *__scn, GElf_Shdr *__dst)
- attribute_hidden;
-extern GElf_Sym *__gelf_getsym_internal (Elf_Data *__data, int __ndx,
- GElf_Sym *__dst) attribute_hidden;
-
-
-extern uint32_t __libelf_crc32 (uint32_t crc, unsigned char *buf, size_t len)
- attribute_hidden;
-
-
-/* We often have to update a flag iff a value changed. Make this
- convenient. None of the parameters must have a side effect. */
-#ifdef __GNUC__
-# define update_if_changed(var, exp, flag) \
- do { \
- __typeof__ (var) *_var = &(var); \
- __typeof__ (exp) _exp = (exp); \
- if (*_var != _exp) \
- { \
- *_var = _exp; \
- (flag) |= ELF_F_DIRTY; \
- } \
- } while (0)
-#else
-# define update_if_changed(var, exp, flag) \
- do { \
- if ((var) != (exp)) \
- { \
- (var) = (exp); \
- (flag) |= ELF_F_DIRTY; \
- } \
- } while (0)
-#endif
-
-#endif /* libelfP.h */
diff --git a/libelf/libelf_crc32.c b/libelf/libelf_crc32.c
deleted file mode 100644
index 6971be07..00000000
--- a/libelf/libelf_crc32.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 2002 Red Hat, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#define crc32 attribute_hidden __libelf_crc32
-#define LIB_SYSTEM_H 1
-#include <libelf.h>
-#include "../lib/crc32.c"
diff --git a/libelf/libelf_next_prime.c b/libelf/libelf_next_prime.c
deleted file mode 100644
index 4a71c477..00000000
--- a/libelf/libelf_next_prime.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright (C) 2002 Red Hat, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#define next_prime attribute_hidden __libelf_next_prime
-#include "../lib/next_prime.c"
diff --git a/libelf/nlist.c b/libelf/nlist.c
deleted file mode 100644
index cc42a31e..00000000
--- a/libelf/nlist.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/* Extract symbol list from binary.
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <fcntl.h>
-#include <gelf.h>
-#include <libelf.h>
-#include <nlist.h>
-#include <unistd.h>
-
-#include "libelfP.h"
-
-
-struct hashentry
-{
- const char *str;
- GElf_Sym sym;
-};
-#define TYPE struct hashentry
-/* XXX Use a better hash function some day. */
-#define HASHFCT(str, len) INTUSE(elf_hash) (str)
-#define COMPARE(p1, p2) strcmp ((p1)->str, (p2)->str)
-#define CLASS static
-#define PREFIX nlist_
-#define xcalloc(n, m) calloc (n, m)
-#define next_prime(s) __libelf_next_prime (s)
-#include <fixedsizehash.h>
-
-
-int
-nlist (const char *filename, struct nlist *nl)
-{
- int fd;
- Elf *elf;
- Elf_Scn *scn = NULL;
- Elf_Scn *symscn = NULL;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = NULL;
- Elf_Data *data;
- struct nlist_fshash *table;
- size_t nsyms;
- size_t cnt;
-
- /* Open the file. */
- fd = open (filename, O_RDONLY);
- if (fd == -1)
- {
- __libelf_seterrno (ELF_E_NOFILE);
- goto fail;
- }
-
- /* For compatibility reasons (`nlist' existed before ELF and libelf)
- we don't expect the caller to set the ELF version. Do this here
- if it hasn't happened yet. */
- if (__libelf_version_initialized == 0)
- INTUSE(elf_version) (EV_CURRENT);
-
- /* Now get an ELF descriptor. */
- elf = INTUSE(elf_begin) (fd, ELF_C_READ_MMAP, NULL);
- if (elf == NULL)
- goto fail;
-
- /* Find a symbol table. We prefer the real symbol table but if it
- does not exist use the dynamic symbol table. */
- while ((scn = INTUSE(elf_nextscn) (elf, scn)) != NULL)
- {
- shdr = INTUSE(gelf_getshdr) (scn, &shdr_mem);
- if (shdr == NULL)
- goto fail_close;
-
- /* That is what we are looking for. */
- if (shdr->sh_type == SHT_SYMTAB)
- {
- symscn = scn;
- break;
- }
-
- /* Better than nothing. Remember this section. */
- if (shdr->sh_type == SHT_DYNSYM)
- symscn = scn;
- }
-
- if (symscn == NULL)
- /* We haven't found anything. Fail. */
- goto fail_close;
-
- /* Re-get the section header in case we found only the dynamic symbol
- table. */
- if (scn == NULL)
- shdr = INTUSE(gelf_getshdr) (symscn, &shdr_mem);
- /* SHDR->SH_LINK now contains the index of the string section. */
-
- /* Get the data for the symbol section. */
- data = INTUSE(elf_getdata) (symscn, NULL);
- if (data == NULL)
- goto fail_close;
-
- /* How many symbols are there? */
- nsyms = (shdr->sh_size
- / INTUSE(gelf_fsize) (elf, ELF_T_SYM, 1, data->d_version));
-
- /* Create the hash table. */
- table = nlist_fshash_init (nsyms);
- if (table == NULL)
- {
- __libelf_seterrno (ELF_E_NOMEM);
- goto fail_close;
- }
-
- /* Iterate over all the symbols in the section. */
- for (cnt = 0; cnt < nsyms; ++cnt)
- {
- struct hashentry mem;
- GElf_Sym *sym;
-
- /* Get the symbol. */
- sym = INTUSE(gelf_getsym) (data, cnt, &mem.sym);
- if (sym == NULL)
- goto fail_dealloc;
-
- /* Get the name of the symbol. */
- mem.str = INTUSE(elf_strptr) (elf, shdr->sh_link, sym->st_name);
- if (mem.str == NULL)
- goto fail_dealloc;
-
- /* Don't allow zero-length strings. */
- if (mem.str[0] == '\0')
- continue;
-
- /* And add it to the hash table. Note that we are using the
- overwrite version. This will ensure that
- a) global symbols are preferred over local symbols since
- they are all located at the end
- b) if there are multiple local symbols with the same name
- the last one is used.
- */
- (void) nlist_fshash_overwrite (table, mem.str, 0, &mem);
- }
-
- /* Now it is time to look for the symbols the user asked for.
- XXX What is a `null name/null string'? This is what the
- standard says terminates the list. Is it a null pointer
- or a zero-length string? We test for both... */
- while (nl->n_name != NULL && nl->n_name[0] != '\0')
- {
- struct hashentry search;
- const struct hashentry *found;
-
- /* Search for a matching entry in the hash table. */
- search.str = nl->n_name;
- found = nlist_fshash_find (table, nl->n_name, 0, &search);
-
- if (found != NULL)
- {
- /* Found it. */
- nl->n_value = found->sym.st_value;
- nl->n_scnum = found->sym.st_shndx;
- nl->n_type = GELF_ST_TYPE (found->sym.st_info);
- /* XXX What shall we fill in the next fields? */
- nl->n_sclass = 0;
- nl->n_numaux = 0;
- }
- else
- {
- /* Not there. */
- nl->n_value = 0;
- nl->n_scnum = 0;
- nl->n_type = 0;
- nl->n_sclass = 0;
- nl->n_numaux = 0;
- }
-
- /* Next search request. */
- ++nl;
- }
-
- /* Free the resources. */
- nlist_fshash_fini (table);
-
- /* We do not need the ELF descriptor anymore. */
- (void) elf_end (elf);
-
- return 0;
-
- fail_dealloc:
- nlist_fshash_fini (table);
-
- fail_close:
- /* We do not need the ELF descriptor anymore. */
- (void) elf_end (elf);
-
- fail:
- /* We have to set all entries to zero. */
- while (nl->n_name != NULL && nl->n_name[0] != '\0')
- {
- nl->n_value = 0;
- nl->n_scnum = 0;
- nl->n_type = 0;
- nl->n_sclass = 0;
- nl->n_numaux = 0;
-
- /* Next entry. */
- ++nl;
- }
-
- return -1;
-}
diff --git a/libelf/nlist.h b/libelf/nlist.h
deleted file mode 100644
index 298f9a24..00000000
--- a/libelf/nlist.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Interface for nlist.
- Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef _NLIST_H
-#define _NLIST_H 1
-
-
-/* Symbol list type. */
-struct nlist
-{
- char *n_name; /* Symbol name. */
- long int n_value; /* Value of symbol. */
- short int n_scnum; /* Section number found in. */
- unsigned short int n_type; /* Type of symbol. */
- char n_sclass; /* Storage class. */
- char n_numaux; /* Number of auxiliary entries. */
-};
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Get specified entries from file. */
-extern int nlist (__const char *__filename, struct nlist *__nl);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* nlist.h */
diff --git a/libelf/version_xlate.h b/libelf/version_xlate.h
deleted file mode 100644
index 2366cbf2..00000000
--- a/libelf/version_xlate.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/* Conversion functions for versioning information.
- Copyright (C) 1998, 1999, 2000, 2002, 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 2.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#include <assert.h>
-#include <gelf.h>
-
-#include "libelfP.h"
-
-
-static void
-elf_cvt_Verdef (void *dest, const void *src, size_t len, int encode)
-{
- /* We have two different record types: ElfXX_Verndef and ElfXX_Verdaux.
- To recognize them we have to walk the data structure and convert
- them one after the other. The ENCODE parameter specifies whether
- we are encoding or decoding. When we are encoding we can immediately
- use the data in the buffer; if not, we have to decode the data before
- using it. */
- size_t def_offset = 0;
- GElf_Verdef *ddest;
- GElf_Verdef *dsrc;
-
- /* We rely on the types being all the same size. */
- assert (sizeof (GElf_Verdef) == sizeof (Elf32_Verdef));
- assert (sizeof (GElf_Verdaux) == sizeof (Elf32_Verdaux));
- assert (sizeof (GElf_Verdef) == sizeof (Elf64_Verdef));
- assert (sizeof (GElf_Verdaux) == sizeof (Elf64_Verdaux));
-
- if (len == 0)
- return;
-
- do
- {
- size_t aux_offset;
- GElf_Verdaux *asrc;
-
- /* Test for correct offset. */
- if (def_offset + sizeof (GElf_Verdef) > len)
- return;
-
- /* Work the tree from the first record. */
- ddest = (GElf_Verdef *) ((char *) dest + def_offset);
- dsrc = (GElf_Verdef *) ((char *) src + def_offset);
-
- /* Decode first if necessary. */
- if (! encode)
- {
- ddest->vd_version = bswap_16 (dsrc->vd_version);
- ddest->vd_flags = bswap_16 (dsrc->vd_flags);
- ddest->vd_ndx = bswap_16 (dsrc->vd_ndx);
- ddest->vd_cnt = bswap_16 (dsrc->vd_cnt);
- ddest->vd_hash = bswap_32 (dsrc->vd_hash);
- ddest->vd_aux = bswap_32 (dsrc->vd_aux);
- ddest->vd_next = bswap_32 (dsrc->vd_next);
-
- aux_offset = def_offset + ddest->vd_aux;
- }
- else
- aux_offset = def_offset + dsrc->vd_aux;
-
- /* Handle all the auxiliary records belonging to this definition. */
- do
- {
- GElf_Verdaux *adest;
-
- /* Test for correct offset. */
- if (aux_offset + sizeof (GElf_Verdaux) > len)
- return;
-
- adest = (GElf_Verdaux *) ((char *) dest + aux_offset);
- asrc = (GElf_Verdaux *) ((char *) src + aux_offset);
-
- if (encode)
- aux_offset += asrc->vda_next;
-
- adest->vda_name = bswap_32 (asrc->vda_name);
- adest->vda_next = bswap_32 (asrc->vda_next);
-
- if (! encode)
- aux_offset += adest->vda_next;
- }
- while (asrc->vda_next != 0);
-
- /* Encode now if necessary. */
- if (encode)
- {
- def_offset += dsrc->vd_next;
-
- ddest->vd_version = bswap_16 (dsrc->vd_version);
- ddest->vd_flags = bswap_16 (dsrc->vd_flags);
- ddest->vd_ndx = bswap_16 (dsrc->vd_ndx);
- ddest->vd_cnt = bswap_16 (dsrc->vd_cnt);
- ddest->vd_hash = bswap_32 (dsrc->vd_hash);
- ddest->vd_aux = bswap_32 (dsrc->vd_aux);
- ddest->vd_next = bswap_32 (dsrc->vd_next);
- }
- else
- def_offset += ddest->vd_next;
- }
- while (dsrc->vd_next != 0);
-}
-
-
-static void
-elf_cvt_Verneed (void *dest, const void *src, size_t len, int encode)
-{
- /* We have two different record types: ElfXX_Verndef and ElfXX_Verdaux.
- To recognize them we have to walk the data structure and convert
- them one after the other. The ENCODE parameter specifies whether
- we are encoding or decoding. When we are encoding we can immediately
- use the data in the buffer; if not, we have to decode the data before
- using it. */
- size_t need_offset = 0;
- GElf_Verneed *ndest;
- GElf_Verneed *nsrc;
-
- /* We rely on the types being all the same size. */
- assert (sizeof (GElf_Verneed) == sizeof (Elf32_Verneed));
- assert (sizeof (GElf_Vernaux) == sizeof (Elf32_Vernaux));
- assert (sizeof (GElf_Verneed) == sizeof (Elf64_Verneed));
- assert (sizeof (GElf_Vernaux) == sizeof (Elf64_Vernaux));
-
- if (len == 0)
- return;
-
- do
- {
- size_t aux_offset;
- GElf_Vernaux *asrc;
-
- /* Test for correct offset. */
- if (need_offset + sizeof (GElf_Verneed) > len)
- return;
-
- /* Work the tree from the first record. */
- ndest = (GElf_Verneed *) ((char *) dest + need_offset);
- nsrc = (GElf_Verneed *) ((char *) src + need_offset);
-
- /* Decode first if necessary. */
- if (! encode)
- {
- ndest->vn_version = bswap_16 (nsrc->vn_version);
- ndest->vn_cnt = bswap_16 (nsrc->vn_cnt);
- ndest->vn_file = bswap_32 (nsrc->vn_file);
- ndest->vn_aux = bswap_32 (nsrc->vn_aux);
- ndest->vn_next = bswap_32 (nsrc->vn_next);
-
- aux_offset = need_offset + ndest->vn_aux;
- }
- else
- aux_offset = need_offset + nsrc->vn_aux;
-
- /* Handle all the auxiliary records belonging to this requirement. */
- do
- {
- GElf_Vernaux *adest;
-
- /* Test for correct offset. */
- if (aux_offset + sizeof (GElf_Vernaux) > len)
- return;
-
- adest = (GElf_Vernaux *) ((char *) dest + aux_offset);
- asrc = (GElf_Vernaux *) ((char *) src + aux_offset);
-
- if (encode)
- aux_offset += asrc->vna_next;
-
- adest->vna_hash = bswap_32 (asrc->vna_hash);
- adest->vna_flags = bswap_16 (asrc->vna_flags);
- adest->vna_other = bswap_16 (asrc->vna_other);
- adest->vna_name = bswap_32 (asrc->vna_name);
- adest->vna_next = bswap_32 (asrc->vna_next);
-
- if (! encode)
- aux_offset += adest->vna_next;
- }
- while (asrc->vna_next != 0);
-
- /* Encode now if necessary. */
- if (encode)
- {
- need_offset += nsrc->vn_next;
-
- ndest->vn_version = bswap_16 (nsrc->vn_version);
- ndest->vn_cnt = bswap_16 (nsrc->vn_cnt);
- ndest->vn_file = bswap_32 (nsrc->vn_file);
- ndest->vn_aux = bswap_32 (nsrc->vn_aux);
- ndest->vn_next = bswap_32 (nsrc->vn_next);
- }
- else
- need_offset += ndest->vn_next;
- }
- while (nsrc->vn_next != 0);
-}
diff --git a/m4/ChangeLog b/m4/ChangeLog
deleted file mode 100644
index 53721633..00000000
--- a/m4/ChangeLog
+++ /dev/null
@@ -1,27 +0,0 @@
-2002-03-22 gettextize <bug-gnu-gettext@gnu.org>
-
- * codeset.m4: Upgrade to gettext-0.11.
- * gettext.m4: Upgrade to gettext-0.11.
- * glibc21.m4: Upgrade to gettext-0.11.
- * iconv.m4: Upgrade to gettext-0.11.
- * isc-posix.m4: Upgrade to gettext-0.11.
- * lcmessage.m4: Upgrade to gettext-0.11.
- * lib-ld.m4: Upgrade to gettext-0.11.
- * lib-link.m4: Upgrade to gettext-0.11.
- * lib-prefix.m4: Upgrade to gettext-0.11.
- * progtest.m4: Upgrade to gettext-0.11.
-
-2002-03-22 gettextize <bug-gnu-gettext@gnu.org>
-
- * codeset.m4: Upgrade to gettext-0.11.
- * gettext.m4: Upgrade to gettext-0.11.
- * glibc21.m4: Upgrade to gettext-0.11.
- * iconv.m4: Upgrade to gettext-0.11.
- * isc-posix.m4: New file, from gettext-0.11.
- * lcmessage.m4: Upgrade to gettext-0.11.
- * lib-ld.m4: Upgrade to gettext-0.11.
- * lib-link.m4: Upgrade to gettext-0.11.
- * lib-prefix.m4: Upgrade to gettext-0.11.
- * progtest.m4: Upgrade to gettext-0.11.
- * Makefile.am (EXTRA_DIST): Add the new files.
-
diff --git a/m4/Makefile b/m4/Makefile
deleted file mode 100644
index cf2c5ab6..00000000
--- a/m4/Makefile
+++ /dev/null
@@ -1,314 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# m4/Makefile. Generated from Makefile.in by configure.
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-srcdir = .
-top_srcdir = ..
-
-pkgdatadir = $(datadir)/elfutils
-pkglibdir = $(libdir)/elfutils
-pkgincludedir = $(includedir)/elfutils
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = /usr/bin/install -c
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = i686-pc-linux-gnu
-host_triplet = i686-pc-linux-gnu
-subdir = m4
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-SOURCES =
-DIST_SOURCES =
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run aclocal-1.9
-AMDEP_FALSE = #
-AMDEP_TRUE =
-AMTAR = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run tar
-AUTOCONF = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoconf
-AUTOHEADER = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoheader
-AUTOMAKE = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run automake-1.9
-AWK = gawk
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CFLAGS = -g -O2
-CPP = gcc -E
-CPPFLAGS =
-CYGPATH_W = echo
-DATADIRNAME = ${prefix}/share
-DEFS = -DHAVE_CONFIG_H
-DEPDIR = .deps
-ECHO_C =
-ECHO_N = -n
-ECHO_T =
-EGREP = grep -E
-EXEEXT =
-GMSGFMT = /usr/bin/msgfmt
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
-INTLLIBS =
-LDFLAGS =
-LEX = flex
-LEXLIB = -lfl
-LEX_OUTPUT_ROOT = lex.yy
-LIBICONV = -liconv
-LIBINTL =
-LIBOBJS =
-LIBS =
-LOCALEDIR = ${prefix}/share
-LTLIBICONV = -liconv
-LTLIBINTL =
-LTLIBOBJS =
-MAKEINFO = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run makeinfo
-MKINSTALLDIRS = config/mkinstalldirs
-MSGFMT = /usr/bin/msgfmt
-MSGMERGE = /usr/bin/msgmerge
-MUDFLAP_FALSE =
-MUDFLAP_TRUE = #
-NATIVE_LD_FALSE =
-NATIVE_LD_TRUE = #
-OBJEXT = o
-PACKAGE = elfutils
-PACKAGE_BUGREPORT = http://bugzilla.redhat.com/bugzilla/
-PACKAGE_NAME = Red Hat elfutils
-PACKAGE_STRING = Red Hat elfutils 0.97
-PACKAGE_TARNAME = elfutils
-PACKAGE_VERSION = 0.97
-PATH_SEPARATOR = :
-POSUB = po
-RANLIB = ranlib
-SET_MAKE =
-SHELL = /bin/sh
-STRIP =
-USE_NLS = yes
-VERSION = 0.97
-XGETTEXT = /usr/bin/xgettext
-YACC = bison -y
-ac_ct_CC = gcc
-ac_ct_RANLIB = ranlib
-ac_ct_STRIP =
-am__fastdepCC_FALSE = #
-am__fastdepCC_TRUE =
-am__include = include
-am__leading_dot = .
-am__quote =
-am__tar = ${AMTAR} chof - "$$tardir"
-am__untar = ${AMTAR} xf -
-base_cpu = none
-bindir = ${exec_prefix}/bin
-build = i686-pc-linux-gnu
-build_alias =
-build_cpu = i686
-build_os = linux-gnu
-build_vendor = pc
-datadir = ${prefix}/share
-exec_prefix = ${prefix}
-host = i686-pc-linux-gnu
-host_alias =
-host_cpu = i686
-host_os = linux-gnu
-host_vendor = pc
-includedir = ${prefix}/include
-infodir = ${prefix}/info
-install_sh = /work/elfutils/stock/elfutils-0.97/config/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-localstatedir = ${prefix}/var
-mandir = ${prefix}/man
-mkdir_p = mkdir -p --
-oldincludedir = /usr/include
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-program_transform_name = s,x,x,
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-sysconfdir = ${prefix}/etc
-target_alias =
-EXTRA_DIST = isc-posix.m4 codeset.m4 gettext.m4 glibc21.m4 iconv.m4 \
- lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \
- progtest.m4 iconv.m4 intdiv0.m4 inttypes-pri.m4 inttypes.m4 \
- uintmax_t.m4 inttypes_h.m4 stdint_h.m4 ulonglong.m4
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits m4/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits m4/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-uninstall-info-am:
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-exec \
- install-exec-am install-info install-info-am install-man \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
- uninstall-info-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/m4/Makefile.am b/m4/Makefile.am
deleted file mode 100644
index 9e20ae15..00000000
--- a/m4/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-## Process this file with automake to produce Makefile.in -*-Makefile-*-
-## Configure input file for elfutils.
-##
-## Copyright (C) 2000, 2001, 2002, 2004 Red Hat, Inc.
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation, version 2.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software Foundation,
-## Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-##
-
-##m4-files-begin
-EXTRA_DIST = isc-posix.m4 codeset.m4 gettext.m4 glibc21.m4 iconv.m4 \
- lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \
- progtest.m4 iconv.m4 intdiv0.m4 inttypes-pri.m4 inttypes.m4 \
- uintmax_t.m4 inttypes_h.m4 stdint_h.m4 ulonglong.m4
diff --git a/m4/Makefile.in b/m4/Makefile.in
deleted file mode 100644
index 1712984c..00000000
--- a/m4/Makefile.in
+++ /dev/null
@@ -1,314 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = m4
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-SOURCES =
-DIST_SOURCES =
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GMSGFMT = @GMSGFMT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
-MUDFLAP_FALSE = @MUDFLAP_FALSE@
-MUDFLAP_TRUE = @MUDFLAP_TRUE@
-NATIVE_LD_FALSE = @NATIVE_LD_FALSE@
-NATIVE_LD_TRUE = @NATIVE_LD_TRUE@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-XGETTEXT = @XGETTEXT@
-YACC = @YACC@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-base_cpu = @base_cpu@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-EXTRA_DIST = isc-posix.m4 codeset.m4 gettext.m4 glibc21.m4 iconv.m4 \
- lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \
- progtest.m4 iconv.m4 intdiv0.m4 inttypes-pri.m4 inttypes.m4 \
- uintmax_t.m4 inttypes_h.m4 stdint_h.m4 ulonglong.m4
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits m4/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits m4/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-uninstall-info-am:
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-exec \
- install-exec-am install-info install-info-am install-man \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
- uninstall-info-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/m4/codeset.m4 b/m4/codeset.m4
deleted file mode 100644
index 59535ebc..00000000
--- a/m4/codeset.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# codeset.m4 serial AM1 (gettext-0.10.40)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([AM_LANGINFO_CODESET],
-[
- AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
- [AC_TRY_LINK([#include <langinfo.h>],
- [char* cs = nl_langinfo(CODESET);],
- am_cv_langinfo_codeset=yes,
- am_cv_langinfo_codeset=no)
- ])
- if test $am_cv_langinfo_codeset = yes; then
- AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
- [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
- fi
-])
diff --git a/m4/gettext.m4 b/m4/gettext.m4
deleted file mode 100644
index 0b758a67..00000000
--- a/m4/gettext.m4
+++ /dev/null
@@ -1,587 +0,0 @@
-# gettext.m4 serial 16 (gettext-0.11.4)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 2000-2002.
-
-dnl Macro to add for using GNU gettext.
-
-dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
-dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
-dnl default (if it is not specified or empty) is 'no-libtool'.
-dnl INTLSYMBOL should be 'external' for packages with no intl directory,
-dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
-dnl If INTLSYMBOL is 'use-libtool', then a libtool library
-dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
-dnl depending on --{enable,disable}-{shared,static} and on the presence of
-dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
-dnl $(top_builddir)/intl/libintl.a will be created.
-dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
-dnl implementations (in libc or libintl) without the ngettext() function
-dnl will be ignored. If NEEDSYMBOL is specified and is
-dnl 'need-formatstring-macros', then GNU gettext implementations that don't
-dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
-dnl INTLDIR is used to find the intl libraries. If empty,
-dnl the value `$(top_builddir)/intl/' is used.
-dnl
-dnl The result of the configuration is one of three cases:
-dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
-dnl and used.
-dnl Catalog format: GNU --> install in $(datadir)
-dnl Catalog extension: .mo after installation, .gmo in source tree
-dnl 2) GNU gettext has been found in the system's C library.
-dnl Catalog format: GNU --> install in $(datadir)
-dnl Catalog extension: .mo after installation, .gmo in source tree
-dnl 3) No internationalization, always use English msgid.
-dnl Catalog format: none
-dnl Catalog extension: none
-dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
-dnl The use of .gmo is historical (it was needed to avoid overwriting the
-dnl GNU format catalogs when building on a platform with an X/Open gettext),
-dnl but we keep it in order not to force irrelevant filename changes on the
-dnl maintainers.
-dnl
-AC_DEFUN([AM_GNU_GETTEXT],
-[
- dnl Argument checking.
- ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
- [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
-])])])])])
- ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
- [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
-])])])])
- define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
- define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
-
- AC_REQUIRE([AM_PO_SUBDIRS])dnl
- ifelse(gt_included_intl, yes, [
- AC_REQUIRE([AM_INTL_SUBDIR])dnl
- ])
-
- dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
-
- dnl Sometimes libintl requires libiconv, so first search for libiconv.
- dnl Ideally we would do this search only after the
- dnl if test "$USE_NLS" = "yes"; then
- dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then
- dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
- dnl the configure script would need to contain the same shell code
- dnl again, outside any 'if'. There are two solutions:
- dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
- dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
- dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
- dnl documented, we avoid it.
- ifelse(gt_included_intl, yes, , [
- AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
- ])
-
- AC_MSG_CHECKING([whether NLS is requested])
- dnl Default is enabled NLS
- AC_ARG_ENABLE(nls,
- [ --disable-nls do not use Native Language Support],
- USE_NLS=$enableval, USE_NLS=yes)
- AC_MSG_RESULT($USE_NLS)
- AC_SUBST(USE_NLS)
-
- ifelse(gt_included_intl, yes, [
- BUILD_INCLUDED_LIBINTL=no
- USE_INCLUDED_LIBINTL=no
- ])
- LIBINTL=
- LTLIBINTL=
- POSUB=
-
- dnl If we use NLS figure out what method
- if test "$USE_NLS" = "yes"; then
- gt_use_preinstalled_gnugettext=no
- ifelse(gt_included_intl, yes, [
- AC_MSG_CHECKING([whether included gettext is requested])
- AC_ARG_WITH(included-gettext,
- [ --with-included-gettext use the GNU gettext library included here],
- nls_cv_force_use_gnu_gettext=$withval,
- nls_cv_force_use_gnu_gettext=no)
- AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-
- nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
- if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
- ])
- dnl User does not insist on using GNU NLS library. Figure out what
- dnl to use. If GNU gettext is available we use this. Else we have
- dnl to fall back to GNU NLS library.
-
- dnl Add a version number to the cache macros.
- define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
- define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
- define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
-
- AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
- [AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern int *_nl_domain_bindings;],
- [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
- gt_cv_func_gnugettext_libc=yes,
- gt_cv_func_gnugettext_libc=no)])
-
- if test "$gt_cv_func_gnugettext_libc" != "yes"; then
- dnl Sometimes libintl requires libiconv, so first search for libiconv.
- ifelse(gt_included_intl, yes, , [
- AM_ICONV_LINK
- ])
- dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
- dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
- dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
- dnl even if libiconv doesn't exist.
- AC_LIB_LINKFLAGS_BODY([intl])
- AC_CACHE_CHECK([for GNU gettext in libintl],
- gt_cv_func_gnugettext_libintl,
- [gt_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $INCINTL"
- gt_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBINTL"
- dnl Now see whether libintl exists and does not depend on libiconv.
- AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias ();],
- [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
- gt_cv_func_gnugettext_libintl=yes,
- gt_cv_func_gnugettext_libintl=no)
- dnl Now see whether libintl exists and depends on libiconv.
- if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
- LIBS="$LIBS $LIBICONV"
- AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias ();],
- [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
- [LIBINTL="$LIBINTL $LIBICONV"
- LTLIBINTL="$LTLIBINTL $LTLIBICONV"
- gt_cv_func_gnugettext_libintl=yes
- ])
- fi
- CPPFLAGS="$gt_save_CPPFLAGS"
- LIBS="$gt_save_LIBS"])
- fi
-
- dnl If an already present or preinstalled GNU gettext() is found,
- dnl use it. But if this macro is used in GNU gettext, and GNU
- dnl gettext is already preinstalled in libintl, we update this
- dnl libintl. (Cf. the install rule in intl/Makefile.in.)
- if test "$gt_cv_func_gnugettext_libc" = "yes" \
- || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
- && test "$PACKAGE" != gettext; }; then
- gt_use_preinstalled_gnugettext=yes
- else
- dnl Reset the values set by searching for libintl.
- LIBINTL=
- LTLIBINTL=
- INCINTL=
- fi
-
- ifelse(gt_included_intl, yes, [
- if test "$gt_use_preinstalled_gnugettext" != "yes"; then
- dnl GNU gettext is not found in the C library.
- dnl Fall back on included GNU gettext library.
- nls_cv_use_gnu_gettext=yes
- fi
- fi
-
- if test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Mark actions used to generate GNU NLS library.
- INTLOBJS="\$(GETTOBJS)"
- BUILD_INCLUDED_LIBINTL=yes
- USE_INCLUDED_LIBINTL=yes
- LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
- LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
- LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
- fi
-
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Mark actions to use GNU gettext tools.
- CATOBJEXT=.gmo
- fi
- ])
-
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
- AC_DEFINE(ENABLE_NLS, 1,
- [Define to 1 if translation of program messages to the user's native language
- is requested.])
- else
- USE_NLS=no
- fi
- fi
-
- if test "$USE_NLS" = "yes"; then
-
- if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
- AC_MSG_CHECKING([how to link with libintl])
- AC_MSG_RESULT([$LIBINTL])
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
- fi
-
- dnl For backward compatibility. Some packages may be using this.
- AC_DEFINE(HAVE_GETTEXT, 1,
- [Define if the GNU gettext() function is already present or preinstalled.])
- AC_DEFINE(HAVE_DCGETTEXT, 1,
- [Define if the GNU dcgettext() function is already present or preinstalled.])
- fi
-
- dnl We need to process the po/ directory.
- POSUB=po
- fi
-
- ifelse(gt_included_intl, yes, [
- dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
- dnl to 'yes' because some of the testsuite requires it.
- if test "$PACKAGE" = gettext; then
- BUILD_INCLUDED_LIBINTL=yes
- fi
-
- dnl Make all variables we use known to autoconf.
- AC_SUBST(BUILD_INCLUDED_LIBINTL)
- AC_SUBST(USE_INCLUDED_LIBINTL)
- AC_SUBST(CATOBJEXT)
- AC_SUBST(INTLOBJS)
-
- dnl For backward compatibility. Some configure.ins may be using this.
- nls_cv_header_intl=
- nls_cv_header_libgt=
-
- dnl For backward compatibility. Some Makefiles may be using this.
- DATADIRNAME=share
- AC_SUBST(DATADIRNAME)
-
- dnl For backward compatibility. Some Makefiles may be using this.
- INSTOBJEXT=.mo
- AC_SUBST(INSTOBJEXT)
-
- dnl For backward compatibility. Some Makefiles may be using this.
- GENCAT=gencat
- AC_SUBST(GENCAT)
-
- dnl Enable libtool support if the surrounding package wishes it.
- INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
- AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
- ])
-
- dnl For backward compatibility. Some Makefiles may be using this.
- INTLLIBS="$LIBINTL"
- AC_SUBST(INTLLIBS)
-
- dnl Make all documented variables known to autoconf.
- AC_SUBST(LIBINTL)
- AC_SUBST(LTLIBINTL)
- AC_SUBST(POSUB)
-])
-
-
-dnl Checks for all prerequisites of the po subdirectory,
-dnl except for USE_NLS.
-AC_DEFUN([AM_PO_SUBDIRS],
-[
- AC_REQUIRE([AC_PROG_MAKE_SET])dnl
- AC_REQUIRE([AC_PROG_INSTALL])dnl
- AC_REQUIRE([AM_MKINSTALLDIRS])dnl
-
- dnl Perform the following tests also if --disable-nls has been given,
- dnl because they are needed for "make dist" to work.
-
- dnl Search for GNU msgfmt in the PATH.
- dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
- dnl The second test excludes FreeBSD msgfmt.
- AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
- :)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-
- dnl Search for GNU xgettext 0.11 or newer in the PATH.
- dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
- dnl The second test excludes FreeBSD xgettext.
- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
- :)
- dnl Remove leftover from FreeBSD xgettext call.
- rm -f messages.po
-
- dnl Search for GNU msgmerge 0.11 or newer in the PATH.
- AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
- [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
-
- dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
- dnl Test whether we really found GNU msgfmt.
- if test "$GMSGFMT" != ":"; then
- dnl If it is no GNU msgfmt we define it as : so that the
- dnl Makefiles still can work.
- if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
- (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
- AC_MSG_RESULT(
- [found $GMSGFMT program is not GNU msgfmt; ignore it])
- GMSGFMT=":"
- fi
- fi
-
- dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
- dnl Test whether we really found GNU xgettext.
- if test "$XGETTEXT" != ":"; then
- dnl If it is no GNU xgettext we define it as : so that the
- dnl Makefiles still can work.
- if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
- (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- AC_MSG_RESULT(
- [found xgettext program is not GNU xgettext; ignore it])
- XGETTEXT=":"
- fi
- dnl Remove leftover from FreeBSD xgettext call.
- rm -f messages.po
- fi
-
- AC_OUTPUT_COMMANDS([
- for ac_file in $CONFIG_FILES; do
- # Support "outfile[:infile[:infile...]]"
- case "$ac_file" in
- *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- esac
- # PO directories have a Makefile.in generated from Makefile.in.in.
- case "$ac_file" in */Makefile.in)
- # Adjust a relative srcdir.
- ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
- ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
- ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
- # In autoconf-2.13 it is called $ac_given_srcdir.
- # In autoconf-2.50 it is called $srcdir.
- test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
- case "$ac_given_srcdir" in
- .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
- /*) top_srcdir="$ac_given_srcdir" ;;
- *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
- if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
- rm -f "$ac_dir/POTFILES"
- test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
- cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
- # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
- # on $ac_dir but don't depend on user-specified configuration
- # parameters.
- if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
- # The LINGUAS file contains the set of available languages.
- if test -n "$ALL_LINGUAS"; then
- test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
- fi
- ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
- # Hide the ALL_LINGUAS assigment from automake.
- eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
- fi
- case "$ac_given_srcdir" in
- .) srcdirpre= ;;
- *) srcdirpre='$(srcdir)/' ;;
- esac
- POFILES=
- GMOFILES=
- UPDATEPOFILES=
- DUMMYPOFILES=
- for lang in $ALL_LINGUAS; do
- POFILES="$POFILES $srcdirpre$lang.po"
- GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
- UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
- DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
- done
- # CATALOGS depends on both $ac_dir and the user's LINGUAS
- # environment variable.
- INST_LINGUAS=
- if test -n "$ALL_LINGUAS"; then
- for presentlang in $ALL_LINGUAS; do
- useit=no
- if test "%UNSET%" != "$LINGUAS"; then
- desiredlanguages="$LINGUAS"
- else
- desiredlanguages="$ALL_LINGUAS"
- fi
- for desiredlang in $desiredlanguages; do
- # Use the presentlang catalog if desiredlang is
- # a. equal to presentlang, or
- # b. a variant of presentlang (because in this case,
- # presentlang can be used as a fallback for messages
- # which are not translated in the desiredlang catalog).
- case "$desiredlang" in
- "$presentlang"*) useit=yes;;
- esac
- done
- if test $useit = yes; then
- INST_LINGUAS="$INST_LINGUAS $presentlang"
- fi
- done
- fi
- CATALOGS=
- if test -n "$INST_LINGUAS"; then
- for lang in $INST_LINGUAS; do
- CATALOGS="$CATALOGS $lang.gmo"
- done
- fi
- test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
- sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
- for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
- if test -f "$f"; then
- case "$f" in
- *.orig | *.bak | *~) ;;
- *) cat "$f" >> "$ac_dir/Makefile" ;;
- esac
- fi
- done
- fi
- ;;
- esac
- done],
- [# Capture the value of obsolete $ALL_LINGUAS because we need it to compute
- # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
- # from automake.
- eval 'ALL_LINGUAS''="$ALL_LINGUAS"'
- # Capture the value of LINGUAS because we need it to compute CATALOGS.
- LINGUAS="${LINGUAS-%UNSET%}"
- ])
-])
-
-
-dnl Checks for all prerequisites of the intl subdirectory,
-dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
-dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
-AC_DEFUN([AM_INTL_SUBDIR],
-[
- AC_REQUIRE([AC_PROG_INSTALL])dnl
- AC_REQUIRE([AM_MKINSTALLDIRS])dnl
- AC_REQUIRE([AC_PROG_CC])dnl
- AC_REQUIRE([AC_CANONICAL_HOST])dnl
- AC_REQUIRE([AC_PROG_RANLIB])dnl
- AC_REQUIRE([AC_ISC_POSIX])dnl
- AC_REQUIRE([AC_HEADER_STDC])dnl
- AC_REQUIRE([AC_C_CONST])dnl
- AC_REQUIRE([AC_C_INLINE])dnl
- AC_REQUIRE([AC_TYPE_OFF_T])dnl
- AC_REQUIRE([AC_TYPE_SIZE_T])dnl
- AC_REQUIRE([AC_FUNC_ALLOCA])dnl
- AC_REQUIRE([AC_FUNC_MMAP])dnl
- AC_REQUIRE([jm_GLIBC21])dnl
- AC_REQUIRE([gt_INTDIV0])dnl
- AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
- AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
- AC_REQUIRE([gt_INTTYPES_PRI])dnl
-
- AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
-stdlib.h string.h unistd.h sys/param.h])
- AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
-geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \
-strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
-
- AM_ICONV
- AM_LANGINFO_CODESET
- if test $ac_cv_header_locale_h = yes; then
- AM_LC_MESSAGES
- fi
-
- dnl intl/plural.c is generated from intl/plural.y. It requires bison,
- dnl because plural.y uses bison specific features. It requires at least
- dnl bison-1.26 because earlier versions generate a plural.c that doesn't
- dnl compile.
- dnl bison is only needed for the maintainer (who touches plural.y). But in
- dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
- dnl the rule in general Makefile. Now, some people carelessly touch the
- dnl files or have a broken "make" program, hence the plural.c rule will
- dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
- dnl present or too old.
- AC_CHECK_PROGS([INTLBISON], [bison])
- if test -z "$INTLBISON"; then
- ac_verc_fail=yes
- else
- dnl Found it, now check the version.
- AC_MSG_CHECKING([version of bison])
-changequote(<<,>>)dnl
- ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
- case $ac_prog_version in
- '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
-changequote([,])dnl
- ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
- *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
- esac
- AC_MSG_RESULT([$ac_prog_version])
- fi
- if test $ac_verc_fail = yes; then
- INTLBISON=:
- fi
-])
-
-
-AC_DEFUN([AM_MKINSTALLDIRS],
-[
- dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
- dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
- dnl Try to locate is.
- MKINSTALLDIRS=
- if test -n "$ac_aux_dir"; then
- MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
- fi
- if test -z "$MKINSTALLDIRS"; then
- MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
- fi
- AC_SUBST(MKINSTALLDIRS)
-])
-
-
-dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
-AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
diff --git a/m4/glibc21.m4 b/m4/glibc21.m4
deleted file mode 100644
index 9c9f3db3..00000000
--- a/m4/glibc21.m4
+++ /dev/null
@@ -1,32 +0,0 @@
-# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-# Test for the GNU C Library, version 2.1 or newer.
-# From Bruno Haible.
-
-AC_DEFUN([jm_GLIBC21],
- [
- AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
- ac_cv_gnu_library_2_1,
- [AC_EGREP_CPP([Lucky GNU user],
- [
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
- Lucky GNU user
- #endif
-#endif
- ],
- ac_cv_gnu_library_2_1=yes,
- ac_cv_gnu_library_2_1=no)
- ]
- )
- AC_SUBST(GLIBC21)
- GLIBC21="$ac_cv_gnu_library_2_1"
- ]
-)
diff --git a/m4/iconv.m4 b/m4/iconv.m4
deleted file mode 100644
index c5f35798..00000000
--- a/m4/iconv.m4
+++ /dev/null
@@ -1,103 +0,0 @@
-# iconv.m4 serial AM4 (gettext-0.11.3)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
-[
- dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
-
- dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
- dnl accordingly.
- AC_LIB_LINKFLAGS_BODY([iconv])
-])
-
-AC_DEFUN([AM_ICONV_LINK],
-[
- dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
- dnl those with the standalone portable GNU libiconv installed).
-
- dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
- dnl accordingly.
- AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
-
- dnl Add $INCICONV to CPPFLAGS before performing the following checks,
- dnl because if the user has installed libiconv and not disabled its use
- dnl via --without-libiconv-prefix, he wants to use it. The first
- dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
- am_save_CPPFLAGS="$CPPFLAGS"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
-
- AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
- am_cv_func_iconv="no, consider installing GNU libiconv"
- am_cv_lib_iconv=no
- AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
- [iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);],
- am_cv_func_iconv=yes)
- if test "$am_cv_func_iconv" != yes; then
- am_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBICONV"
- AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
- [iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);],
- am_cv_lib_iconv=yes
- am_cv_func_iconv=yes)
- LIBS="$am_save_LIBS"
- fi
- ])
- if test "$am_cv_func_iconv" = yes; then
- AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
- fi
- if test "$am_cv_lib_iconv" = yes; then
- AC_MSG_CHECKING([how to link with libiconv])
- AC_MSG_RESULT([$LIBICONV])
- else
- dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
- dnl either.
- CPPFLAGS="$am_save_CPPFLAGS"
- LIBICONV=
- LTLIBICONV=
- fi
- AC_SUBST(LIBICONV)
- AC_SUBST(LTLIBICONV)
-])
-
-AC_DEFUN([AM_ICONV],
-[
- AM_ICONV_LINK
- if test "$am_cv_func_iconv" = yes; then
- AC_MSG_CHECKING([for iconv declaration])
- AC_CACHE_VAL(am_cv_proto_iconv, [
- AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <iconv.h>
-extern
-#ifdef __cplusplus
-"C"
-#endif
-#if defined(__STDC__) || defined(__cplusplus)
-size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
-#else
-size_t iconv();
-#endif
-], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
- am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
- am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
- AC_MSG_RESULT([$]{ac_t:-
- }[$]am_cv_proto_iconv)
- AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
- [Define as const if the declaration of iconv() needs const.])
- fi
-])
diff --git a/m4/intdiv0.m4 b/m4/intdiv0.m4
deleted file mode 100644
index 55dddcf1..00000000
--- a/m4/intdiv0.m4
+++ /dev/null
@@ -1,72 +0,0 @@
-# intdiv0.m4 serial 1 (gettext-0.11.3)
-dnl Copyright (C) 2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([gt_INTDIV0],
-[
- AC_REQUIRE([AC_PROG_CC])dnl
- AC_REQUIRE([AC_CANONICAL_HOST])dnl
-
- AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
- gt_cv_int_divbyzero_sigfpe,
- [
- AC_TRY_RUN([
-#include <stdlib.h>
-#include <signal.h>
-
-static void
-#ifdef __cplusplus
-sigfpe_handler (int sig)
-#else
-sigfpe_handler (sig) int sig;
-#endif
-{
- /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */
- exit (sig != SIGFPE);
-}
-
-int x = 1;
-int y = 0;
-int z;
-int nan;
-
-int main ()
-{
- signal (SIGFPE, sigfpe_handler);
-/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
-#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
- signal (SIGTRAP, sigfpe_handler);
-#endif
-/* Linux/SPARC yields signal SIGILL. */
-#if defined (__sparc__) && defined (__linux__)
- signal (SIGILL, sigfpe_handler);
-#endif
-
- z = x / y;
- nan = y / y;
- exit (1);
-}
-], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
- [
- # Guess based on the CPU.
- case "$host_cpu" in
- alpha* | i[34567]86 | m68k | s390*)
- gt_cv_int_divbyzero_sigfpe="guessing yes";;
- *)
- gt_cv_int_divbyzero_sigfpe="guessing no";;
- esac
- ])
- ])
- case "$gt_cv_int_divbyzero_sigfpe" in
- *yes) value=1;;
- *) value=0;;
- esac
- AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
- [Define if integer division by zero raises signal SIGFPE.])
-])
diff --git a/m4/inttypes-pri.m4 b/m4/inttypes-pri.m4
deleted file mode 100644
index fd007c31..00000000
--- a/m4/inttypes-pri.m4
+++ /dev/null
@@ -1,32 +0,0 @@
-# inttypes-pri.m4 serial 1 (gettext-0.11.4)
-dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
-# macros to non-string values. This is the case on AIX 4.3.3.
-
-AC_DEFUN([gt_INTTYPES_PRI],
-[
- AC_REQUIRE([gt_HEADER_INTTYPES_H])
- if test $gt_cv_header_inttypes_h = yes; then
- AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
- gt_cv_inttypes_pri_broken,
- [
- AC_TRY_COMPILE([#include <inttypes.h>
-#ifdef PRId32
-char *p = PRId32;
-#endif
-], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
- ])
- fi
- if test "$gt_cv_inttypes_pri_broken" = yes; then
- AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
- [Define if <inttypes.h> exists and defines unusable PRI* macros.])
- fi
-])
diff --git a/m4/inttypes.m4 b/m4/inttypes.m4
deleted file mode 100644
index ab370ffe..00000000
--- a/m4/inttypes.m4
+++ /dev/null
@@ -1,27 +0,0 @@
-# inttypes.m4 serial 1 (gettext-0.11.4)
-dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
-# <sys/types.h>.
-
-AC_DEFUN([gt_HEADER_INTTYPES_H],
-[
- AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h,
- [
- AC_TRY_COMPILE(
- [#include <sys/types.h>
-#include <inttypes.h>],
- [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no)
- ])
- if test $gt_cv_header_inttypes_h = yes; then
- AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
- [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
- fi
-])
diff --git a/m4/inttypes_h.m4 b/m4/inttypes_h.m4
deleted file mode 100644
index 400a1118..00000000
--- a/m4/inttypes_h.m4
+++ /dev/null
@@ -1,28 +0,0 @@
-# inttypes_h.m4 serial 4 (gettext-0.11.4)
-dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
-# doesn't clash with <sys/types.h>, and declares uintmax_t.
-
-AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
-[
- AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
- [AC_TRY_COMPILE(
- [#include <sys/types.h>
-#include <inttypes.h>],
- [uintmax_t i = (uintmax_t) -1;],
- jm_ac_cv_header_inttypes_h=yes,
- jm_ac_cv_header_inttypes_h=no)])
- if test $jm_ac_cv_header_inttypes_h = yes; then
- AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
-[Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
- and declares uintmax_t. ])
- fi
-])
diff --git a/m4/isc-posix.m4 b/m4/isc-posix.m4
deleted file mode 100644
index 1319dd1c..00000000
--- a/m4/isc-posix.m4
+++ /dev/null
@@ -1,26 +0,0 @@
-# isc-posix.m4 serial 2 (gettext-0.11.2)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-# This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
-
-# This test replaces the one in autoconf.
-# Currently this macro should have the same name as the autoconf macro
-# because gettext's gettext.m4 (distributed in the automake package)
-# still uses it. Otherwise, the use in gettext.m4 makes autoheader
-# give these diagnostics:
-# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
-# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
-
-undefine([AC_ISC_POSIX])
-
-AC_DEFUN([AC_ISC_POSIX],
- [
- dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
- AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
- ]
-)
diff --git a/m4/lcmessage.m4 b/m4/lcmessage.m4
deleted file mode 100644
index ffbf915f..00000000
--- a/m4/lcmessage.m4
+++ /dev/null
@@ -1,32 +0,0 @@
-# lcmessage.m4 serial 2 (gettext-0.10.40)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
-
-# Check whether LC_MESSAGES is available in <locale.h>.
-
-AC_DEFUN([AM_LC_MESSAGES],
- [if test $ac_cv_header_locale_h = yes; then
- AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
- [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
- am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
- if test $am_cv_val_LC_MESSAGES = yes; then
- AC_DEFINE(HAVE_LC_MESSAGES, 1,
- [Define if your <locale.h> file defines LC_MESSAGES.])
- fi
- fi])
diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4
deleted file mode 100644
index ddb57323..00000000
--- a/m4/lib-ld.m4
+++ /dev/null
@@ -1,97 +0,0 @@
-# lib-ld.m4 serial 1 (gettext-0.11)
-dnl Copyright (C) 1996-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl Subroutines of libtool.m4,
-dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
-dnl with libtool.m4.
-
-dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
-AC_DEFUN([AC_LIB_PROG_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- acl_cv_prog_gnu_ld=yes
-else
- acl_cv_prog_gnu_ld=no
-fi])
-with_gnu_ld=$acl_cv_prog_gnu_ld
-])
-
-dnl From libtool-1.4. Sets the variable LD.
-AC_DEFUN([AC_LIB_PROG_LD],
-[AC_ARG_WITH(gnu-ld,
-[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by GCC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [[\\/]* | [A-Za-z]:[\\/]*)]
- [re_direlt='/[^/][^/]*/\.\./']
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(acl_cv_path_LD,
-[if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- acl_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-else
- acl_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$acl_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_LIB_PROG_LD_GNU
-])
diff --git a/m4/lib-link.m4 b/m4/lib-link.m4
deleted file mode 100644
index a16aa446..00000000
--- a/m4/lib-link.m4
+++ /dev/null
@@ -1,521 +0,0 @@
-# lib-link.m4 serial 1 (gettext-0.11)
-dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
-dnl the libraries corresponding to explicit and implicit dependencies.
-dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
-dnl augments the CPPFLAGS variable.
-AC_DEFUN([AC_LIB_LINKFLAGS],
-[
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
- define([Name],[translit([$1],[./-], [___])])
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
- AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
- AC_LIB_LINKFLAGS_BODY([$1], [$2])
- ac_cv_lib[]Name[]_libs="$LIB[]NAME"
- ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
- ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
- ])
- LIB[]NAME="$ac_cv_lib[]Name[]_libs"
- LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
- INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
- AC_SUBST([LIB]NAME)
- AC_SUBST([LTLIB]NAME)
- dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
- dnl results of this search when this library appears as a dependency.
- HAVE_LIB[]NAME=yes
- undefine([Name])
- undefine([NAME])
-])
-
-dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
-dnl searches for libname and the libraries corresponding to explicit and
-dnl implicit dependencies, together with the specified include files and
-dnl the ability to compile and link the specified testcode. If found, it
-dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
-dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
-dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
-dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
-AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
-[
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
- define([Name],[translit([$1],[./-], [___])])
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-
- dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
- dnl accordingly.
- AC_LIB_LINKFLAGS_BODY([$1], [$2])
-
- dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
- dnl because if the user has installed lib[]Name and not disabled its use
- dnl via --without-lib[]Name-prefix, he wants to use it.
- ac_save_CPPFLAGS="$CPPFLAGS"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-
- AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
- ac_save_LIBS="$LIBS"
- LIBS="$LIBS $LIB[]NAME"
- AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
- LIBS="$ac_save_LIBS"
- ])
- if test "$ac_cv_lib[]Name" = yes; then
- HAVE_LIB[]NAME=yes
- AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
- AC_MSG_CHECKING([how to link with lib[]$1])
- AC_MSG_RESULT([$LIB[]NAME])
- else
- HAVE_LIB[]NAME=no
- dnl If $LIB[]NAME didn't lead to a usable library, we don't need
- dnl $INC[]NAME either.
- CPPFLAGS="$ac_save_CPPFLAGS"
- LIB[]NAME=
- LTLIB[]NAME=
- fi
- AC_SUBST([HAVE_LIB]NAME)
- AC_SUBST([LIB]NAME)
- AC_SUBST([LTLIB]NAME)
- undefine([Name])
- undefine([NAME])
-])
-
-dnl Determine the platform dependent parameters needed to use rpath:
-dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
-dnl hardcode_direct, hardcode_minus_L,
-dnl sys_lib_search_path_spec, sys_lib_dlsearch_path_spec.
-AC_DEFUN([AC_LIB_RPATH],
-[
- AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
- AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
- AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
- AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
- CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
- ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
- . ./conftest.sh
- rm -f ./conftest.sh
- acl_cv_rpath=done
- ])
- wl="$acl_cv_wl"
- libext="$acl_cv_libext"
- shlibext="$acl_cv_shlibext"
- hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
- hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
- hardcode_direct="$acl_cv_hardcode_direct"
- hardcode_minus_L="$acl_cv_hardcode_minus_L"
- sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec"
- sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec"
-])
-
-dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
-dnl the libraries corresponding to explicit and implicit dependencies.
-dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
-AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
-[
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
- dnl By default, look in $includedir and $libdir.
- use_additional=yes
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- AC_ARG_WITH([lib$1-prefix],
-[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
- --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
-[
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
- fi
- fi
-])
- dnl Search the library and its dependencies in $additional_libdir and
- dnl $LDFLAGS. Using breadth-first-seach.
- LIB[]NAME=
- LTLIB[]NAME=
- INC[]NAME=
- rpathdirs=
- ltrpathdirs=
- names_already_handled=
- names_next_round='$1 $2'
- while test -n "$names_next_round"; do
- names_this_round="$names_next_round"
- names_next_round=
- for name in $names_this_round; do
- already_handled=
- for n in $names_already_handled; do
- if test "$n" = "$name"; then
- already_handled=yes
- break
- fi
- done
- if test -z "$already_handled"; then
- names_already_handled="$names_already_handled $name"
- dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
- dnl or AC_LIB_HAVE_LINKFLAGS call.
- uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
- eval value=\"\$HAVE_LIB$uppername\"
- if test -n "$value"; then
- if test "$value" = yes; then
- eval value=\"\$LIB$uppername\"
- test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
- eval value=\"\$LTLIB$uppername\"
- test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
- else
- dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
- dnl that this library doesn't exist. So just drop it.
- :
- fi
- else
- dnl Search the library lib$name in $additional_libdir and $LDFLAGS
- dnl and the already constructed $LIBNAME/$LTLIBNAME.
- found_dir=
- found_la=
- found_so=
- found_a=
- if test $use_additional = yes; then
- if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
- found_dir="$additional_libdir"
- found_so="$additional_libdir/lib$name.$shlibext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- else
- if test -f "$additional_libdir/lib$name.$libext"; then
- found_dir="$additional_libdir"
- found_a="$additional_libdir/lib$name.$libext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- for x in $LDFLAGS $LTLIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- case "$x" in
- -L*)
- dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
- found_dir="$dir"
- found_so="$dir/lib$name.$shlibext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- else
- if test -f "$dir/lib$name.$libext"; then
- found_dir="$dir"
- found_a="$dir/lib$name.$libext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- fi
- fi
- ;;
- esac
- if test "X$found_dir" != "X"; then
- break
- fi
- done
- fi
- if test "X$found_dir" != "X"; then
- dnl Found the library.
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
- if test "X$found_so" != "X"; then
- dnl Linking with a shared library. We attempt to hardcode its
- dnl directory into the executable's runpath, unless it's the
- dnl standard /usr/lib.
- if test "X$found_dir" = "X/usr/lib"; then
- dnl No hardcoding is needed.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- dnl Use an explicit option to hardcode DIR into the resulting
- dnl binary.
- dnl Potentially add DIR to ltrpathdirs.
- dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $found_dir"
- fi
- dnl The hardcoding into $LIBNAME is system dependent.
- if test "$hardcode_direct" = yes; then
- dnl Using DIR/libNAME.so during linking hardcodes DIR into the
- dnl resulting binary.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
- dnl Use an explicit option to hardcode DIR into the resulting
- dnl binary.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- dnl Potentially add DIR to rpathdirs.
- dnl The rpathdirs will be appended to $LIBNAME at the end.
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $found_dir"
- fi
- else
- dnl Rely on "-L$found_dir".
- dnl But don't add it if it's already contained in the LDFLAGS
- dnl or the already constructed $LIBNAME
- haveit=
- for x in $LDFLAGS $LIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
- fi
- if test "$hardcode_minus_L" != no; then
- dnl FIXME: Not sure whether we should use
- dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
- dnl here.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
- dnl here, because this doesn't fit in flags passed to the
- dnl compiler. So give up. No hardcoding. This affects only
- dnl very old systems.
- dnl FIXME: Not sure whether we should use
- dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
- dnl here.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
- fi
- fi
- fi
- fi
- else
- if test "X$found_a" != "X"; then
- dnl Linking with a static library.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
- else
- dnl We shouldn't come here, but anyway it's good to have a
- dnl fallback.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
- fi
- fi
- dnl Assume the include files are nearby.
- additional_includedir=
- case "$found_dir" in
- */lib | */lib/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
- additional_includedir="$basedir/include"
- ;;
- esac
- if test "X$additional_includedir" != "X"; then
- dnl Potentially add $additional_includedir to $INCNAME.
- dnl But don't add it
- dnl 1. if it's the standard /usr/include,
- dnl 2. if it's /usr/local/include and we are using GCC on Linux,
- dnl 3. if it's already present in $CPPFLAGS or the already
- dnl constructed $INCNAME,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- for x in $CPPFLAGS $INC[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- dnl Really add $additional_includedir to $INCNAME.
- INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- fi
- dnl Look for dependencies.
- if test -n "$found_la"; then
- dnl Read the .la file. It defines the variables
- dnl dlname, library_names, old_library, dependency_libs, current,
- dnl age, revision, installed, dlopen, dlpreopen, libdir.
- save_libdir="$libdir"
- case "$found_la" in
- */* | *\\*) . "$found_la" ;;
- *) . "./$found_la" ;;
- esac
- libdir="$save_libdir"
- dnl We use only dependency_libs.
- for dep in $dependency_libs; do
- case "$dep" in
- -L*)
- additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
- dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
- dnl But don't add it
- dnl 1. if it's the standard /usr/lib,
- dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
- dnl 3. if it's already present in $LDFLAGS or the already
- dnl constructed $LIBNAME,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_libdir" != "X/usr/lib"; then
- haveit=
- if test "X$additional_libdir" = "X/usr/local/lib"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- haveit=
- for x in $LDFLAGS $LIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LIBNAME.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
- fi
- fi
- haveit=
- for x in $LDFLAGS $LTLIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LTLIBNAME.
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- ;;
- -l*)
- dnl Handle this in the next round.
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
- ;;
- *.la)
- dnl Handle this in the next round. Throw away the .la's
- dnl directory; it is already contained in a preceding -L
- dnl option.
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
- ;;
- *)
- dnl Most likely an immediate library name.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
- ;;
- esac
- done
- fi
- else
- dnl Didn't find the library; assume it is in the system directories
- dnl known to the linker and runtime loader. (All the system
- dnl directories known to the linker should also be known to the
- dnl runtime loader, otherwise the system is severely misconfigured.)
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
- fi
- fi
- fi
- done
- done
- if test "X$rpathdirs" != "X"; then
- if test -n "$hardcode_libdir_separator"; then
- dnl Weird platform: only the last -rpath option counts, the user must
- dnl pass all path elements in one option. We can arrange that for a
- dnl single library, but not when more than one $LIBNAMEs are used.
- alldirs=
- for found_dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
- done
- dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
- acl_save_libdir="$libdir"
- libdir="$alldirs"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
- else
- dnl The -rpath options are cumulative.
- for found_dir in $rpathdirs; do
- acl_save_libdir="$libdir"
- libdir="$found_dir"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
- done
- fi
- fi
- if test "X$ltrpathdirs" != "X"; then
- dnl When using libtool, the option that works for both libraries and
- dnl executables is -R. The -R options are cumulative.
- for found_dir in $ltrpathdirs; do
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
- done
- fi
-])
-
-dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
-dnl unless already present in VAR.
-dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
-dnl contains two or three consecutive elements that belong together.
-AC_DEFUN([AC_LIB_APPENDTOVAR],
-[
- for element in [$2]; do
- haveit=
- for x in $[$1]; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X$element"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- [$1]="${[$1]}${[$1]:+ }$element"
- fi
- done
-])
diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4
deleted file mode 100644
index b8b79ab9..00000000
--- a/m4/lib-prefix.m4
+++ /dev/null
@@ -1,148 +0,0 @@
-# lib-prefix.m4 serial 1 (gettext-0.11)
-dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
-dnl to access previously installed libraries. The basic assumption is that
-dnl a user will want packages to use other packages he previously installed
-dnl with the same --prefix option.
-dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
-dnl libraries, but is otherwise very convenient.
-AC_DEFUN([AC_LIB_PREFIX],
-[
- AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
- AC_REQUIRE([AC_PROG_CC])
- AC_REQUIRE([AC_CANONICAL_HOST])
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- dnl By default, look in $includedir and $libdir.
- use_additional=yes
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- AC_ARG_WITH([lib-prefix],
-[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
- --without-lib-prefix don't search for libraries in includedir and libdir],
-[
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
- fi
- fi
-])
- if test $use_additional = yes; then
- dnl Potentially add $additional_includedir to $CPPFLAGS.
- dnl But don't add it
- dnl 1. if it's the standard /usr/include,
- dnl 2. if it's already present in $CPPFLAGS,
- dnl 3. if it's /usr/local/include and we are using GCC on Linux,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- for x in $CPPFLAGS; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- dnl Really add $additional_includedir to $CPPFLAGS.
- CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- dnl Potentially add $additional_libdir to $LDFLAGS.
- dnl But don't add it
- dnl 1. if it's the standard /usr/lib,
- dnl 2. if it's already present in $LDFLAGS,
- dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_libdir" != "X/usr/lib"; then
- haveit=
- for x in $LDFLAGS; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test "X$additional_libdir" = "X/usr/local/lib"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LDFLAGS.
- LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- fi
-])
-
-dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
-dnl acl_final_exec_prefix, containing the values to which $prefix and
-dnl $exec_prefix will expand at the end of the configure script.
-AC_DEFUN([AC_LIB_PREPARE_PREFIX],
-[
- dnl Unfortunately, prefix and exec_prefix get only finally determined
- dnl at the end of configure.
- if test "X$prefix" = "XNONE"; then
- acl_final_prefix="$ac_default_prefix"
- else
- acl_final_prefix="$prefix"
- fi
- if test "X$exec_prefix" = "XNONE"; then
- acl_final_exec_prefix='${prefix}'
- else
- acl_final_exec_prefix="$exec_prefix"
- fi
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
- prefix="$acl_save_prefix"
-])
-
-dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
-dnl variables prefix and exec_prefix bound to the values they will have
-dnl at the end of the configure script.
-AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
-[
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- $1
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-])
diff --git a/m4/progtest.m4 b/m4/progtest.m4
deleted file mode 100644
index 443c8e30..00000000
--- a/m4/progtest.m4
+++ /dev/null
@@ -1,59 +0,0 @@
-# progtest.m4 serial 2 (gettext-0.10.40)
-dnl Copyright (C) 1996-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-# Search path for a program which passes the given test.
-
-dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN([AM_PATH_PROG_WITH_TEST],
-[# Extract the first word of "$2", so it can be a program name with args.
-set dummy $2; ac_word=[$]2
-AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL(ac_cv_path_$1,
-[case "[$]$1" in
- /*)
- ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in ifelse([$5], , $PATH, [$5]); do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if [$3]; then
- ac_cv_path_$1="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-dnl If no 4th arg is given, leave the cache variable unset,
-dnl so AC_PATH_PROGS will keep looking.
-ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-])dnl
- ;;
-esac])dnl
-$1="$ac_cv_path_$1"
-if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
- AC_MSG_RESULT([$]$1)
-else
- AC_MSG_RESULT(no)
-fi
-AC_SUBST($1)dnl
-])
diff --git a/m4/stdint_h.m4 b/m4/stdint_h.m4
deleted file mode 100644
index 4b5a4ac6..00000000
--- a/m4/stdint_h.m4
+++ /dev/null
@@ -1,28 +0,0 @@
-# stdint_h.m4 serial 2 (gettext-0.11.4)
-dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
-# doesn't clash with <sys/types.h>, and declares uintmax_t.
-
-AC_DEFUN([jm_AC_HEADER_STDINT_H],
-[
- AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
- [AC_TRY_COMPILE(
- [#include <sys/types.h>
-#include <stdint.h>],
- [uintmax_t i = (uintmax_t) -1;],
- jm_ac_cv_header_stdint_h=yes,
- jm_ac_cv_header_stdint_h=no)])
- if test $jm_ac_cv_header_stdint_h = yes; then
- AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
-[Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
- and declares uintmax_t. ])
- fi
-])
diff --git a/m4/uintmax_t.m4 b/m4/uintmax_t.m4
deleted file mode 100644
index ec3a8b92..00000000
--- a/m4/uintmax_t.m4
+++ /dev/null
@@ -1,29 +0,0 @@
-# uintmax_t.m4 serial 6 (gettext-0.11)
-dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-AC_PREREQ(2.13)
-
-# Define uintmax_t to `unsigned long' or `unsigned long long'
-# if <inttypes.h> does not exist.
-
-AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
-[
- AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
- AC_REQUIRE([jm_AC_HEADER_STDINT_H])
- if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
- AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
- test $ac_cv_type_unsigned_long_long = yes \
- && ac_type='unsigned long long' \
- || ac_type='unsigned long'
- AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
- [Define to unsigned long or unsigned long long
- if <inttypes.h> and <stdint.h> don't define.])
- fi
-])
diff --git a/m4/ulonglong.m4 b/m4/ulonglong.m4
deleted file mode 100644
index c375e474..00000000
--- a/m4/ulonglong.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40)
-dnl Copyright (C) 1999-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
-[
- AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
- [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;],
- [unsigned long long ullmax = (unsigned long long) -1;
- return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
- ac_cv_type_unsigned_long_long=yes,
- ac_cv_type_unsigned_long_long=no)])
- if test $ac_cv_type_unsigned_long_long = yes; then
- AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
- [Define if you have the unsigned long long type.])
- fi
-])
diff --git a/po/ChangeLog b/po/ChangeLog
deleted file mode 100644
index 179bb950..00000000
--- a/po/ChangeLog
+++ /dev/null
@@ -1,7 +0,0 @@
-2004-01-18 Ulrich Drepper <drepper@redhat.com>
-
- * POTFILES.in: Add files from libdw, libebl, and libasm.
-
-2003-08-11 Ulrich Drepper <drepper@redhat.com>
-
- * Moved to CVS archive.
diff --git a/po/Makefile b/po/Makefile
deleted file mode 100644
index ec9a6c05..00000000
--- a/po/Makefile
+++ /dev/null
@@ -1,400 +0,0 @@
-# Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2002 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU General Public
-# License but which still want to provide support for the GNU gettext
-# functionality.
-# Please note that the actual code of GNU gettext is covered by the GNU
-# General Public License and is *not* in the public domain.
-
-PACKAGE = elfutils
-VERSION = 0.97
-
-SHELL = /bin/sh
-
-
-srcdir = .
-top_srcdir = ..
-
-
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-exec_prefix = ${prefix}
-datadir = ${prefix}/share
-localedir = $(datadir)/locale
-gettextsrcdir = $(datadir)/gettext/po
-top_builddir = ..
-
-INSTALL = /usr/bin/install -c
-INSTALL_DATA = ${INSTALL} -m 644
-MKINSTALLDIRS = config/mkinstalldirs
-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
-
-GMSGFMT = /usr/bin/msgfmt
-MSGFMT = /usr/bin/msgfmt
-XGETTEXT = /usr/bin/xgettext
-MSGMERGE = msgmerge
-MSGMERGE_UPDATE = /usr/bin/msgmerge --update
-MSGINIT = msginit
-MSGCONV = msgconv
-MSGFILTER = msgfilter
-
-POFILES =
-GMOFILES =
-UPDATEPOFILES =
-DUMMYPOFILES =
-DISTFILES.common = Makefile.in.in Makevars \
-$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
-DISTFILES = $(DISTFILES.common) POTFILES.in $(DOMAIN).pot \
-$(POFILES) $(GMOFILES) \
-$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
-
-POTFILES = \
- ../lib/xmalloc.c \
- ../lib/xstrdup.c \
- ../lib/xstrndup.c \
- ../src/nm.c \
- ../src/readelf.c \
- ../src/size.c \
- ../src/strip.c \
- ../src/ld.c \
- ../src/ldgeneric.c \
- ../src/ldscript.y \
- ../src/elflint.c \
- ../libasm/asm_begin.c \
- ../libasm/asm_abort.c \
- ../libasm/asm_end.c \
- ../libasm/asm_error.c \
- ../libasm/asm_getelf.c \
- ../libdw/dwarf_error.c \
- ../libebl/eblclosebackend.c \
- ../libebl/eblopenbackend.c \
- ../libebl/eblstrtab.c \
- ../libebl/i386_destr.c \
- ../libebl/i386_init.c \
- ../libebl/i386_symbol.c \
- ../libebl/mips_destr.c \
- ../libebl/mips_init.c \
- ../libebl/mips_symbol.c \
- ../libebl/sh_destr.c \
- ../libebl/sh_init.c \
- ../libebl/sh_symbol.c \
- ../libebl/sparc_destr.c \
- ../libebl/sparc_init.c \
- ../libebl/sparc_symbol.c
-
-CATALOGS =
-
-# Makevars gets inserted here. (Don't remove this line!)
-# Makefile variables for PO directory in any package using GNU gettext.
-
-# Usually the message domain is the same as the package name.
-DOMAIN = $(PACKAGE)
-
-# These two variables depend on the location of this directory.
-subdir = po
-top_builddir = ..
-
-# These options get passed to xgettext.
-XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
-
-# This is the copyright holder that gets inserted into the header of the
-# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
-# package. (Note that the msgstr strings, extracted from the package's
-# sources, belong to the copyright holder of the package.) Translators are
-# expected to transfer the copyright for their translations to this person
-# or entity, or to disclaim their copyright. The empty string stands for
-# the public domain; in this case the translators are expected to disclaim
-# their copyright.
-COPYRIGHT_HOLDER = Red Hat, Inc.
-
-# This is the list of locale categories, beyond LC_MESSAGES, for which the
-# message catalogs shall be used. It is usually empty.
-EXTRA_LOCALE_CATEGORIES =
-
-.SUFFIXES:
-.SUFFIXES: .po .gmo .mo .nop .po-update
-
-.po.mo:
- $(MSGFMT) -c -o $@ $<
-
-.po.gmo:
- @lang=`echo $* | sed -e 's,.*/,,'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
- cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po
-
-
-all: all-yes
-
-all-yes: $(CATALOGS)
-all-no:
-
-# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
-# otherwise packages like GCC can not be built if only parts of the source
-# have been downloaded.
-
-$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in
- $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
- --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
- --files-from=$(srcdir)/POTFILES.in \
- --copyright-holder='$(COPYRIGHT_HOLDER)' \
- && test ! -f $(DOMAIN).po \
- || ( rm -f $(srcdir)/$(DOMAIN).pot \
- && mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot )
-
-$(srcdir)/$(DOMAIN).pot:
- $(MAKE) $(DOMAIN).pot-update
-
-$(POFILES): $(srcdir)/$(DOMAIN).pot
- @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
- cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
-
-
-install: install-exec install-data
-install-exec:
-install-data: install-data-yes
- if test "$(PACKAGE)" = "gettext"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- for file in $(DISTFILES.common); do \
- $(INSTALL_DATA) $(srcdir)/$$file \
- $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-install-data-no: all
-install-data-yes: all
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
- if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
- $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
- echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
- fi; \
- done; \
- done
-
-install-strip: install
-
-installdirs: installdirs-exec installdirs-data
-installdirs-exec:
-installdirs-data: installdirs-data-yes
- if test "$(PACKAGE)" = "gettext"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- else \
- : ; \
- fi
-installdirs-data-no:
-installdirs-data-yes:
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- fi; \
- done; \
- done
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall: uninstall-exec uninstall-data
-uninstall-exec:
-uninstall-data: uninstall-data-yes
- if test "$(PACKAGE)" = "gettext"; then \
- for file in $(DISTFILES.common); do \
- rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-uninstall-data-no:
-uninstall-data-yes:
- catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- done; \
- done
-
-check: all
-
-dvi info tags TAGS ID:
-
-mostlyclean:
- rm -f core core.* $(DOMAIN).po *.new.po
- rm -fr *.o
-
-clean: mostlyclean
-
-distclean: clean
- rm -f Makefile Makefile.in POTFILES *.mo
-
-maintainer-clean: distclean
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
- rm -f $(GMOFILES)
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir:
- $(MAKE) update-po
- @$(MAKE) dist2
-# This is a separate target because 'update-po' must be executed before.
-dist2: $(DISTFILES)
- dists="$(DISTFILES)"; \
- if test -f $(srcdir)/ChangeLog; then dists="$$dists ChangeLog"; fi; \
- if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
- for file in $$dists; do \
- if test -f $$file; then \
- cp -p $$file $(distdir); \
- else \
- cp -p $(srcdir)/$$file $(distdir); \
- fi; \
- done
-
-update-po: Makefile
- $(MAKE) $(DOMAIN).pot-update
- $(MAKE) $(UPDATEPOFILES)
- $(MAKE) update-gmo
-
-# General rule for updating PO files.
-
-.nop.po-update:
- @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
- if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
- tmpdir=`pwd`; \
- echo "$$lang:"; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
- cd $(srcdir); \
- if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
- rm -f $$tmpdir/$$lang.new.po; \
- else \
- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
- :; \
- else \
- echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
- exit 1; \
- fi; \
- fi; \
- else \
- echo "msgmerge for $$lang.po failed!" 1>&2; \
- rm -f $$tmpdir/$$lang.new.po; \
- fi
-
-$(DUMMYPOFILES):
-
-update-gmo: Makefile $(GMOFILES)
- @:
-
-Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
- $(SHELL) ./config.status
-
-force:
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-# Special Makefile rules for English message catalogs with quotation marks.
-
-DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
-
-.SUFFIXES: .insert-header .po-update-en
-
-en@quot.po-update: en@quot.po-update-en
-en@boldquot.po-update: en@boldquot.po-update-en
-
-.insert-header.po-update-en:
- @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
- if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
- tmpdir=`pwd`; \
- echo "$$lang:"; \
- ll=`echo $$lang | sed -e 's/@.*//'`; \
- LC_ALL=C; export LC_ALL; \
- cd $(srcdir); \
- if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
- rm -f $$tmpdir/$$lang.new.po; \
- else \
- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
- :; \
- else \
- echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
- exit 1; \
- fi; \
- fi; \
- else \
- echo "creation of $$lang.po failed!" 1>&2; \
- rm -f $$tmpdir/$$lang.new.po; \
- fi
-
-en@quot.insert-header: insert-header.sin
- sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
-
-en@boldquot.insert-header: insert-header.sin
- sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
-
-mostlyclean: mostlyclean-quot
-mostlyclean-quot:
- rm -f *.insert-header
diff --git a/po/Makefile.in b/po/Makefile.in
deleted file mode 100644
index 64ca4882..00000000
--- a/po/Makefile.in
+++ /dev/null
@@ -1,301 +0,0 @@
-# Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2002 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU General Public
-# License but which still want to provide support for the GNU gettext
-# functionality.
-# Please note that the actual code of GNU gettext is covered by the GNU
-# General Public License and is *not* in the public domain.
-
-PACKAGE = elfutils
-VERSION = 0.97
-
-SHELL = /bin/sh
-
-
-srcdir = .
-top_srcdir = ..
-
-
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-exec_prefix = ${prefix}
-datadir = ${prefix}/share
-localedir = $(datadir)/locale
-gettextsrcdir = $(datadir)/gettext/po
-top_builddir = ..
-
-INSTALL = /usr/bin/install -c
-INSTALL_DATA = ${INSTALL} -m 644
-MKINSTALLDIRS = config/mkinstalldirs
-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
-
-GMSGFMT = /usr/bin/msgfmt
-MSGFMT = /usr/bin/msgfmt
-XGETTEXT = /usr/bin/xgettext
-MSGMERGE = msgmerge
-MSGMERGE_UPDATE = /usr/bin/msgmerge --update
-MSGINIT = msginit
-MSGCONV = msgconv
-MSGFILTER = msgfilter
-
-POFILES = @POFILES@
-GMOFILES = @GMOFILES@
-UPDATEPOFILES = @UPDATEPOFILES@
-DUMMYPOFILES = @DUMMYPOFILES@
-DISTFILES.common = Makefile.in.in Makevars \
-$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
-DISTFILES = $(DISTFILES.common) POTFILES.in $(DOMAIN).pot \
-$(POFILES) $(GMOFILES) \
-$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
-
-POTFILES = \
-
-CATALOGS = @CATALOGS@
-
-# Makevars gets inserted here. (Don't remove this line!)
-
-.SUFFIXES:
-.SUFFIXES: .po .gmo .mo .nop .po-update
-
-.po.mo:
- $(MSGFMT) -c -o $@ $<
-
-.po.gmo:
- @lang=`echo $* | sed -e 's,.*/,,'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
- cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po
-
-
-all: all-yes
-
-all-yes: $(CATALOGS)
-all-no:
-
-# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
-# otherwise packages like GCC can not be built if only parts of the source
-# have been downloaded.
-
-$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in
- $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
- --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
- --files-from=$(srcdir)/POTFILES.in \
- --copyright-holder='$(COPYRIGHT_HOLDER)' \
- && test ! -f $(DOMAIN).po \
- || ( rm -f $(srcdir)/$(DOMAIN).pot \
- && mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot )
-
-$(srcdir)/$(DOMAIN).pot:
- $(MAKE) $(DOMAIN).pot-update
-
-$(POFILES): $(srcdir)/$(DOMAIN).pot
- @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
- cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
-
-
-install: install-exec install-data
-install-exec:
-install-data: install-data-yes
- if test "$(PACKAGE)" = "gettext"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- for file in $(DISTFILES.common); do \
- $(INSTALL_DATA) $(srcdir)/$$file \
- $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-install-data-no: all
-install-data-yes: all
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
- if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
- $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
- echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
- fi; \
- done; \
- done
-
-install-strip: install
-
-installdirs: installdirs-exec installdirs-data
-installdirs-exec:
-installdirs-data: installdirs-data-yes
- if test "$(PACKAGE)" = "gettext"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- else \
- : ; \
- fi
-installdirs-data-no:
-installdirs-data-yes:
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- fi; \
- done; \
- done
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall: uninstall-exec uninstall-data
-uninstall-exec:
-uninstall-data: uninstall-data-yes
- if test "$(PACKAGE)" = "gettext"; then \
- for file in $(DISTFILES.common); do \
- rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-uninstall-data-no:
-uninstall-data-yes:
- catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- done; \
- done
-
-check: all
-
-dvi info tags TAGS ID:
-
-mostlyclean:
- rm -f core core.* $(DOMAIN).po *.new.po
- rm -fr *.o
-
-clean: mostlyclean
-
-distclean: clean
- rm -f Makefile Makefile.in POTFILES *.mo
-
-maintainer-clean: distclean
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
- rm -f $(GMOFILES)
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir:
- $(MAKE) update-po
- @$(MAKE) dist2
-# This is a separate target because 'update-po' must be executed before.
-dist2: $(DISTFILES)
- dists="$(DISTFILES)"; \
- if test -f $(srcdir)/ChangeLog; then dists="$$dists ChangeLog"; fi; \
- if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
- for file in $$dists; do \
- if test -f $$file; then \
- cp -p $$file $(distdir); \
- else \
- cp -p $(srcdir)/$$file $(distdir); \
- fi; \
- done
-
-update-po: Makefile
- $(MAKE) $(DOMAIN).pot-update
- $(MAKE) $(UPDATEPOFILES)
- $(MAKE) update-gmo
-
-# General rule for updating PO files.
-
-.nop.po-update:
- @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
- if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
- tmpdir=`pwd`; \
- echo "$$lang:"; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
- cd $(srcdir); \
- if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
- rm -f $$tmpdir/$$lang.new.po; \
- else \
- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
- :; \
- else \
- echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
- exit 1; \
- fi; \
- fi; \
- else \
- echo "msgmerge for $$lang.po failed!" 1>&2; \
- rm -f $$tmpdir/$$lang.new.po; \
- fi
-
-$(DUMMYPOFILES):
-
-update-gmo: Makefile $(GMOFILES)
- @:
-
-Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
- $(SHELL) ./config.status
-
-force:
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
deleted file mode 100644
index d1e93381..00000000
--- a/po/Makefile.in.in
+++ /dev/null
@@ -1,301 +0,0 @@
-# Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2002 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU General Public
-# License but which still want to provide support for the GNU gettext
-# functionality.
-# Please note that the actual code of GNU gettext is covered by the GNU
-# General Public License and is *not* in the public domain.
-
-PACKAGE = @PACKAGE@
-VERSION = @VERSION@
-
-SHELL = /bin/sh
-@SET_MAKE@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datadir = @datadir@
-localedir = $(datadir)/locale
-gettextsrcdir = $(datadir)/gettext/po
-top_builddir = ..
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
-
-GMSGFMT = @GMSGFMT@
-MSGFMT = @MSGFMT@
-XGETTEXT = @XGETTEXT@
-MSGMERGE = msgmerge
-MSGMERGE_UPDATE = @MSGMERGE@ --update
-MSGINIT = msginit
-MSGCONV = msgconv
-MSGFILTER = msgfilter
-
-POFILES = @POFILES@
-GMOFILES = @GMOFILES@
-UPDATEPOFILES = @UPDATEPOFILES@
-DUMMYPOFILES = @DUMMYPOFILES@
-DISTFILES.common = Makefile.in.in Makevars \
-$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
-DISTFILES = $(DISTFILES.common) POTFILES.in $(DOMAIN).pot \
-$(POFILES) $(GMOFILES) \
-$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
-
-POTFILES = \
-
-CATALOGS = @CATALOGS@
-
-# Makevars gets inserted here. (Don't remove this line!)
-
-.SUFFIXES:
-.SUFFIXES: .po .gmo .mo .nop .po-update
-
-.po.mo:
- $(MSGFMT) -c -o $@ $<
-
-.po.gmo:
- @lang=`echo $* | sed -e 's,.*/,,'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
- cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po
-
-
-all: all-@USE_NLS@
-
-all-yes: $(CATALOGS)
-all-no:
-
-# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
-# otherwise packages like GCC can not be built if only parts of the source
-# have been downloaded.
-
-$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in
- $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
- --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
- --files-from=$(srcdir)/POTFILES.in \
- --copyright-holder='$(COPYRIGHT_HOLDER)' \
- && test ! -f $(DOMAIN).po \
- || ( rm -f $(srcdir)/$(DOMAIN).pot \
- && mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot )
-
-$(srcdir)/$(DOMAIN).pot:
- $(MAKE) $(DOMAIN).pot-update
-
-$(POFILES): $(srcdir)/$(DOMAIN).pot
- @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
- cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
-
-
-install: install-exec install-data
-install-exec:
-install-data: install-data-@USE_NLS@
- if test "$(PACKAGE)" = "gettext"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- for file in $(DISTFILES.common); do \
- $(INSTALL_DATA) $(srcdir)/$$file \
- $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-install-data-no: all
-install-data-yes: all
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
- if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
- $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
- echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
- fi; \
- done; \
- done
-
-install-strip: install
-
-installdirs: installdirs-exec installdirs-data
-installdirs-exec:
-installdirs-data: installdirs-data-@USE_NLS@
- if test "$(PACKAGE)" = "gettext"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- else \
- : ; \
- fi
-installdirs-data-no:
-installdirs-data-yes:
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- fi; \
- done; \
- done
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall: uninstall-exec uninstall-data
-uninstall-exec:
-uninstall-data: uninstall-data-@USE_NLS@
- if test "$(PACKAGE)" = "gettext"; then \
- for file in $(DISTFILES.common); do \
- rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-uninstall-data-no:
-uninstall-data-yes:
- catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- done; \
- done
-
-check: all
-
-dvi info tags TAGS ID:
-
-mostlyclean:
- rm -f core core.* $(DOMAIN).po *.new.po
- rm -fr *.o
-
-clean: mostlyclean
-
-distclean: clean
- rm -f Makefile Makefile.in POTFILES *.mo
-
-maintainer-clean: distclean
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
- rm -f $(GMOFILES)
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir:
- $(MAKE) update-po
- @$(MAKE) dist2
-# This is a separate target because 'update-po' must be executed before.
-dist2: $(DISTFILES)
- dists="$(DISTFILES)"; \
- if test -f $(srcdir)/ChangeLog; then dists="$$dists ChangeLog"; fi; \
- if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
- for file in $$dists; do \
- if test -f $$file; then \
- cp -p $$file $(distdir); \
- else \
- cp -p $(srcdir)/$$file $(distdir); \
- fi; \
- done
-
-update-po: Makefile
- $(MAKE) $(DOMAIN).pot-update
- $(MAKE) $(UPDATEPOFILES)
- $(MAKE) update-gmo
-
-# General rule for updating PO files.
-
-.nop.po-update:
- @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
- if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
- tmpdir=`pwd`; \
- echo "$$lang:"; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
- cd $(srcdir); \
- if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
- rm -f $$tmpdir/$$lang.new.po; \
- else \
- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
- :; \
- else \
- echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
- exit 1; \
- fi; \
- fi; \
- else \
- echo "msgmerge for $$lang.po failed!" 1>&2; \
- rm -f $$tmpdir/$$lang.new.po; \
- fi
-
-$(DUMMYPOFILES):
-
-update-gmo: Makefile $(GMOFILES)
- @:
-
-Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
- $(SHELL) ./config.status
-
-force:
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/po/Makevars b/po/Makevars
deleted file mode 100644
index 0accb70a..00000000
--- a/po/Makevars
+++ /dev/null
@@ -1,25 +0,0 @@
-# Makefile variables for PO directory in any package using GNU gettext.
-
-# Usually the message domain is the same as the package name.
-DOMAIN = $(PACKAGE)
-
-# These two variables depend on the location of this directory.
-subdir = po
-top_builddir = ..
-
-# These options get passed to xgettext.
-XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
-
-# This is the copyright holder that gets inserted into the header of the
-# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
-# package. (Note that the msgstr strings, extracted from the package's
-# sources, belong to the copyright holder of the package.) Translators are
-# expected to transfer the copyright for their translations to this person
-# or entity, or to disclaim their copyright. The empty string stands for
-# the public domain; in this case the translators are expected to disclaim
-# their copyright.
-COPYRIGHT_HOLDER = Red Hat, Inc.
-
-# This is the list of locale categories, beyond LC_MESSAGES, for which the
-# message catalogs shall be used. It is usually empty.
-EXTRA_LOCALE_CATEGORIES =
diff --git a/po/POTFILES b/po/POTFILES
deleted file mode 100644
index b363051e..00000000
--- a/po/POTFILES
+++ /dev/null
@@ -1,32 +0,0 @@
- ../lib/xmalloc.c \
- ../lib/xstrdup.c \
- ../lib/xstrndup.c \
- ../src/nm.c \
- ../src/readelf.c \
- ../src/size.c \
- ../src/strip.c \
- ../src/ld.c \
- ../src/ldgeneric.c \
- ../src/ldscript.y \
- ../src/elflint.c \
- ../libasm/asm_begin.c \
- ../libasm/asm_abort.c \
- ../libasm/asm_end.c \
- ../libasm/asm_error.c \
- ../libasm/asm_getelf.c \
- ../libdw/dwarf_error.c \
- ../libebl/eblclosebackend.c \
- ../libebl/eblopenbackend.c \
- ../libebl/eblstrtab.c \
- ../libebl/i386_destr.c \
- ../libebl/i386_init.c \
- ../libebl/i386_symbol.c \
- ../libebl/mips_destr.c \
- ../libebl/mips_init.c \
- ../libebl/mips_symbol.c \
- ../libebl/sh_destr.c \
- ../libebl/sh_init.c \
- ../libebl/sh_symbol.c \
- ../libebl/sparc_destr.c \
- ../libebl/sparc_init.c \
- ../libebl/sparc_symbol.c
diff --git a/po/POTFILES.in b/po/POTFILES.in
deleted file mode 100644
index aa813125..00000000
--- a/po/POTFILES.in
+++ /dev/null
@@ -1,42 +0,0 @@
-# List of files which containing translatable strings.
-# Copyright (C) 2000 Red Hat, Inc.
-
-# Files from the compatibility library
-lib/xmalloc.c
-lib/xstrdup.c
-lib/xstrndup.c
-
-# Program sources
-src/nm.c
-src/readelf.c
-src/size.c
-src/strip.c
-src/ld.c
-src/ldgeneric.c
-src/ldscript.y
-src/elflint.c
-libasm/asm_begin.c
-libasm/asm_abort.c
-libasm/asm_end.c
-libasm/asm_error.c
-libasm/asm_getelf.c
-libdw/dwarf_error.c
-# List of files which containing translatable strings.
-# Copyright (C) 2000 Red Hat, Inc.
-
-# Library sources
-libebl/eblclosebackend.c
-libebl/eblopenbackend.c
-libebl/eblstrtab.c
-libebl/i386_destr.c
-libebl/i386_init.c
-libebl/i386_symbol.c
-libebl/mips_destr.c
-libebl/mips_init.c
-libebl/mips_symbol.c
-libebl/sh_destr.c
-libebl/sh_init.c
-libebl/sh_symbol.c
-libebl/sparc_destr.c
-libebl/sparc_init.c
-libebl/sparc_symbol.c
diff --git a/po/Rules-quot b/po/Rules-quot
deleted file mode 100644
index 5f46d237..00000000
--- a/po/Rules-quot
+++ /dev/null
@@ -1,42 +0,0 @@
-# Special Makefile rules for English message catalogs with quotation marks.
-
-DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
-
-.SUFFIXES: .insert-header .po-update-en
-
-en@quot.po-update: en@quot.po-update-en
-en@boldquot.po-update: en@boldquot.po-update-en
-
-.insert-header.po-update-en:
- @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
- if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
- tmpdir=`pwd`; \
- echo "$$lang:"; \
- ll=`echo $$lang | sed -e 's/@.*//'`; \
- LC_ALL=C; export LC_ALL; \
- cd $(srcdir); \
- if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
- rm -f $$tmpdir/$$lang.new.po; \
- else \
- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
- :; \
- else \
- echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
- exit 1; \
- fi; \
- fi; \
- else \
- echo "creation of $$lang.po failed!" 1>&2; \
- rm -f $$tmpdir/$$lang.new.po; \
- fi
-
-en@quot.insert-header: insert-header.sin
- sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
-
-en@boldquot.insert-header: insert-header.sin
- sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
-
-mostlyclean: mostlyclean-quot
-mostlyclean-quot:
- rm -f *.insert-header
diff --git a/po/boldquot.sed b/po/boldquot.sed
deleted file mode 100644
index 4b937aa5..00000000
--- a/po/boldquot.sed
+++ /dev/null
@@ -1,10 +0,0 @@
-s/"\([^"]*\)"/“\1”/g
-s/`\([^`']*\)'/‘\1’/g
-s/ '\([^`']*\)' / ‘\1’ /g
-s/ '\([^`']*\)'$/ ‘\1’/g
-s/^'\([^`']*\)' /‘\1’ /g
-s/“”/""/g
-s/“/“/g
-s/”/”/g
-s/‘/‘/g
-s/’/’/g
diff --git a/po/elfutils.pot b/po/elfutils.pot
deleted file mode 100644
index 4fe08eba..00000000
--- a/po/elfutils.pot
+++ /dev/null
@@ -1,3071 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Red Hat, Inc.
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-09-25 12:42-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-
-#: lib/xmalloc.c:38 lib/xmalloc.c:52 lib/xmalloc.c:66
-msgid "memory exhausted"
-msgstr ""
-
-#: src/nm.c:59 src/readelf.c:51 src/strip.c:57
-msgid "Output selection:"
-msgstr ""
-
-#: src/nm.c:60
-msgid "Display debugger-only symbols"
-msgstr ""
-
-#: src/nm.c:61
-msgid "Display only defined symbols"
-msgstr ""
-
-#: src/nm.c:64
-msgid "Display dynamic symbols instead of normal symbols"
-msgstr ""
-
-#: src/nm.c:65
-msgid "Display only external symbols"
-msgstr ""
-
-#: src/nm.c:66
-msgid "Display only undefined symbols"
-msgstr ""
-
-#: src/nm.c:68
-msgid "Include index for symbols from archive members"
-msgstr ""
-
-#: src/nm.c:70 src/size.c:51
-msgid "Output format:"
-msgstr ""
-
-#: src/nm.c:72
-msgid "Print name of the input file before every symbol"
-msgstr ""
-
-#: src/nm.c:75
-msgid ""
-"Use the output format FORMAT. FORMAT can be `bsd', `sysv' or `posix'. The "
-"default is `sysv'"
-msgstr ""
-
-#: src/nm.c:77
-msgid "Same as --format=bsd"
-msgstr ""
-
-#: src/nm.c:78
-msgid "Same as --format=posix"
-msgstr ""
-
-#: src/nm.c:79 src/size.c:55
-msgid "Use RADIX for printing symbol values"
-msgstr ""
-
-#: src/nm.c:80
-msgid "Mark weak symbols"
-msgstr ""
-
-#: src/nm.c:81
-msgid "Print size of defined symbols"
-msgstr ""
-
-#: src/nm.c:83 src/size.c:61 src/strip.c:61
-msgid "Output options:"
-msgstr ""
-
-#: src/nm.c:84
-msgid "Sort symbols numerically by address"
-msgstr ""
-
-#: src/nm.c:86
-msgid "Do not sort the symbols"
-msgstr ""
-
-#: src/nm.c:87
-msgid "Reverse the sense of the sort"
-msgstr ""
-
-#: src/nm.c:88
-msgid "Miscellaneous:"
-msgstr ""
-
-#: src/nm.c:93
-msgid "List symbols from FILEs (a.out by default)."
-msgstr ""
-
-#: src/nm.c:96 src/size.c:72 src/strip.c:76
-msgid "[FILE...]"
-msgstr ""
-
-#: src/nm.c:124 src/size.c:100 src/strip.c:103
-#, c-format
-msgid "%s: INTERNAL ERROR %d (%s-%s): %s"
-msgstr ""
-
-#: src/nm.c:241 src/readelf.c:376 src/size.c:202 src/strip.c:182 src/ld.c:871
-#: src/elflint.c:241
-#, c-format
-msgid ""
-"Copyright (C) %s Red Hat, Inc.\n"
-"This is free software; see the source for copying conditions. There is NO\n"
-"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
-msgstr ""
-
-#: src/nm.c:246 src/readelf.c:381 src/size.c:207 src/strip.c:187 src/ld.c:876
-#: src/elflint.c:246
-#, c-format
-msgid "Written by %s.\n"
-msgstr ""
-
-#: src/nm.c:351 src/readelf.c:359 src/size.c:285 src/strip.c:237 src/ld.c:490
-#: src/elflint.c:224
-#, c-format
-msgid "Please report bugs to %s.\n"
-msgstr ""
-
-#: src/nm.c:388 src/nm.c:400 src/size.c:324
-#, c-format
-msgid "while close `%s'"
-msgstr ""
-
-#: src/nm.c:410 src/strip.c:322
-#, c-format
-msgid "%s: File format not recognized"
-msgstr ""
-
-#: src/nm.c:450
-msgid ""
-"\n"
-"Archive index:"
-msgstr ""
-
-#: src/nm.c:459
-#, c-format
-msgid "invalid offset %zu for symbol %s"
-msgstr ""
-
-#: src/nm.c:464
-#, c-format
-msgid "%s in %s\n"
-msgstr ""
-
-#: src/nm.c:472
-msgid "cannot reset archive offset to beginning"
-msgstr ""
-
-#: src/nm.c:496
-#, c-format
-msgid "%s%s%s: file format not recognized"
-msgstr ""
-
-#: src/nm.c:714
-msgid "cannot create search tree"
-msgstr ""
-
-#: src/nm.c:742 src/nm.c:988 src/readelf.c:691 src/readelf.c:834
-#: src/readelf.c:947 src/readelf.c:1131 src/readelf.c:1350 src/readelf.c:1509
-#: src/readelf.c:1682 src/readelf.c:1941 src/readelf.c:2018 src/readelf.c:2106
-#: src/readelf.c:2387 src/readelf.c:2513 src/readelf.c:4392 src/size.c:429
-#: src/size.c:504 src/strip.c:468
-msgid "cannot get section header string table index"
-msgstr ""
-
-#: src/nm.c:762
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s:\n"
-"\n"
-msgstr ""
-
-#: src/nm.c:764
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-
-#: src/nm.c:767
-#, c-format
-msgid ""
-"%*s%-*s %-*s Class Type %-*s %*s Section\n"
-"\n"
-msgstr ""
-
-#: src/nm.c:998
-#, c-format
-msgid "%s: entry size in section `%s' is not what we expect"
-msgstr ""
-
-#: src/nm.c:1002
-#, c-format
-msgid "%s: size of section `%s' is not multiple of entry size"
-msgstr ""
-
-#: src/nm.c:1235
-#, c-format
-msgid "%s%s%s%s: Invalid operation"
-msgstr ""
-
-#: src/nm.c:1292
-#, c-format
-msgid "%s%s%s: no symbols"
-msgstr ""
-
-#: src/readelf.c:52
-msgid "Equivalent to: -h -l"
-msgstr ""
-
-#: src/readelf.c:53
-msgid "Display the dynamic segment"
-msgstr ""
-
-#: src/readelf.c:54
-msgid "Display the ELF file header"
-msgstr ""
-
-#: src/readelf.c:56
-msgid "Display histogram of bucket list lengths"
-msgstr ""
-
-#: src/readelf.c:57
-msgid "Display the program headers"
-msgstr ""
-
-#: src/readelf.c:58
-msgid "Display relocations"
-msgstr ""
-
-#: src/readelf.c:59
-msgid "Display the sections' header"
-msgstr ""
-
-#: src/readelf.c:60
-msgid "Display the symbol table"
-msgstr ""
-
-#: src/readelf.c:61
-msgid "Display versioning information"
-msgstr ""
-
-#: src/readelf.c:63
-msgid ""
-"Display DWARF section content. SECTION can be one of abbrev, aranges, "
-"frame, info, loc, line, pubnames, str, or macinfo."
-msgstr ""
-
-#: src/readelf.c:65
-msgid "Display the core notes"
-msgstr ""
-
-#: src/readelf.c:67
-msgid "Display architecture specific information (if any)"
-msgstr ""
-
-#: src/readelf.c:69
-msgid "Output control:"
-msgstr ""
-
-#: src/readelf.c:75
-msgid "Print information from ELF file in human-readable form."
-msgstr ""
-
-#: src/readelf.c:79 src/elflint.c:66
-msgid "FILE..."
-msgstr ""
-
-#: src/readelf.c:222 src/elflint.c:149
-msgid "cannot open input file"
-msgstr ""
-
-#: src/readelf.c:229 src/elflint.c:156
-#, c-format
-msgid "cannot generate Elf descriptor: %s\n"
-msgstr ""
-
-#: src/readelf.c:237
-#, c-format
-msgid "error while closing Elf descriptor: %s"
-msgstr ""
-
-#: src/readelf.c:336
-#, c-format
-msgid "Unknown DWARF debug section `%s'.\n"
-msgstr ""
-
-#: src/readelf.c:436 src/elflint.c:304
-#, c-format
-msgid " error while freeing sub-ELF descriptor: %s\n"
-msgstr ""
-
-#: src/readelf.c:444
-msgid "cannot stat input file"
-msgstr ""
-
-#: src/readelf.c:446
-msgid "input file is empty"
-msgstr ""
-
-#: src/readelf.c:449 src/elflint.c:312
-msgid "Not an ELF file - it has the wrong magic bytes at the start"
-msgstr ""
-
-#: src/readelf.c:476
-#, c-format
-msgid "cannot read ELF header: %s"
-msgstr ""
-
-#: src/readelf.c:483
-msgid "cannot create EBL handle"
-msgstr ""
-
-#: src/readelf.c:490 src/strip.c:530 src/ldgeneric.c:592 src/ldgeneric.c:1026
-#, c-format
-msgid "cannot determine number of sections: %s"
-msgstr ""
-
-#: src/readelf.c:532
-msgid "NONE (None)"
-msgstr ""
-
-#: src/readelf.c:533
-msgid "REL (Relocatable file)"
-msgstr ""
-
-#: src/readelf.c:534
-msgid "EXEC (Executable file)"
-msgstr ""
-
-#: src/readelf.c:535
-msgid "DYN (Shared object file)"
-msgstr ""
-
-#: src/readelf.c:536
-msgid "CORE (Core file)"
-msgstr ""
-
-#: src/readelf.c:541
-#, c-format
-msgid "OS Specific: (%x)\n"
-msgstr ""
-
-#: src/readelf.c:543
-#, c-format
-msgid "Processor Specific: (%x)\n"
-msgstr ""
-
-#: src/readelf.c:556
-msgid ""
-"ELF Header:\n"
-" Magic: "
-msgstr ""
-
-#: src/readelf.c:560
-#, c-format
-msgid ""
-"\n"
-" Class: %s\n"
-msgstr ""
-
-#: src/readelf.c:565
-#, c-format
-msgid " Data: %s\n"
-msgstr ""
-
-#: src/readelf.c:571
-#, c-format
-msgid " Version: %hhd %s\n"
-msgstr ""
-
-#: src/readelf.c:573 src/readelf.c:589
-msgid "(current)"
-msgstr ""
-
-#: src/readelf.c:576
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr ""
-
-#: src/readelf.c:579
-#, c-format
-msgid " ABI Version: %hhd\n"
-msgstr ""
-
-#: src/readelf.c:582
-msgid " Type: "
-msgstr ""
-
-#: src/readelf.c:585
-#, c-format
-msgid " Machine: %s\n"
-msgstr ""
-
-#: src/readelf.c:587
-#, c-format
-msgid " Version: %d %s\n"
-msgstr ""
-
-#: src/readelf.c:591
-#, c-format
-msgid " Entry point address: %#<PRIx64>\n"
-msgstr ""
-
-#: src/readelf.c:594
-#, c-format
-msgid " Start of program headers: %<PRId64> %s\n"
-msgstr ""
-
-#: src/readelf.c:595 src/readelf.c:598
-msgid "(bytes into file)"
-msgstr ""
-
-#: src/readelf.c:597
-#, c-format
-msgid " Start of section headers: %<PRId64> %s\n"
-msgstr ""
-
-#: src/readelf.c:600
-#, c-format
-msgid " Flags: %s\n"
-msgstr ""
-
-#: src/readelf.c:603
-#, c-format
-msgid " Size of this header: %<PRId16> %s\n"
-msgstr ""
-
-#: src/readelf.c:604 src/readelf.c:607 src/readelf.c:613
-msgid "(bytes)"
-msgstr ""
-
-#: src/readelf.c:606
-#, c-format
-msgid " Size of program header entries: %<PRId16> %s\n"
-msgstr ""
-
-#: src/readelf.c:609
-#, c-format
-msgid " Number of program headers entries: %<PRId16>\n"
-msgstr ""
-
-#: src/readelf.c:612
-#, c-format
-msgid " Size of section header entries: %<PRId16> %s\n"
-msgstr ""
-
-#: src/readelf.c:615
-#, c-format
-msgid " Number of section headers entries: %<PRId16>"
-msgstr ""
-
-#: src/readelf.c:624
-#, c-format
-msgid " (%<PRIu32> in [0].sh_size)"
-msgstr ""
-
-#: src/readelf.c:627 src/readelf.c:643
-msgid " ([0] not available)"
-msgstr ""
-
-#: src/readelf.c:639
-#, c-format
-msgid " (%<PRIu32> in [0].sh_link)"
-msgstr ""
-
-#: src/readelf.c:647
-#, c-format
-msgid ""
-" Section header string table index: XINDEX%s\n"
-"\n"
-msgstr ""
-
-#: src/readelf.c:651
-#, c-format
-msgid ""
-" Section header string table index: %<PRId16>\n"
-"\n"
-msgstr ""
-
-#: src/readelf.c:683
-#, c-format
-msgid ""
-"There are %d section headers, starting at offset %#<PRIx64>:\n"
-"\n"
-msgstr ""
-
-#: src/readelf.c:693
-msgid "Section Headers:"
-msgstr ""
-
-#: src/readelf.c:696
-msgid ""
-"[Nr] Name Type Addr Off Size ES Flags Lk "
-"Inf Al"
-msgstr ""
-
-#: src/readelf.c:698
-msgid ""
-"[Nr] Name Type Addr Off Size ES "
-"Flags Lk Inf Al"
-msgstr ""
-
-#: src/readelf.c:710 src/readelf.c:862
-#, c-format
-msgid "cannot get section: %s"
-msgstr ""
-
-#: src/readelf.c:716 src/readelf.c:869
-#, c-format
-msgid "cannot get section header: %s"
-msgstr ""
-
-#: src/readelf.c:775
-msgid "Program Headers:"
-msgstr ""
-
-#: src/readelf.c:777
-msgid ""
-" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
-msgstr ""
-
-#: src/readelf.c:780
-msgid ""
-" Type Offset VirtAddr PhysAddr FileSiz "
-"MemSiz Flg Align"
-msgstr ""
-
-#: src/readelf.c:820
-#, c-format
-msgid "\t[Requesting program interpreter: %s]\n"
-msgstr ""
-
-#: src/readelf.c:836
-msgid ""
-"\n"
-" Section to Segment mapping:\n"
-" Segment Sections..."
-msgstr ""
-
-#: src/readelf.c:849
-#, c-format
-msgid "cannot get program header: %s"
-msgstr ""
-
-#: src/readelf.c:952
-#, c-format
-msgid ""
-"\n"
-"COMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n"
-msgid_plural ""
-"\n"
-"COMDAT section group [%2zu] '%s' with signature '%s' contains %zu entries:\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:957
-#, c-format
-msgid ""
-"\n"
-"Section group [%2zu] '%s' with signature '%s' contains %zu entry:\n"
-msgid_plural ""
-"\n"
-"Section group [%2zu] '%s' with signature '%s' contains %zu entries:\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:965
-msgid "<INVALID SYMBOL>"
-msgstr ""
-
-#: src/readelf.c:977
-#, c-format
-msgid " [%2u] <INVALID SECTION>\n"
-msgstr ""
-
-#: src/readelf.c:982
-msgid "<INVALID SECTION>"
-msgstr ""
-
-#: src/readelf.c:1133
-#, c-format
-msgid ""
-"\n"
-"Dynamic segment contains %lu entry:\n"
-" Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
-msgid_plural ""
-"\n"
-"Dynamic segment contains %lu entries:\n"
-" Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:1145
-msgid " Type Value\n"
-msgstr ""
-
-#: src/readelf.c:1171
-#, c-format
-msgid "Shared library: [%s]\n"
-msgstr ""
-
-#: src/readelf.c:1176
-#, c-format
-msgid "Library soname: [%s]\n"
-msgstr ""
-
-#: src/readelf.c:1181
-#, c-format
-msgid "Library rpath: [%s]\n"
-msgstr ""
-
-#: src/readelf.c:1186
-#, c-format
-msgid "Library runpath: [%s]\n"
-msgstr ""
-
-#: src/readelf.c:1206
-#, c-format
-msgid "%<PRId64> (bytes)\n"
-msgstr ""
-
-#: src/readelf.c:1325 src/readelf.c:1482
-#, c-format
-msgid ""
-"\n"
-"Invalid symbol table at offset %#0<PRIx64>\n"
-msgstr ""
-
-#: src/readelf.c:1353
-#, c-format
-msgid ""
-"\n"
-"Relocation section [%2u] '%s' for section [%2u] '%s' at offset %#0<PRIx64> "
-"contains %d entry:\n"
-msgid_plural ""
-"\n"
-"Relocation section [%2u] '%s' for section [%2u] '%s' at offset %#0<PRIx64> "
-"contains %d entries:\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:1368
-#, c-format
-msgid ""
-"\n"
-"Relocation section [%2u] '%s' at offset %#0<PRIx64> contains %d entry:\n"
-msgid_plural ""
-"\n"
-"Relocation section [%2u] '%s' at offset %#0<PRIx64> contains %d entries:\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:1378
-msgid " Offset Type Value Name\n"
-msgstr ""
-
-#: src/readelf.c:1380
-msgid " Offset Type Value Name\n"
-msgstr ""
-
-#: src/readelf.c:1407 src/readelf.c:1418 src/readelf.c:1436 src/readelf.c:1448
-#: src/readelf.c:1551 src/readelf.c:1563 src/readelf.c:1582 src/readelf.c:1595
-msgid "<INVALID RELOC>"
-msgstr ""
-
-#: src/readelf.c:1408 src/readelf.c:1552
-msgid "INVALID SYMBOL"
-msgstr ""
-
-#: src/readelf.c:1437 src/readelf.c:1583
-msgid "INVALID SECTION"
-msgstr ""
-
-#: src/readelf.c:1511
-#, c-format
-msgid ""
-"\n"
-"Relocation section [%2zu] '%s' for section [%2u] '%s' at offset %#0<PRIx64> "
-"contains %d entry:\n"
-msgid_plural ""
-"\n"
-"Relocation section [%2zu] '%s' for section [%2u] '%s' at offset %#0<PRIx64> "
-"contains %d entries:\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:1523
-msgid " Offset Type Value Addend Name\n"
-msgstr ""
-
-#: src/readelf.c:1525
-msgid " Offset Type Value Addend Name\n"
-msgstr ""
-
-#: src/readelf.c:1688
-#, c-format
-msgid ""
-"\n"
-"Symbol table [%2u] '%s' contains %u entry:\n"
-msgid_plural ""
-"\n"
-"Symbol table [%2u] '%s' contains %u entries:\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:1693
-#, c-format
-msgid " %lu local symbol String table: [%2u] '%s'\n"
-msgid_plural " %lu local symbols String table: [%2u] '%s'\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:1703
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: src/readelf.c:1705
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: src/readelf.c:1725
-#, c-format
-msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
-msgstr ""
-
-#: src/readelf.c:1815
-msgid "bad dynamic symbol"
-msgstr ""
-
-#: src/readelf.c:1898
-msgid "none"
-msgstr ""
-
-#: src/readelf.c:1915
-msgid "| <unknown>"
-msgstr ""
-
-#: src/readelf.c:1943
-#, c-format
-msgid ""
-"\n"
-"Version needs section [%2u] '%s' contains %d entry:\n"
-" Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
-msgid_plural ""
-"\n"
-"Version needs section [%2u] '%s' contains %d entries:\n"
-" Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:1970
-#, c-format
-msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
-msgstr ""
-
-#: src/readelf.c:1985
-#, c-format
-msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
-msgstr ""
-
-#: src/readelf.c:2020
-#, c-format
-msgid ""
-"\n"
-"Version definition section [%2u] '%s' contains %d entry:\n"
-" Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
-msgid_plural ""
-"\n"
-"Version definition section [%2u] '%s' contains %d entries:\n"
-" Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:2055
-#, c-format
-msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n"
-msgstr ""
-
-#: src/readelf.c:2070
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr ""
-
-#: src/readelf.c:2319
-#, c-format
-msgid ""
-"\n"
-"Version symbols section [%2u] '%s' contains %d entry:\n"
-" Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'"
-msgid_plural ""
-"\n"
-"Version symbols section [%2u] '%s' contains %d entries:\n"
-" Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:2351
-msgid " 0 *local* "
-msgstr ""
-
-#: src/readelf.c:2356
-msgid " 1 *global* "
-msgstr ""
-
-#: src/readelf.c:2412
-#, c-format
-msgid "cannot get data for section %d: %s"
-msgstr ""
-
-#: src/readelf.c:2422
-#, c-format
-msgid ""
-"\n"
-"Histogram for bucket list length in section [%2u] '%s' (total of %d "
-"bucket):\n"
-" Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
-msgid_plural ""
-"\n"
-"Histogram for bucket list length in section [%2u] '%s' (total of %d "
-"buckets):\n"
-" Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:2467
-#, c-format
-msgid " Length Number % of total Coverage"
-msgstr ""
-
-#: src/readelf.c:2468
-#, c-format
-msgid " 0 %6<PRIu32> %5.1f%%\n"
-msgstr ""
-
-#: src/readelf.c:2474
-#, c-format
-msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-msgstr ""
-
-#: src/readelf.c:2488
-#, c-format
-msgid ""
-" Average number of tests: successful lookup: %f\n"
-" unsuccessful lookup: %f\n"
-msgstr ""
-
-#: src/readelf.c:2523
-#, c-format
-msgid ""
-"\n"
-"Library list section [%2zu] '%s' at offset %#0<PRIx64> contains %d entry:\n"
-msgid_plural ""
-"\n"
-"Library list section [%2zu] '%s' at offset %#0<PRIx64> contains %d entries:\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:2537
-msgid ""
-" Library Time Stamp Checksum Version "
-"Flags"
-msgstr ""
-
-#: src/readelf.c:2648
-#, c-format
-msgid "unknown tag %hx"
-msgstr ""
-
-#: src/readelf.c:2650
-#, c-format
-msgid "unknown user tag %hx"
-msgstr ""
-
-#: src/readelf.c:2833
-#, c-format
-msgid "unknown attribute %hx"
-msgstr ""
-
-#: src/readelf.c:2836
-#, c-format
-msgid "unknown user attribute %hx"
-msgstr ""
-
-#: src/readelf.c:2882
-#, c-format
-msgid "unknown form %<PRIx64>"
-msgstr ""
-
-#: src/readelf.c:3255
-#, c-format
-msgid ""
-"\n"
-"DWARF section '%s' at offset %#<PRIx64>:\n"
-" [ Code]\n"
-msgstr ""
-
-#: src/readelf.c:3267
-#, c-format
-msgid " *** error while reading abbreviation: %s\n"
-msgstr ""
-
-#: src/readelf.c:3281
-#, c-format
-msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
-msgstr ""
-
-#: src/readelf.c:3284
-msgid "yes"
-msgstr ""
-
-#: src/readelf.c:3284
-msgid "no"
-msgstr ""
-
-#: src/readelf.c:3316
-#, c-format
-msgid "cannot get .debug_aranges content: %s"
-msgstr ""
-
-#: src/readelf.c:3321
-#, c-format
-msgid ""
-"\n"
-"DWARF section '%s' at offset %#<PRIx64> contains %zu entry:\n"
-msgid_plural ""
-"\n"
-"DWARF section '%s' at offset %#<PRIx64> contains %zu entries:\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:3351
-#, c-format
-msgid " [%*zu] ???\n"
-msgstr ""
-
-#: src/readelf.c:3353
-#, c-format
-msgid ""
-" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
-msgstr ""
-
-#: src/readelf.c:3387
-#, c-format
-msgid "cannot get attribute code: %s"
-msgstr ""
-
-#: src/readelf.c:3395
-#, c-format
-msgid "cannot get attribute form: %s"
-msgstr ""
-
-#: src/readelf.c:3407
-#, c-format
-msgid "cannot get attribute value: %s"
-msgstr ""
-
-#: src/readelf.c:3506
-#, c-format
-msgid ""
-"\n"
-"DWARF section '%s' at offset %#<PRIx64>:\n"
-" [Offset]\n"
-msgstr ""
-
-#: src/readelf.c:3531
-#, c-format
-msgid ""
-" Compilation unit at offset %<PRIu64>:\n"
-" Version: %<PRIu16>, Abbreviation section offset: %<PRIu64>, Address size: %"
-"<PRIu8>, Offset size: %<PRIu8>\n"
-msgstr ""
-
-#: src/readelf.c:3548
-#, c-format
-msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s"
-msgstr ""
-
-#: src/readelf.c:3559
-#, c-format
-msgid "cannot get DIE offset: %s"
-msgstr ""
-
-#: src/readelf.c:3567
-#, c-format
-msgid "cannot get tag of DIE at offset %<PRIu64> in section '%s': %s"
-msgstr ""
-
-#: src/readelf.c:3680
-#, c-format
-msgid "cannot get next DIE: %s\n"
-msgstr ""
-
-#: src/readelf.c:3687
-#, c-format
-msgid "cannot get next DIE: %s"
-msgstr ""
-
-#: src/readelf.c:3709 src/readelf.c:4120 src/readelf.c:4155 src/readelf.c:4324
-#, c-format
-msgid ""
-"\n"
-"DWARF section '%s' at offset %#<PRIx64>:\n"
-msgstr ""
-
-#: src/readelf.c:3721
-#, c-format
-msgid "cannot get line data section data: %s"
-msgstr ""
-
-#: src/readelf.c:3741
-#, c-format
-msgid "invalid data in section [%zu] '%s'"
-msgstr ""
-
-#: src/readelf.c:3784
-#, c-format
-msgid ""
-"\n"
-" Length: %<PRIu64>\n"
-" DWARF version: %<PRIuFAST16>\n"
-" Prologue length: %<PRIu64>\n"
-" Minimum instruction length: %<PRIuFAST8>\n"
-" Initial value if '%s': %<PRIuFAST8>\n"
-" Line base: %<PRIdFAST8>\n"
-" Line range: %<PRIuFAST8>\n"
-" Opcode base: %<PRIuFAST8>\n"
-"\n"
-"Opcodes:\n"
-msgstr ""
-
-#: src/readelf.c:3810
-#, c-format
-msgid " [%*<PRIuFAST8>] %hhu argument\n"
-msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:3818
-msgid ""
-"\n"
-"Directory table:"
-msgstr ""
-
-#: src/readelf.c:3834
-msgid ""
-"\n"
-"File name table:\n"
-" Entry Dir Time Size Name"
-msgstr ""
-
-#: src/readelf.c:3863
-msgid ""
-"\n"
-"Line number statements:"
-msgstr ""
-
-#: src/readelf.c:3923
-#, c-format
-msgid " special opcode %u: address+%u = %#<PRIx64>, line%+d = %zu\n"
-msgstr ""
-
-#: src/readelf.c:3943
-#, c-format
-msgid " extended opcode %u: "
-msgstr ""
-
-#: src/readelf.c:3948
-msgid "end of sequence"
-msgstr ""
-
-#: src/readelf.c:3961
-#, c-format
-msgid "set address to %#<PRIx64>\n"
-msgstr ""
-
-#: src/readelf.c:3981
-#, c-format
-msgid "define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
-msgstr ""
-
-#: src/readelf.c:3990
-msgid "unknown opcode"
-msgstr ""
-
-#: src/readelf.c:4002
-msgid " copy"
-msgstr ""
-
-#: src/readelf.c:4010
-#, c-format
-msgid " advance address by %u to %#<PRIx64>\n"
-msgstr ""
-
-#: src/readelf.c:4020
-#, c-format
-msgid " advance line by constant %d to %<PRId64>\n"
-msgstr ""
-
-#: src/readelf.c:4028
-#, c-format
-msgid " set file to %<PRIu64>\n"
-msgstr ""
-
-#: src/readelf.c:4038
-#, c-format
-msgid " set column to %<PRIu64>\n"
-msgstr ""
-
-#: src/readelf.c:4045
-#, c-format
-msgid " set '%s' to %<PRIuFAST8>\n"
-msgstr ""
-
-#: src/readelf.c:4051
-msgid " set basic block flag"
-msgstr ""
-
-#: src/readelf.c:4059
-#, c-format
-msgid " advance address by constant %u to %#<PRIx64>\n"
-msgstr ""
-
-#: src/readelf.c:4072
-#, c-format
-msgid " advance address by fixed value %u to %#<PRIx64>\n"
-msgstr ""
-
-#: src/readelf.c:4079
-msgid " set prologue end flag"
-msgstr ""
-
-#: src/readelf.c:4084
-msgid " set epilogue begin flag"
-msgstr ""
-
-#: src/readelf.c:4093
-#, c-format
-msgid " unknown opcode with %<PRIu8> parameter:"
-msgid_plural " unknown opcode with %<PRIu8> parameters:"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/readelf.c:4165
-#, c-format
-msgid "cannot get macro information section data: %s"
-msgstr ""
-
-#: src/readelf.c:4244
-#, c-format
-msgid "%*s*** non-terminated string at end of section"
-msgstr ""
-
-#: src/readelf.c:4311
-#, c-format
-msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
-msgstr ""
-
-#: src/readelf.c:4346
-#, c-format
-msgid ""
-"\n"
-"DWARF section '%s' at offset %#<PRIx64>:\n"
-" %*s String\n"
-msgstr ""
-
-#: src/readelf.c:4359
-#, c-format
-msgid " *** error while reading strings: %s\n"
-msgstr ""
-
-#: src/readelf.c:4384
-#, c-format
-msgid "cannot get debug context descriptor: %s"
-msgstr ""
-
-#: src/readelf.c:4461
-#, c-format
-msgid ""
-"\n"
-"Note segment of %<PRId64> bytes at offset %#0<PRIx64>:\n"
-msgstr ""
-
-#: src/readelf.c:4468
-#, c-format
-msgid "cannot get content of note section: %s"
-msgstr ""
-
-#: src/readelf.c:4471
-msgid " Owner Data size Type\n"
-msgstr ""
-
-#: src/readelf.c:4510
-#, c-format
-msgid " %-13.*s %9<PRId32> %s\n"
-msgstr ""
-
-#: src/size.c:52
-msgid ""
-"Use the output format FORMAT. FORMAT can be `bsd' or `sysv'. The default "
-"is `bsd'"
-msgstr ""
-
-#: src/size.c:53
-msgid "Same as `--format=sysv'"
-msgstr ""
-
-#: src/size.c:54
-msgid "Same as `--format=bsd'"
-msgstr ""
-
-#: src/size.c:56
-msgid "Same as `--radix=10'"
-msgstr ""
-
-#: src/size.c:57
-msgid "Same as `--radix=8'"
-msgstr ""
-
-#: src/size.c:58
-msgid "Same as `--radix=16'"
-msgstr ""
-
-#: src/size.c:59
-msgid "Similar to `--format=sysv' output but in one line"
-msgstr ""
-
-#: src/size.c:62
-msgid "Print size and permission flags for loadable segments"
-msgstr ""
-
-#: src/size.c:63
-msgid "Display the total sizes (bsd only)"
-msgstr ""
-
-#: src/size.c:68
-msgid "List section sizes of FILEs (a.out by default)."
-msgstr ""
-
-#: src/size.c:251
-#, c-format
-msgid "Invalid format: %s"
-msgstr ""
-
-#: src/size.c:262
-#, c-format
-msgid "Invalid radix: %s"
-msgstr ""
-
-#: src/size.c:336
-#, c-format
-msgid "%s: file format not recognized"
-msgstr ""
-
-#: src/size.c:407 src/strip.c:1766
-#, c-format
-msgid "while closing `%s'"
-msgstr ""
-
-#: src/size.c:447 src/size.c:589
-#, c-format
-msgid " (ex %s)"
-msgstr ""
-
-#: src/size.c:614
-msgid "(TOTALS)\n"
-msgstr ""
-
-#: src/strip.c:58
-msgid "Place stripped output into FILE"
-msgstr ""
-
-#: src/strip.c:59
-msgid "Extract the removed sections into FILE"
-msgstr ""
-
-#: src/strip.c:62
-msgid "Remove all debugging symbols"
-msgstr ""
-
-#: src/strip.c:64
-msgid "Copy modified/access timestamps to the output"
-msgstr ""
-
-#: src/strip.c:66
-msgid "Remove .comment section"
-msgstr ""
-
-#: src/strip.c:68
-msgid "Relax a few rules to handle slightly broken ELF files"
-msgstr ""
-
-#: src/strip.c:73
-msgid "Discard symbols from object files."
-msgstr ""
-
-#: src/strip.c:164
-msgid "Only one input file allowed together with '-o' and '-f'"
-msgstr ""
-
-#: src/strip.c:262 src/strip.c:286
-#, c-format
-msgid "cannot stat input file \"%s\""
-msgstr ""
-
-#: src/strip.c:276
-#, c-format
-msgid "while opening \"%s\""
-msgstr ""
-
-#: src/strip.c:313
-#, c-format
-msgid "%s: cannot use -o when stripping archive"
-msgstr ""
-
-#: src/strip.c:419 src/strip.c:454
-#, c-format
-msgid "cannot open `%s'"
-msgstr ""
-
-#: src/strip.c:434
-msgid "cannot open EBL backend"
-msgstr ""
-
-#: src/strip.c:482 src/strip.c:508
-#, c-format
-msgid "cannot create new file `%s': %s"
-msgstr ""
-
-#: src/strip.c:569
-#, c-format
-msgid "illformed file `%s'"
-msgstr ""
-
-#: src/strip.c:835 src/strip.c:944
-#, c-format
-msgid "while generating output file: %s"
-msgstr ""
-
-#: src/strip.c:884 src/strip.c:1622
-#, c-format
-msgid "%s: error while creating ELF header: %s"
-msgstr ""
-
-#: src/strip.c:893 src/strip.c:1644
-#, c-format
-msgid "while writing `%s': %s"
-msgstr ""
-
-#: src/strip.c:904
-#, c-format
-msgid "while creating '%s'"
-msgstr ""
-
-#: src/strip.c:916
-msgid "while computing checksum for debug information"
-msgstr ""
-
-#: src/strip.c:931
-#, c-format
-msgid "while preparing output for `%s'"
-msgstr ""
-
-#: src/strip.c:985 src/strip.c:1042
-#, c-format
-msgid "while create section header section: %s"
-msgstr ""
-
-#: src/strip.c:991
-#, c-format
-msgid "cannot allocate section data: %s"
-msgstr ""
-
-#: src/strip.c:1051
-#, c-format
-msgid "while create section header string table: %s"
-msgstr ""
-
-#: src/strip.c:1630
-#, c-format
-msgid "%s: error while reading the file: %s"
-msgstr ""
-
-#: src/strip.c:1672 src/strip.c:1679
-#, c-format
-msgid "error while finishing `%s': %s"
-msgstr ""
-
-#: src/strip.c:1702 src/strip.c:1759
-#, c-format
-msgid "cannot set access and modification date of \"%s\""
-msgstr ""
-
-#: src/ld.c:71
-msgid "Include whole archives in the output from now on."
-msgstr ""
-
-#: src/ld.c:73
-msgid "Stop including the whole arhives in the output."
-msgstr ""
-
-#: src/ld.c:75 src/ld.c:116 src/ld.c:124
-msgid "FILE"
-msgstr ""
-
-#: src/ld.c:75
-msgid "Place output in FILE."
-msgstr ""
-
-#: src/ld.c:77
-msgid "LEVEL"
-msgstr ""
-
-#: src/ld.c:78
-msgid "Set optimization level to LEVEL."
-msgstr ""
-
-#: src/ld.c:80
-msgid "Verbose messages."
-msgstr ""
-
-#: src/ld.c:81
-msgid "Trace file opens."
-msgstr ""
-
-#: src/ld.c:83
-msgid "Trade speed for less memory usage"
-msgstr ""
-
-#: src/ld.c:87
-msgid "Object is marked to not use default search path at runtime."
-msgstr ""
-
-#: src/ld.c:89
-msgid "Same as --whole-archive."
-msgstr ""
-
-#: src/ld.c:90
-msgid ""
-"Default rules of extracting from archive; weak references are not enough."
-msgstr ""
-
-#: src/ld.c:93
-msgid "Weak references cause extraction from archive."
-msgstr ""
-
-#: src/ld.c:95
-msgid "Allow multiple definitions; first is used."
-msgstr ""
-
-#: src/ld.c:97
-msgid "Disallow/allow undefined symbols in DSOs."
-msgstr ""
-
-#: src/ld.c:100
-msgid "Object requires immediate handling of $ORIGIN."
-msgstr ""
-
-#: src/ld.c:102
-msgid "Relocation will not be processed lazily."
-msgstr ""
-
-#: src/ld.c:104
-msgid "Object cannot be unloaded at runtime."
-msgstr ""
-
-#: src/ld.c:106
-msgid "Mark object to be initialized first."
-msgstr ""
-
-#: src/ld.c:108
-msgid "Enable/disable lazy-loading flag for following dependencies."
-msgstr ""
-
-#: src/ld.c:110
-msgid "Mark object as not loadable with 'dlopen'."
-msgstr ""
-
-#: src/ld.c:112
-msgid "Ignore/record dependencies on unused DSOs."
-msgstr ""
-
-#: src/ld.c:114
-msgid "Generated DSO will be a system library."
-msgstr ""
-
-#: src/ld.c:118
-msgid "Start a group."
-msgstr ""
-
-#: src/ld.c:119
-msgid "End a group."
-msgstr ""
-
-#: src/ld.c:121
-msgid "PATH"
-msgstr ""
-
-#: src/ld.c:122
-msgid "Add PATH to list of directories files are searched in."
-msgstr ""
-
-#: src/ld.c:124
-msgid "Use linker script in FILE."
-msgstr ""
-
-#: src/ld.c:126
-msgid "ADDRESS"
-msgstr ""
-
-#: src/ld.c:126
-msgid "Set entry point address."
-msgstr ""
-
-#: src/ld.c:130
-msgid "Do not link against shared libraries."
-msgstr ""
-
-#: src/ld.c:133
-msgid "Prefer linking against shared libraries."
-msgstr ""
-
-#: src/ld.c:135
-msgid "Export all dynamic symbols."
-msgstr ""
-
-#: src/ld.c:137
-msgid "Strip all symbols."
-msgstr ""
-
-#: src/ld.c:138
-msgid "Strip debugging symbols."
-msgstr ""
-
-#: src/ld.c:141
-msgid "Assume pagesize for the target system to be SIZE."
-msgstr ""
-
-#: src/ld.c:146
-msgid "Set runtime DSO search path."
-msgstr ""
-
-#: src/ld.c:148
-msgid "Set link time DSO search path."
-msgstr ""
-
-#: src/ld.c:150
-msgid "Ignore LD_LIBRARY_PATH environment variable."
-msgstr ""
-
-#: src/ld.c:153
-msgid "Read version information from FILE."
-msgstr ""
-
-#: src/ld.c:155
-msgid "Set emulation to NAME."
-msgstr ""
-
-#: src/ld.c:157
-msgid "Generate dynamic shared object."
-msgstr ""
-
-#: src/ld.c:158
-msgid "Generate relocatable object."
-msgstr ""
-
-#: src/ld.c:162
-msgid "Causes symbol not assigned to a version be reduced to local."
-msgstr ""
-
-#: src/ld.c:164
-msgid "Remove unused sections."
-msgstr ""
-
-#: src/ld.c:166
-msgid "Don't remove unused sections."
-msgstr ""
-
-#: src/ld.c:168
-msgid "Set soname of shared object."
-msgstr ""
-
-#: src/ld.c:169
-msgid "Set the dynamic linker name."
-msgstr ""
-
-#: src/ld.c:173
-msgid "Add/suppress addition indentifying link-editor to .comment section"
-msgstr ""
-
-#: src/ld.c:177
-msgid "Select to get parser debug information"
-msgstr ""
-
-#: src/ld.c:184
-msgid "Combine object and archive files."
-msgstr ""
-
-#: src/ld.c:187
-msgid "[FILE]..."
-msgstr ""
-
-#: src/ld.c:319
-msgid "At least one input file needed"
-msgstr ""
-
-#: src/ld.c:330
-msgid "error while preparing linking"
-msgstr ""
-
-#: src/ld.c:337
-#, c-format
-msgid "cannot open linker script \"%s\""
-msgstr ""
-
-#: src/ld.c:378
-msgid "-( without matching -)"
-msgstr ""
-
-#: src/ld.c:523 src/ld.c:561
-msgid "only one option of -G and -r is allowed"
-msgstr ""
-
-#: src/ld.c:545
-msgid "more than one '-m' parameter"
-msgstr ""
-
-#: src/ld.c:555 src/ld.c:925
-#, c-format
-msgid "unknown option `-%c %s'"
-msgstr ""
-
-#: src/ld.c:597
-#, c-format
-msgid "invalid page size value \"%s\": ignored"
-msgstr ""
-
-#: src/ld.c:706
-msgid "More than one output file name given."
-msgstr ""
-
-#: src/ld.c:723
-#, c-format
-msgid "Invalid optimization level `%s'"
-msgstr ""
-
-#: src/ld.c:764
-msgid "nested -( -) groups are not allowed"
-msgstr ""
-
-#: src/ld.c:783
-msgid "-) without matching -("
-msgstr ""
-
-#: src/ld.c:954
-#, c-format
-msgid "unknown option '-%c %s'"
-msgstr ""
-
-#: src/ld.c:1058
-msgid "could not find input file to determine output file format"
-msgstr ""
-
-#: src/ld.c:1060
-msgid "try again with an appropriate '-m' parameter"
-msgstr ""
-
-#: src/ld.c:1352
-#, c-format
-msgid "cannot read version script \"%s\""
-msgstr ""
-
-#: src/ld.c:1418 src/ld.c:1457
-#, c-format
-msgid "duplicate definition of '%s' in linker script"
-msgstr ""
-
-#: src/ldgeneric.c:179 src/ldgeneric.c:4464
-msgid "cannot create string table"
-msgstr ""
-
-#: src/ldgeneric.c:224
-#, c-format
-msgid "cannot load ld backend library '%s': %s"
-msgstr ""
-
-#: src/ldgeneric.c:234
-#, c-format
-msgid "cannot find init function in ld backend library '%s': %s"
-msgstr ""
-
-#: src/ldgeneric.c:279
-#, c-format
-msgid "%s listed more than once as input"
-msgstr ""
-
-#: src/ldgeneric.c:393
-#, c-format
-msgid "%s (for -l%s)\n"
-msgstr ""
-
-#: src/ldgeneric.c:394
-#, c-format
-msgid "%s (for DT_NEEDED %s)\n"
-msgstr ""
-
-#: src/ldgeneric.c:488
-#, c-format
-msgid "cannot open %s"
-msgstr ""
-
-#: src/ldgeneric.c:510
-#, c-format
-msgid "Warning: type of `%s' changed from %s in %s to %s in %s"
-msgstr ""
-
-#: src/ldgeneric.c:523
-#, c-format
-msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
-msgstr ""
-
-#: src/ldgeneric.c:609
-#, c-format
-msgid "(%s+%#<PRIx64>): multiple definition of %s `%s'\n"
-msgstr ""
-
-#: src/ldgeneric.c:639
-#, c-format
-msgid "(%s+%#<PRIx64>): first defined here\n"
-msgstr ""
-
-#: src/ldgeneric.c:758
-#, c-format
-msgid "%s: cannot get section group data: %s"
-msgstr ""
-
-#: src/ldgeneric.c:779
-#, c-format
-msgid "%s: section '%s' with group flag set does not belong to any group"
-msgstr ""
-
-#: src/ldgeneric.c:824
-#, c-format
-msgid "%s: section [%2d] '%s' is in more than one section group"
-msgstr ""
-
-#: src/ldgeneric.c:1060 src/ldgeneric.c:1252 src/ldgeneric.c:1261
-#: src/ldgeneric.c:1318 src/ldgeneric.c:1327 src/ldgeneric.c:1579
-#: src/ldgeneric.c:1831
-#, c-format
-msgid "%s: invalid ELF file (%s:%d)\n"
-msgstr ""
-
-#: src/ldgeneric.c:1153
-#, c-format
-msgid "%s: only files of type ET_REL might contain section groups"
-msgstr ""
-
-#: src/ldgeneric.c:1187
-#, c-format
-msgid "%s: cannot determine signature of section group [%2zd] '%s': %s"
-msgstr ""
-
-#: src/ldgeneric.c:1206
-#, c-format
-msgid "%s: section '%s' has unknown type: %d"
-msgstr ""
-
-#: src/ldgeneric.c:1555
-#, c-format
-msgid "cannot get descriptor for ELF file (%s:%d): %s\n"
-msgstr ""
-
-#: src/ldgeneric.c:1593
-#, c-format
-msgid "cannot open \"%s\""
-msgstr ""
-
-#: src/ldgeneric.c:1724
-#, c-format
-msgid "cannot read archive `%s': %s"
-msgstr ""
-
-#: src/ldgeneric.c:1846
-#, c-format
-msgid "file of type %s cannot be linked in\n"
-msgstr ""
-
-#: src/ldgeneric.c:1858
-#, c-format
-msgid "%s: cannot get section header string table index: %s\n"
-msgstr ""
-
-#: src/ldgeneric.c:1887
-#, c-format
-msgid "cannot use DSO '%s' when generating relocatable object file"
-msgstr ""
-
-#: src/ldgeneric.c:1972
-#, c-format
-msgid "input file '%s' ignored"
-msgstr ""
-
-#: src/ldgeneric.c:2167
-#, c-format
-msgid "undefined symbol `%s' in %s"
-msgstr ""
-
-#: src/ldgeneric.c:2474 libasm/asm_error.c:110
-msgid "cannot create output file"
-msgstr ""
-
-#: src/ldgeneric.c:2489
-#, c-format
-msgid "cannot create ELF descriptor for output file: %s"
-msgstr ""
-
-#: src/ldgeneric.c:2496
-#, c-format
-msgid "could not create ELF header for output file: %s"
-msgstr ""
-
-#: src/ldgeneric.c:3006 src/ldgeneric.c:3076 src/ldgeneric.c:3112
-#: src/ldgeneric.c:3799 src/ldgeneric.c:3837 src/ldgeneric.c:3869
-#: src/ldgeneric.c:4086 src/ldgeneric.c:4141 src/ldgeneric.c:4388
-#: src/ldgeneric.c:4444 src/ldgeneric.c:4886 src/ldgeneric.c:4898
-#: libasm/asm_end.c:97 libasm/asm_end.c:135 libasm/asm_end.c:151
-#: libasm/asm_end.c:279
-#, c-format
-msgid "cannot create section for output file: %s"
-msgstr ""
-
-#: src/ldgeneric.c:3226
-#, c-format
-msgid "address computation expression contains variable '%s'"
-msgstr ""
-
-#: src/ldgeneric.c:3271
-#, c-format
-msgid ""
-"argument '%<PRIuMAX>' of ALIGN in address computation expression is no power "
-"of two"
-msgstr ""
-
-#: src/ldgeneric.c:3454
-#, c-format
-msgid "cannot find entry symbol \"%s\": defaulting to %#0*<PRIx64>"
-msgstr ""
-
-#: src/ldgeneric.c:3460
-#, c-format
-msgid "no entry symbol specified: defaulting to %#0*<PRIx64>"
-msgstr ""
-
-#: src/ldgeneric.c:3700 src/ldgeneric.c:3721 src/ldgeneric.c:3750
-#: src/ldgeneric.c:5396
-#, c-format
-msgid "cannot create symbol table for output file: %s"
-msgstr ""
-
-#: src/ldgeneric.c:4611 src/ldgeneric.c:5138
-msgid "section index too large in dynamic symbol table"
-msgstr ""
-
-#: src/ldgeneric.c:5031
-#, c-format
-msgid "cannot create versioning section: %s"
-msgstr ""
-
-#: src/ldgeneric.c:5104
-#, c-format
-msgid "cannot create dynamic symbol table for output file: %s"
-msgstr ""
-
-#: src/ldgeneric.c:5245
-#, c-format
-msgid "cannot create hash table section for output file: %s"
-msgstr ""
-
-#: src/ldgeneric.c:5324
-#, c-format
-msgid "cannot create versioning data: %s"
-msgstr ""
-
-#: src/ldgeneric.c:5428 src/ldgeneric.c:5441 src/ldgeneric.c:5505
-#: src/ldgeneric.c:5513
-#, c-format
-msgid "cannot create section header string section: %s"
-msgstr ""
-
-#: src/ldgeneric.c:5435
-msgid "cannot create section header string section"
-msgstr ""
-
-#: src/ldgeneric.c:5588
-#, c-format
-msgid "cannot create program header: %s"
-msgstr ""
-
-#: src/ldgeneric.c:5596
-#, c-format
-msgid "while determining file layout: %s"
-msgstr ""
-
-#: src/ldgeneric.c:5684
-msgid "internal error: nobits section follows nobits section"
-msgstr ""
-
-#: src/ldgeneric.c:6180
-#, c-format
-msgid "cannot get header of 0th section: %s"
-msgstr ""
-
-#: src/ldgeneric.c:6196
-#, c-format
-msgid "cannot update ELF header: %s"
-msgstr ""
-
-#: src/ldgeneric.c:6217
-msgid "linker backend didn't specify function to relocate section"
-msgstr ""
-
-#: src/ldgeneric.c:6229
-#, c-format
-msgid "while writing output file: %s"
-msgstr ""
-
-#: src/ldgeneric.c:6234
-#, c-format
-msgid "while finishing output file: %s"
-msgstr ""
-
-#: src/ldgeneric.c:6240
-msgid "cannot stat output file"
-msgstr ""
-
-#: src/ldgeneric.c:6246 libasm/asm_error.c:113
-msgid "cannot rename output file"
-msgstr ""
-
-#: src/ldgeneric.c:6256
-msgid "WARNING: temporary output file overwritten before linking finished"
-msgstr ""
-
-#: src/ldgeneric.c:6309 src/ldgeneric.c:6320 src/ldgeneric.c:6331
-#: src/ldgeneric.c:6349 src/ldgeneric.c:6362 src/ldgeneric.c:6374
-#, c-format
-msgid "no machine specific '%s' implementation"
-msgstr ""
-
-#: src/ldscript.y:162
-msgid "mode for segment invalid\n"
-msgstr ""
-
-#: src/ldscript.y:430
-#, c-format
-msgid "while reading version script '%s': %s at line %d"
-msgstr ""
-
-#: src/ldscript.y:431
-#, c-format
-msgid "while reading linker script '%s': %s at line %d"
-msgstr ""
-
-#: src/ldscript.y:695
-#, c-format
-msgid "symbol '%s' in declared both local and global for unnamed version"
-msgstr ""
-
-#: src/ldscript.y:697
-#, c-format
-msgid "symbol '%s' in declared both local and global for version '%s'"
-msgstr ""
-
-#: src/ldscript.y:717 src/ldscript.y:724
-msgid "default visibility set as local and global"
-msgstr ""
-
-#: src/elflint.c:53
-msgid "Be extremely strict, flag level 2 features."
-msgstr ""
-
-#: src/elflint.c:54
-msgid "Do not print anything if successful"
-msgstr ""
-
-#: src/elflint.c:56
-msgid ""
-"Binary has been created with GNU ld and is therefore known to be broken in "
-"certain ways"
-msgstr ""
-
-#: src/elflint.c:62
-msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
-msgstr ""
-
-#: src/elflint.c:175
-#, c-format
-msgid "error while closing Elf descriptor: %s\n"
-msgstr ""
-
-#: src/elflint.c:179
-msgid "No errors"
-msgstr ""
-
-#: src/elflint.c:371
-#, c-format
-msgid "e_ident[%d] == %d is no known class\n"
-msgstr ""
-
-#: src/elflint.c:376
-#, c-format
-msgid "e_ident[%d] == %d is no known data encoding\n"
-msgstr ""
-
-#: src/elflint.c:380
-#, c-format
-msgid "unknown ELF header version number e_ident[%d] == %d\n"
-msgstr ""
-
-#: src/elflint.c:385
-#, c-format
-msgid "unsupported OS ABI e_ident[%d] == \"%s\"\n"
-msgstr ""
-
-#: src/elflint.c:391
-#, c-format
-msgid "unsupport ABI version e_ident[%d] == %d\n"
-msgstr ""
-
-#: src/elflint.c:396
-#, c-format
-msgid "e_ident[%zu] is not zero\n"
-msgstr ""
-
-#: src/elflint.c:401
-#, c-format
-msgid "unknown object file type %d\n"
-msgstr ""
-
-#: src/elflint.c:408
-#, c-format
-msgid "unknown machine type %d\n"
-msgstr ""
-
-#: src/elflint.c:412
-msgid "unknown object file version\n"
-msgstr ""
-
-#: src/elflint.c:418
-msgid "invalid program header offset\n"
-msgstr ""
-
-#: src/elflint.c:420
-msgid "executables and DSOs cannot have zero program header offset\n"
-msgstr ""
-
-#: src/elflint.c:424
-msgid "invalid number of program header entries\n"
-msgstr ""
-
-#: src/elflint.c:432
-msgid "invalid section header table offset\n"
-msgstr ""
-
-#: src/elflint.c:435
-msgid "section header table must be present\n"
-msgstr ""
-
-#: src/elflint.c:451
-msgid "invalid number of section header table entries\n"
-msgstr ""
-
-#: src/elflint.c:470 src/elflint.c:476
-msgid "invalid section header index\n"
-msgstr ""
-
-#: src/elflint.c:481
-#, c-format
-msgid "invalid machine flags: %s\n"
-msgstr ""
-
-#: src/elflint.c:488 src/elflint.c:505
-#, c-format
-msgid "invalid ELF header size: %hd\n"
-msgstr ""
-
-#: src/elflint.c:491 src/elflint.c:508
-#, c-format
-msgid "invalid program header size: %hd\n"
-msgstr ""
-
-#: src/elflint.c:494 src/elflint.c:511
-msgid "invalid program header position or size\n"
-msgstr ""
-
-#: src/elflint.c:497 src/elflint.c:514
-#, c-format
-msgid "invalid section header size: %hd\n"
-msgstr ""
-
-#: src/elflint.c:500 src/elflint.c:517
-msgid "invalid section header position or size\n"
-msgstr ""
-
-#: src/elflint.c:566
-#, c-format
-msgid ""
-"section [%2d] '%s': section with SHF_GROUP flag set not part of a section "
-"group\n"
-msgstr ""
-
-#: src/elflint.c:570
-#, c-format
-msgid ""
-"section [%2d] '%s': section group [%2zu] '%s' does not preceed group member\n"
-msgstr ""
-
-#: src/elflint.c:595 src/elflint.c:1015 src/elflint.c:1150 src/elflint.c:1337
-#: src/elflint.c:1584
-#, c-format
-msgid "section [%2d] '%s': cannot get section data\n"
-msgstr ""
-
-#: src/elflint.c:601 src/elflint.c:1344
-#, c-format
-msgid ""
-"section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
-"type is not SHT_STRTAB\n"
-msgstr ""
-
-#: src/elflint.c:633
-#, c-format
-msgid "section [%2zu] '%s': entry size is does not match ElfXX_Sym\n"
-msgstr ""
-
-#: src/elflint.c:642
-#, c-format
-msgid "section [%2d] '%s': cannot get symbol %d: %s\n"
-msgstr ""
-
-#: src/elflint.c:647 src/elflint.c:650 src/elflint.c:653 src/elflint.c:656
-#: src/elflint.c:659 src/elflint.c:662
-#, c-format
-msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n"
-msgstr ""
-
-#: src/elflint.c:665
-#, c-format
-msgid "section [%2d] '%s': XINDEX for zeroth entry not zero\n"
-msgstr ""
-
-#: src/elflint.c:675
-#, c-format
-msgid "section [%2d] '%s': cannot get symbol %zu: %s\n"
-msgstr ""
-
-#: src/elflint.c:682
-#, c-format
-msgid "section [%2d] '%s': symbol %zu: invalid name value\n"
-msgstr ""
-
-#: src/elflint.c:695
-#, c-format
-msgid ""
-"section [%2d] '%s': symbol %zu: too large section index but no extended "
-"section index section\n"
-msgstr ""
-
-#: src/elflint.c:701
-#, c-format
-msgid ""
-"section [%2d] '%s': symbol %zu: XINDEX used for index which would fit in "
-"st_shndx (%<PRIu32>)\n"
-msgstr ""
-
-#: src/elflint.c:713
-#, c-format
-msgid "section [%2d] '%s': symbol %zu: invalid section index\n"
-msgstr ""
-
-#: src/elflint.c:720
-#, c-format
-msgid "section [%2d] '%s': symbol %zu: unknown type\n"
-msgstr ""
-
-#: src/elflint.c:724
-#, c-format
-msgid "section [%2d] '%s': symbol %zu: unknown symbol binding\n"
-msgstr ""
-
-#: src/elflint.c:732
-#, c-format
-msgid ""
-"section [%2d] '%s': symbol %zu: COMMON only allowed in relocatable files\n"
-msgstr ""
-
-#: src/elflint.c:736
-#, c-format
-msgid "section [%2d] '%s': symbol %zu: local COMMON symbols are nonsense\n"
-msgstr ""
-
-#: src/elflint.c:740
-#, c-format
-msgid ""
-"section [%2d] '%s': symbol %zu: function in COMMON section is nonsense\n"
-msgstr ""
-
-#: src/elflint.c:755
-#, c-format
-msgid "section [%2d] '%s': symbol %zu: st_value out of bounds\n"
-msgstr ""
-
-#: src/elflint.c:760 src/elflint.c:784 src/elflint.c:827
-#, c-format
-msgid ""
-"section [%2d] '%s': symbol %zu does not fit completely in referenced section "
-"[%2d] '%s'\n"
-msgstr ""
-
-#: src/elflint.c:768
-#, c-format
-msgid ""
-"section [%2d] '%s': symbol %zu: referenced section [%2d] '%s' does not have "
-"SHF_TLS flag set\n"
-msgstr ""
-
-#: src/elflint.c:778 src/elflint.c:820
-#, c-format
-msgid ""
-"section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section "
-"[%2d] '%s'\n"
-msgstr ""
-
-#: src/elflint.c:805
-#, c-format
-msgid ""
-"section [%2d] '%s': symbol %zu: TLS symbol but no TLS program header entry\n"
-msgstr ""
-
-#: src/elflint.c:813
-#, c-format
-msgid ""
-"section [%2d] '%s': symbol %zu: st_value short of referenced section [%2d] '%"
-"s'\n"
-msgstr ""
-
-#: src/elflint.c:840
-#, c-format
-msgid ""
-"section [%2d] '%s': symbol %zu: local symbol outside range described in "
-"sh_info\n"
-msgstr ""
-
-#: src/elflint.c:847
-#, c-format
-msgid ""
-"section [%2d] '%s': symbol %zu: non-local symbol outside range described in "
-"sh_info\n"
-msgstr ""
-
-#: src/elflint.c:854
-#, c-format
-msgid "section [%2d] '%s': symbol %zu: non-local section symbol\n"
-msgstr ""
-
-#: src/elflint.c:883
-#, c-format
-msgid ""
-"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
-"match .got section address %#<PRIx64>\n"
-msgstr ""
-
-#: src/elflint.c:890
-#, c-format
-msgid ""
-"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
-"match .got section size %<PRIu64>\n"
-msgstr ""
-
-#: src/elflint.c:901
-#, c-format
-msgid ""
-"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
-"section\n"
-msgstr ""
-
-#: src/elflint.c:920
-#, c-format
-msgid ""
-"section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
-"segment address %#<PRIx64>\n"
-msgstr ""
-
-#: src/elflint.c:927
-#, c-format
-msgid ""
-"section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
-"segment size %<PRIu64>\n"
-msgstr ""
-
-#: src/elflint.c:980
-#, c-format
-msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"
-msgstr ""
-
-#: src/elflint.c:1022 src/elflint.c:1157
-#, c-format
-msgid "section [%2d] '%s': invalid destination section index\n"
-msgstr ""
-
-#: src/elflint.c:1035 src/elflint.c:1170
-#, c-format
-msgid "section [%2d] '%s': invalid destination section type\n"
-msgstr ""
-
-#: src/elflint.c:1043 src/elflint.c:1178
-#, c-format
-msgid "section [%2d] '%s': sh_info should be zero\n"
-msgstr ""
-
-#: src/elflint.c:1050 src/elflint.c:1185
-#, c-format
-msgid "section [%2d] '%s': no relocations for merge-able sections possible\n"
-msgstr ""
-
-#: src/elflint.c:1057
-#, c-format
-msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n"
-msgstr ""
-
-#: src/elflint.c:1074 src/elflint.c:1209
-#, c-format
-msgid "section [%2d] '%s': cannot get relocation %zu: %s\n"
-msgstr ""
-
-#: src/elflint.c:1081 src/elflint.c:1216
-#, c-format
-msgid "section [%2d] '%s': relocation %zu: invalid type\n"
-msgstr ""
-
-#: src/elflint.c:1084 src/elflint.c:1219
-#, c-format
-msgid ""
-"section [%2d] '%s': relocation %zu: relocation type invalid for the file "
-"type\n"
-msgstr ""
-
-#: src/elflint.c:1092 src/elflint.c:1227
-#, c-format
-msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n"
-msgstr ""
-
-#: src/elflint.c:1107 src/elflint.c:1242
-#, c-format
-msgid ""
-"section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
-"be used with %s\n"
-msgstr ""
-
-#: src/elflint.c:1122 src/elflint.c:1258
-#, c-format
-msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n"
-msgstr ""
-
-#: src/elflint.c:1192
-#, c-format
-msgid "section [%2d] '%s': section entry size does not match ElfXX_Rel\n"
-msgstr ""
-
-#: src/elflint.c:1328
-msgid "more than one dynamic section present\n"
-msgstr ""
-
-#: src/elflint.c:1350
-#, c-format
-msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"
-msgstr ""
-
-#: src/elflint.c:1355 src/elflint.c:1517
-#, c-format
-msgid "section [%2d] '%s': sh_info not zero\n"
-msgstr ""
-
-#: src/elflint.c:1367
-#, c-format
-msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n"
-msgstr ""
-
-#: src/elflint.c:1375
-#, c-format
-msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n"
-msgstr ""
-
-#: src/elflint.c:1382
-#, c-format
-msgid "section [%2d] '%s': entry %zu: unknown tag\n"
-msgstr ""
-
-#: src/elflint.c:1393
-#, c-format
-msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n"
-msgstr ""
-
-#: src/elflint.c:1403
-#, c-format
-msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n"
-msgstr ""
-
-#: src/elflint.c:1415
-#, c-format
-msgid ""
-"section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"
-msgstr ""
-
-#: src/elflint.c:1440
-#, c-format
-msgid "section [%2d] '%s': contains %s entry but not %s\n"
-msgstr ""
-
-#: src/elflint.c:1452
-#, c-format
-msgid "section [%2d] '%s': mandatory tag %s not present\n"
-msgstr ""
-
-#: src/elflint.c:1462 src/elflint.c:1469
-#, c-format
-msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n"
-msgstr ""
-
-#: src/elflint.c:1497
-#, c-format
-msgid ""
-"section [%2d] '%s': extended section index section not for symbol table\n"
-msgstr ""
-
-#: src/elflint.c:1502
-msgid "cannot get data for symbol section\n"
-msgstr ""
-
-#: src/elflint.c:1505 src/elflint.c:1596
-#, c-format
-msgid "section [%2d] '%s': entry size does not match Elf32_Word\n"
-msgstr ""
-
-#: src/elflint.c:1512
-#, c-format
-msgid "section [%2d] '%s': extended index table too small for symbol table\n"
-msgstr ""
-
-#: src/elflint.c:1529
-#, c-format
-msgid ""
-"section [%2d] '%s': extended section index in section [%2zu] '%s' refers to "
-"same symbol table\n"
-msgstr ""
-
-#: src/elflint.c:1540
-msgid "symbol 0 should have zero extended section index\n"
-msgstr ""
-
-#: src/elflint.c:1552
-#, c-format
-msgid "cannot get data for symbol %zu\n"
-msgstr ""
-
-#: src/elflint.c:1557
-#, c-format
-msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n"
-msgstr ""
-
-#: src/elflint.c:1591
-#, c-format
-msgid "section [%2d] '%s': hash table not for dynamic symbol table\n"
-msgstr ""
-
-#: src/elflint.c:1601
-#, c-format
-msgid "section [%2d] '%s': not marked to be allocated\n"
-msgstr ""
-
-#: src/elflint.c:1606
-#, c-format
-msgid ""
-"section [%2d] '%s': hash table has not even room for nbucket and nchain\n"
-msgstr ""
-
-#: src/elflint.c:1616
-#, c-format
-msgid ""
-"section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
-msgstr ""
-
-#: src/elflint.c:1627
-#, c-format
-msgid "section [%2d] '%s': chain array not large enough\n"
-msgstr ""
-
-#: src/elflint.c:1632
-#, c-format
-msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n"
-msgstr ""
-
-#: src/elflint.c:1638
-#, c-format
-msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n"
-msgstr ""
-
-#: src/elflint.c:1650
-#, c-format
-msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n"
-msgstr ""
-
-#: src/elflint.c:1670
-#, c-format
-msgid ""
-"section [%2d] '%s': section groups only allowed in relocatable object files\n"
-msgstr ""
-
-#: src/elflint.c:1681
-#, c-format
-msgid "section [%2d] '%s': cannot get symbol table: %s\n"
-msgstr ""
-
-#: src/elflint.c:1686
-#, c-format
-msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n"
-msgstr ""
-
-#: src/elflint.c:1692
-#, c-format
-msgid "section [%2d] '%s': invalid symbol index in sh_info\n"
-msgstr ""
-
-#: src/elflint.c:1697
-#, c-format
-msgid "section [%2d] '%s': sh_flags not zero\n"
-msgstr ""
-
-#: src/elflint.c:1702
-#, c-format
-msgid "section [%2d] '%s': sh_flags not set correctly\n"
-msgstr ""
-
-#: src/elflint.c:1708
-#, c-format
-msgid "section [%2d] '%s': cannot get data: %s\n"
-msgstr ""
-
-#: src/elflint.c:1717
-#, c-format
-msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n"
-msgstr ""
-
-#: src/elflint.c:1722
-#, c-format
-msgid "section [%2d] '%s': section group without flags word\n"
-msgstr ""
-
-#: src/elflint.c:1728
-#, c-format
-msgid "section [%2d] '%s': section group without member\n"
-msgstr ""
-
-#: src/elflint.c:1732
-#, c-format
-msgid "section [%2d] '%s': section group with only one member\n"
-msgstr ""
-
-#: src/elflint.c:1743
-#, c-format
-msgid "section [%2d] '%s': unknown section group flags\n"
-msgstr ""
-
-#: src/elflint.c:1755
-#, c-format
-msgid "section [%2d] '%s': section index %Zu out of range\n"
-msgstr ""
-
-#: src/elflint.c:1766
-#, c-format
-msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n"
-msgstr ""
-
-#: src/elflint.c:1773
-#, c-format
-msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n"
-msgstr ""
-
-#: src/elflint.c:1779
-#, c-format
-msgid ""
-"section [%2d] '%s': element %Zu references section [%2d] '%s' without "
-"SHF_GROUP flag set\n"
-msgstr ""
-
-#: src/elflint.c:1786
-#, c-format
-msgid "section [%2d] '%s' is contained in more than one section group\n"
-msgstr ""
-
-#: src/elflint.c:1911
-#, c-format
-msgid ""
-"section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no "
-"dynamic symbol table\n"
-msgstr ""
-
-#: src/elflint.c:1920
-#, c-format
-msgid ""
-"section [%2d] '%s' has different number of entries than symbol table [%2d] '%"
-"s'\n"
-msgstr ""
-
-#: src/elflint.c:1952
-msgid "cannot get section header of zeroth section\n"
-msgstr ""
-
-#: src/elflint.c:1956
-msgid "zeroth section has nonzero name\n"
-msgstr ""
-
-#: src/elflint.c:1958
-msgid "zeroth section has nonzero type\n"
-msgstr ""
-
-#: src/elflint.c:1960
-msgid "zeroth section has nonzero flags\n"
-msgstr ""
-
-#: src/elflint.c:1962
-msgid "zeroth section has nonzero address\n"
-msgstr ""
-
-#: src/elflint.c:1964
-msgid "zeroth section has nonzero offset\n"
-msgstr ""
-
-#: src/elflint.c:1966
-msgid "zeroth section has nonzero info field\n"
-msgstr ""
-
-#: src/elflint.c:1968
-msgid "zeroth section has nonzero align value\n"
-msgstr ""
-
-#: src/elflint.c:1970
-msgid "zeroth section has nonzero entry size value\n"
-msgstr ""
-
-#: src/elflint.c:1973
-msgid ""
-"zeroth section has nonzero size value while ELF header has nonzero shnum "
-"value\n"
-msgstr ""
-
-#: src/elflint.c:1977
-msgid ""
-"zeroth section has nonzero link value while ELF header does not signal "
-"overflow in shstrndx\n"
-msgstr ""
-
-#: src/elflint.c:1989
-#, c-format
-msgid "cannot get section header for section [%2zu] '%s': %s\n"
-msgstr ""
-
-#: src/elflint.c:1998
-#, c-format
-msgid "section [%2zu]: invalid name\n"
-msgstr ""
-
-#: src/elflint.c:2013
-#, c-format
-msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n"
-msgstr ""
-
-#: src/elflint.c:2027
-#, c-format
-msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n"
-msgstr ""
-
-#: src/elflint.c:2044
-#, c-format
-msgid ""
-"section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
-msgstr ""
-
-#: src/elflint.c:2062
-#, c-format
-msgid "section [%2zu] '%s' present in object file\n"
-msgstr ""
-
-#: src/elflint.c:2068 src/elflint.c:2100
-#, c-format
-msgid ""
-"section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
-msgstr ""
-
-#: src/elflint.c:2073 src/elflint.c:2105
-#, c-format
-msgid ""
-"section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
-"segments\n"
-msgstr ""
-
-#: src/elflint.c:2081
-#, c-format
-msgid ""
-"section [%2zu] '%s' is extension section index table in non-object file\n"
-msgstr ""
-
-#: src/elflint.c:2116
-#, c-format
-msgid "section [%2zu] '%s': size not multiple of entry size\n"
-msgstr ""
-
-#: src/elflint.c:2121
-msgid "cannot get section header\n"
-msgstr ""
-
-#: src/elflint.c:2129
-#, c-format
-msgid "unsupported section type %d\n"
-msgstr ""
-
-#: src/elflint.c:2135
-#, c-format
-msgid "section [%2zu] '%s' contain unknown flag(s) %d\n"
-msgstr ""
-
-#: src/elflint.c:2142
-#, c-format
-msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
-msgstr ""
-
-#: src/elflint.c:2150
-#, c-format
-msgid "section [%2zu] '%s': invalid section reference in link value\n"
-msgstr ""
-
-#: src/elflint.c:2155
-#, c-format
-msgid "section [%2zu] '%s': invalid section reference in info value\n"
-msgstr ""
-
-#: src/elflint.c:2162
-#, c-format
-msgid "section [%2zu] '%s': strings flag set without merge flag\n"
-msgstr ""
-
-#: src/elflint.c:2167
-#, c-format
-msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
-msgstr ""
-
-#: src/elflint.c:2194
-#, c-format
-msgid ""
-"section [%2zu] '%s' not fully contained in segment of program header entry %"
-"d\n"
-msgstr ""
-
-#: src/elflint.c:2201
-#, c-format
-msgid ""
-"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
-"program header entry %d\n"
-msgstr ""
-
-#: src/elflint.c:2208
-#, c-format
-msgid ""
-"section [%2zu] '%s' has not type NOBITS but is not read from the file in "
-"segment of program header entry %d\n"
-msgstr ""
-
-#: src/elflint.c:2217
-#, c-format
-msgid ""
-"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
-msgstr ""
-
-#: src/elflint.c:2223
-#, c-format
-msgid ""
-"section [%2zu] '%s': ELF header says this is the section header string table "
-"but type is not SHT_TYPE\n"
-msgstr ""
-
-#: src/elflint.c:2273
-msgid "INTERP program header entry but no .interp section\n"
-msgstr ""
-
-#: src/elflint.c:2284
-#, c-format
-msgid "phdr[%d]: no note entries defined for the type of file\n"
-msgstr ""
-
-#: src/elflint.c:2367
-#, c-format
-msgid "phdr[%d]: note entries probably in form of a 32-bit ELF file\n"
-msgstr ""
-
-#: src/elflint.c:2370
-#, c-format
-msgid "phdr[%d]: extra %zu bytes after last note\n"
-msgstr ""
-
-#: src/elflint.c:2399
-#, c-format
-msgid "phdr[%d]: unknown core file note type %<PRIu64> at offset %<PRIu64>\n"
-msgstr ""
-
-#: src/elflint.c:2407
-#, c-format
-msgid "phdr[%d]: unknown object file note type %<PRIu64> at offset %<PRIu64>\n"
-msgstr ""
-
-#: src/elflint.c:2429
-msgid ""
-"only executables, shared objects, and core files can have program headers\n"
-msgstr ""
-
-#: src/elflint.c:2444
-#, c-format
-msgid "cannot get program header entry %d: %s\n"
-msgstr ""
-
-#: src/elflint.c:2451
-#, c-format
-msgid "program header entry %d: unknown program header entry type\n"
-msgstr ""
-
-#: src/elflint.c:2462
-msgid "more than one INTERP entry in program header\n"
-msgstr ""
-
-#: src/elflint.c:2470
-msgid "more than one TLS entry in program header\n"
-msgstr ""
-
-#: src/elflint.c:2476
-msgid "static executable cannot have dynamic sections\n"
-msgstr ""
-
-#: src/elflint.c:2480
-msgid "more than one GNU_RELRO entry in program header\n"
-msgstr ""
-
-#: src/elflint.c:2501
-msgid "loadable segment GNU_RELRO applies to is not writable\n"
-msgstr ""
-
-#: src/elflint.c:2504
-msgid "loadable segment GNU_RELRO applies to is executable\n"
-msgstr ""
-
-#: src/elflint.c:2511
-msgid "GNU_RELRO segment not contained in a loaded segment\n"
-msgstr ""
-
-#: src/elflint.c:2517
-#, c-format
-msgid "program header entry %d: file size greater than memory size\n"
-msgstr ""
-
-#: src/elflint.c:2524
-#, c-format
-msgid "program header entry %d: alignment not a power of 2\n"
-msgstr ""
-
-#: src/elflint.c:2527
-#, c-format
-msgid ""
-"program header entry %d: file offset and virtual address not module of "
-"alignment\n"
-msgstr ""
-
-#: src/elflint.c:2557
-#, c-format
-msgid "cannot read ELF header: %s\n"
-msgstr ""
-
-#: libasm/asm_end.c:215
-#, c-format
-msgid "cannot create extended section index table: %s"
-msgstr ""
-
-#: libasm/asm_end.c:316
-#, c-format
-msgid "cannot create section group for output file: %s"
-msgstr ""
-
-#: libasm/asm_error.c:108 libdw/dwarf_error.c:74
-msgid "no error"
-msgstr ""
-
-#: libasm/asm_error.c:109 libdw/dwarf_error.c:83
-msgid "out of memory"
-msgstr ""
-
-#: libasm/asm_error.c:111
-msgid "invalid parameter"
-msgstr ""
-
-#: libasm/asm_error.c:112
-msgid "cannot change mode of output file"
-msgstr ""
-
-#: libasm/asm_error.c:114
-msgid "duplicate symbol"
-msgstr ""
-
-#: libasm/asm_error.c:115
-msgid "invalid section type for operation"
-msgstr ""
-
-#: libasm/asm_error.c:149
-msgid "Unknown error"
-msgstr ""
-
-#: libdw/dwarf_error.c:75
-msgid "unknown error"
-msgstr ""
-
-#: libdw/dwarf_error.c:76
-msgid "invalid access"
-msgstr ""
-
-#: libdw/dwarf_error.c:77
-msgid "no regular file"
-msgstr ""
-
-#: libdw/dwarf_error.c:78
-msgid "I/O error"
-msgstr ""
-
-#: libdw/dwarf_error.c:79
-msgid "invalid ELF file"
-msgstr ""
-
-#: libdw/dwarf_error.c:80
-msgid "no DWARF information"
-msgstr ""
-
-#: libdw/dwarf_error.c:81
-msgid "no ELF file"
-msgstr ""
-
-#: libdw/dwarf_error.c:82
-msgid "cannot get ELF header"
-msgstr ""
-
-#: libdw/dwarf_error.c:84
-msgid "not implemented"
-msgstr ""
-
-#: libdw/dwarf_error.c:85
-msgid "invalid command"
-msgstr ""
-
-#: libdw/dwarf_error.c:86
-msgid "invalid version"
-msgstr ""
-
-#: libdw/dwarf_error.c:87
-msgid "invalid file"
-msgstr ""
-
-#: libdw/dwarf_error.c:88
-msgid "no entries found"
-msgstr ""
-
-#: libdw/dwarf_error.c:89
-msgid "invalid DWARF"
-msgstr ""
-
-#: libdw/dwarf_error.c:90
-msgid "no string data"
-msgstr ""
-
-#: libdw/dwarf_error.c:91
-msgid "no address value"
-msgstr ""
-
-#: libdw/dwarf_error.c:92
-msgid "no constant value"
-msgstr ""
-
-#: libdw/dwarf_error.c:93
-msgid "no reference value"
-msgstr ""
-
-#: libdw/dwarf_error.c:94
-msgid "invalid reference value"
-msgstr ""
-
-#: libdw/dwarf_error.c:95
-msgid ".debug_line section missing"
-msgstr ""
-
-#: libdw/dwarf_error.c:96
-msgid "invalid .debug_line section"
-msgstr ""
-
-#: libdw/dwarf_error.c:97
-msgid "debug information too big"
-msgstr ""
-
-#: libdw/dwarf_error.c:98
-msgid "invalid DWARF version"
-msgstr ""
-
-#: libdw/dwarf_error.c:99
-msgid "invalid directory index"
-msgstr ""
-
-#: libdw/dwarf_error.c:100
-msgid "address out of range"
-msgstr ""
-
-#: libdw/dwarf_error.c:101
-msgid "no location list value"
-msgstr ""
-
-#: libdw/dwarf_error.c:102
-msgid "no block data"
-msgstr ""
-
-#: libdw/dwarf_error.c:103
-msgid "invalid line index"
-msgstr ""
-
-#: libdw/dwarf_error.c:104
-msgid "invalid address range index"
-msgstr ""
-
-#: libdw/dwarf_error.c:105
-msgid "no matching address range"
-msgstr ""
-
-#: libdw/dwarf_error.c:106
-msgid "no flag value"
-msgstr ""
diff --git a/po/insert-header.sin b/po/insert-header.sin
deleted file mode 100644
index b26de01f..00000000
--- a/po/insert-header.sin
+++ /dev/null
@@ -1,23 +0,0 @@
-# Sed script that inserts the file called HEADER before the header entry.
-#
-# At each occurrence of a line starting with "msgid ", we execute the following
-# commands. At the first occurrence, insert the file. At the following
-# occurrences, do nothing. The distinction between the first and the following
-# occurrences is achieved by looking at the hold space.
-/^msgid /{
-x
-# Test if the hold space is empty.
-s/m/m/
-ta
-# Yes it was empty. First occurrence. Read the file.
-r HEADER
-# Output the file's contents by reading the next line. But don't lose the
-# current line while doing this.
-g
-N
-bb
-:a
-# The hold space was nonempty. Following occurrences. Do nothing.
-x
-:b
-}
diff --git a/po/quot.sed b/po/quot.sed
deleted file mode 100644
index 0122c463..00000000
--- a/po/quot.sed
+++ /dev/null
@@ -1,6 +0,0 @@
-s/"\([^"]*\)"/“\1”/g
-s/`\([^`']*\)'/‘\1’/g
-s/ '\([^`']*\)' / ‘\1’ /g
-s/ '\([^`']*\)'$/ ‘\1’/g
-s/^'\([^`']*\)' /‘\1’ /g
-s/“”/""/g
diff --git a/splint.rc b/splint.rc
deleted file mode 100644
index e0461c41..00000000
--- a/splint.rc
+++ /dev/null
@@ -1 +0,0 @@
-+posixlib
diff --git a/src/ChangeLog b/src/ChangeLog
deleted file mode 100644
index e5b44049..00000000
--- a/src/ChangeLog
+++ /dev/null
@@ -1,188 +0,0 @@
-2004-09-25 Ulrich Drepper <drepper@redhat.com>
-
- * readelf.c: Make compile with gcc 4.0.
- * strip.c: Likewise.
-
-2004-08-16 Ulrich Drepper <drepper@redhat.com>
-
- * strip.c (handle_elf): Rewrite dynamic memory handling to use of
- allocate to work around gcc 3.4 bug.
-
-2004-01-25 Ulrich Drepper <drepper@redhat.com>
-
- * ldlex.l (invalid_char): Better error message.
-
-2004-01-23 Ulrich Drepper <drepper@redhat.com>
-
- * readelf.c: Print SHT_GNU_LIBLIST sections.
-
- * none_ld.c: New file.
-
-2004-01-21 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am: Enable building of machine specific linker.
-
-2004-01-20 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am: Support building with mudflap.
-
- * i386_ld.c: Fix warnings gcc 3.4 spits out.
- * ldgeneric.c: Likewise.
- * ldscript.y: Likewise.
- * readelf.c: Likewise.
- * strip.c: Likewise.
-
- * readelf.c (print_debug_line_section): Determine address size
- correctly.
-
-2004-01-19 Ulrich Drepper <drepper@redhat.com>
-
- * readelf.c (print_phdr): Show which sections are covered by the
- PT_GNU_RELRO entry.
-
- * elflint.c (check_program_header): Check PT_GNU_RELRO entry.
-
- * readelf.c (print_debug_macinfo_section): Implement.
-
-2004-01-18 Ulrich Drepper <drepper@redhat.com>
-
- * readelf.c (print_debug_line_section): Implement.
-
-2004-01-17 Ulrich Drepper <drepper@redhat.com>
-
- * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE.
- * src/ld.c: Likewise.
- * src/nm.c: Likewise.
- * src/readelf.c: Likewise.
- * src/size.c: Likewise.
- * src/strip.c: Likewise.
-
- * strip.c: Add a few more unlikely. Reduce scope of some variables.
-
- * Makefile.am: Support building with mudflap.
-
-2004-01-16 Ulrich Drepper <drepper@redhat.com>
-
- * readelf.c (print_debug_info_section): Free dies memory.
-
- * readelf.c: Print .debug_info section content.
-
-2004-01-13 Ulrich Drepper <drepper@redhat.com>
-
- * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE.
-
-2004-01-12 Ulrich Drepper <drepper@redhat.com>
-
- * readelf.c (print_debug_aranges): Implement using libdw.
-
-2004-01-11 Ulrich Drepper <drepper@redhat.com>
-
- * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change.
-
- * readelf.c: Use libdw instead of libdwarf. Not all of the old
- behavior is available yet.
- * Makefile.am: Link readelf with libdw. Remove libdwarf include path.
-
-2004-01-09 Ulrich Drepper <drepper@redhat.com>
-
- * nm.c (get_local_names): Adjust call to dwarf_nextcu.
-
- * nm.c: Implement getting information about local variables.
-
-2004-01-07 Ulrich Drepper <drepper@redhat.com>
-
- * nm.c: Read also debug information for local symbols.
-
-2004-01-05 Ulrich Drepper <drepper@redhat.com>
-
- * nm.c: Shuffle dwarf handling code around so the maximum column
- width can be computed ahead of printing. Avoid collection symbols
- which are not printed anyway.
-
- * nm.c: Rewrite dwarf handling to use libdw.
- * Makefile.am (AM_CFLAGS): Add -std parameter.
- (INCLUDES): Find header in libdw subdir.
- (nm_LDADD): Replace libdwarf with libdw.
-
- * elflint.c: Update copyright year.
- * readelf.c: Likewise.
- * size.c: Likewise.
- * strip.c: Likewise.
- * nm.c: Likewise.
-
-2003-12-31 Ulrich Drepper <drepper@redhat.com>
-
- * strip.c (process_file): Close file before returning.
-
-2003-11-19 Ulrich Drepper <drepper@redhat.com>
-
- * readelf.c (handle_dynamic): Make column for tag name wider.
-
-2003-09-29 Ulrich Drepper <drepper@redhat.com>
-
- * readelf.c (handle_dynamic): Always terminate tag name with a space.
-
-2003-09-25 Ulrich Drepper <drepper@redhat.com>
-
- * strip.c (process_file): Don't mmap the input file, we modify the
- data structures and don't want the change end up on disk.
-
-2003-09-23 Jakub Jelinek <jakub@redhat.com>
-
- * unaligned.h (union u_2ubyte_unaligned,
- union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add
- packed attribute.
- (add_2ubyte_unaligned, add_4ubyte_unaligned,
- add_8ubyte_unaligned): Avoid nesting bswap_NN macros.
- Read/store value through _ptr->u instead of *_ptr.
-
-2003-09-22 Ulrich Drepper <drepper@redhat.com>
-
- * size.c (show_sysv): Change type of maxlen to int.
-
- * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit
- buckets.
-
- * i386_ld.c: Many many fixes and extensions.
- * ld.c: Likewise.
- * ldgeneric.c: Likewise.
-
-2003-08-16 Ulrich Drepper <drepper@redhat.com>
-
- * ldgeneric.c (check_definition): Don't add symbol on dso_list if
- the reference is from another DSO.
-
-2003-08-15 Ulrich Drepper <drepper@redhat.com>
-
- * ldgeneric.c (find_entry_point): It is no fatal error if no entry
- point is found when creating a DSO.
-
-2003-08-14 Ulrich Drepper <drepper@redhat.com>
-
- * ld.c (main): Always call FLAG_UNRESOLVED.
- * ldgeneric.c (ld_generic_flag_unresolved): Only complain about
- undefined symbols if not creating DSO or ld_state.nodefs is not set.
-
-2003-08-13 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.in: Depend on libebl.a, not libebl.so.
-
- * ld.c (main): Mark stream for linker script as locked by caller.
- (read_version_script): Likewise.
- * ldlex.c: Define fread and fwrite to _unlocked variant.
-
- * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of
- target_bswap_32.
- * unaligned.h: Define target_bswap_16, target_bswap_32, and
- target_bswap_64.
- (store_2ubyte_unaligned, store_4ubyte_unaligned,
- store_8ubyte_unaligned): Define using new macros.
-
-2003-08-12 Ulrich Drepper <drepper@redhat.com>
-
- * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access
- possibly unaligned memory. Support use of big endian machines.
-
-2003-08-11 Ulrich Drepper <drepper@redhat.com>
-
- * Moved to CVS archive.
diff --git a/src/Makefile b/src/Makefile
deleted file mode 100644
index f147eee2..00000000
--- a/src/Makefile
+++ /dev/null
@@ -1,638 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# src/Makefile. Generated from Makefile.in by configure.
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-
-
-SOURCES = $(libld_elf_a_SOURCES) $(libld_elf_i386_pic_a_SOURCES) elflint.c $(ld_SOURCES) $(libld_elf_i386_so_SOURCES) nm.c readelf.c size.c strip.c
-
-srcdir = .
-top_srcdir = ..
-
-pkgdatadir = $(datadir)/elfutils
-pkglibdir = $(libdir)/elfutils
-pkgincludedir = $(includedir)/elfutils
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = /usr/bin/install -c
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = i686-pc-linux-gnu
-host_triplet = i686-pc-linux-gnu
-bin_PROGRAMS = readelf$(EXEEXT) nm$(EXEEXT) size$(EXEEXT) \
- strip$(EXEEXT) ld$(EXEEXT) elflint$(EXEEXT)
-noinst_PROGRAMS = $(am__EXEEXT_1)
-#am__append_1 = libld_elf.a
-subdir = src
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in ChangeLog ldlex.c ldscript.c ylwrap
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libld_elf_a_AR = $(AR) $(ARFLAGS)
-libld_elf_a_LIBADD =
-am_libld_elf_a_OBJECTS = $(base_cpu)_ld.$(OBJEXT)
-libld_elf_a_OBJECTS = $(am_libld_elf_a_OBJECTS)
-libld_elf_i386_pic_a_AR = $(AR) $(ARFLAGS)
-libld_elf_i386_pic_a_LIBADD =
-libld_elf_i386_pic_a_OBJECTS = $(am_libld_elf_i386_pic_a_OBJECTS)
-am__installdirs = "$(DESTDIR)$(bindir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-am__EXEEXT_1 = libld_elf_i386.so$(EXEEXT)
-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
-elflint_SOURCES = elflint.c
-elflint_OBJECTS = elflint.$(OBJEXT)
-am__DEPENDENCIES_1 = ../libebl/libebl.a
-am__DEPENDENCIES_2 = ../libelf/libelf.so
-#am__DEPENDENCIES_2 = ../libelf/libelf.a
-am__DEPENDENCIES_3 = ../lib/libeu.a
-elflint_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_ld_OBJECTS = ld.$(OBJEXT) ldgeneric.$(OBJEXT) ldlex.$(OBJEXT) \
- ldscript.$(OBJEXT) symbolhash.$(OBJEXT) sectionhash.$(OBJEXT) \
- versionhash.$(OBJEXT)
-ld_OBJECTS = $(am_ld_OBJECTS)
-#am__DEPENDENCIES_4 = libld_elf.a
-ld_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4)
-am_libld_elf_i386_so_OBJECTS =
-libld_elf_i386_so_OBJECTS = $(am_libld_elf_i386_so_OBJECTS)
-libld_elf_i386_so_LDADD = $(LDADD)
-nm_SOURCES = nm.c
-nm_OBJECTS = nm.$(OBJEXT)
-am__DEPENDENCIES_5 = ../libdw/libdw.so
-#am__DEPENDENCIES_5 = ../libdw/libdw.a
-nm_DEPENDENCIES = $(am__DEPENDENCIES_5) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3)
-readelf_SOURCES = readelf.c
-readelf_OBJECTS = readelf.$(OBJEXT)
-readelf_DEPENDENCIES = $(am__DEPENDENCIES_5) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3)
-size_SOURCES = size.c
-size_OBJECTS = size.$(OBJEXT)
-size_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3)
-strip_SOURCES = strip.c
-strip_OBJECTS = strip.$(OBJEXT)
-strip_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
-YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
-SOURCES = $(libld_elf_a_SOURCES) $(libld_elf_i386_pic_a_SOURCES) \
- elflint.c $(ld_SOURCES) $(libld_elf_i386_so_SOURCES) nm.c \
- readelf.c size.c strip.c
-DIST_SOURCES = $(libld_elf_a_SOURCES) $(libld_elf_i386_pic_a_SOURCES) \
- elflint.c $(ld_SOURCES) $(libld_elf_i386_so_SOURCES) nm.c \
- readelf.c size.c strip.c
-HEADERS = $(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run aclocal-1.9
-AMDEP_FALSE = #
-AMDEP_TRUE =
-AMTAR = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run tar
-AUTOCONF = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoconf
-AUTOHEADER = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoheader
-AUTOMAKE = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run automake-1.9
-AWK = gawk
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CFLAGS = -g -O2
-CPP = gcc -E
-CPPFLAGS =
-CYGPATH_W = echo
-DATADIRNAME = ${prefix}/share
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H $(YYDEBUG) \
- -DSRCDIR=\"$(shell cd $(srcdir);pwd)\" -DOBJDIR=\"$(shell pwd)\"
-
-DEPDIR = .deps
-ECHO_C =
-ECHO_N = -n
-ECHO_T =
-EGREP = grep -E
-EXEEXT =
-GMSGFMT = /usr/bin/msgfmt
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
-INTLLIBS =
-LDFLAGS =
-LEX = flex
-LEXLIB = -lfl
-LEX_OUTPUT_ROOT = lex.yy
-LIBICONV = -liconv
-LIBINTL =
-LIBOBJS =
-LIBS =
-LOCALEDIR = ${prefix}/share
-LTLIBICONV = -liconv
-LTLIBINTL =
-LTLIBOBJS =
-MAKEINFO = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run makeinfo
-MKINSTALLDIRS = config/mkinstalldirs
-MSGFMT = /usr/bin/msgfmt
-MSGMERGE = /usr/bin/msgmerge
-MUDFLAP_FALSE =
-MUDFLAP_TRUE = #
-NATIVE_LD_FALSE =
-NATIVE_LD_TRUE = #
-OBJEXT = o
-PACKAGE = elfutils
-PACKAGE_BUGREPORT = http://bugzilla.redhat.com/bugzilla/
-PACKAGE_NAME = Red Hat elfutils
-PACKAGE_STRING = Red Hat elfutils 0.97
-PACKAGE_TARNAME = elfutils
-PACKAGE_VERSION = 0.97
-PATH_SEPARATOR = :
-POSUB = po
-RANLIB = ranlib
-SET_MAKE =
-SHELL = /bin/sh
-STRIP =
-USE_NLS = yes
-VERSION = 0.97
-XGETTEXT = /usr/bin/xgettext
-YACC = bison -y -d
-ac_ct_CC = gcc
-ac_ct_RANLIB = ranlib
-ac_ct_STRIP =
-am__fastdepCC_FALSE = #
-am__fastdepCC_TRUE =
-am__include = include
-am__leading_dot = .
-am__quote =
-am__tar = ${AMTAR} chof - "$$tardir"
-am__untar = ${AMTAR} xf -
-base_cpu = none
-bindir = ${exec_prefix}/bin
-build = i686-pc-linux-gnu
-build_alias =
-build_cpu = i686
-build_os = linux-gnu
-build_vendor = pc
-datadir = ${prefix}/share
-exec_prefix = ${prefix}
-host = i686-pc-linux-gnu
-host_alias =
-host_cpu = i686
-host_os = linux-gnu
-host_vendor = pc
-includedir = ${prefix}/include
-infodir = ${prefix}/info
-install_sh = /work/elfutils/stock/elfutils-0.97/config/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-localstatedir = ${prefix}/var
-mandir = ${prefix}/man
-mkdir_p = mkdir -p --
-oldincludedir = /usr/include
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-program_transform_name = s,x,x,
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-sysconfdir = ${prefix}/etc
-target_alias =
-AM_CFLAGS = -Wall -Wshadow -std=gnu99 \
- $(if $($(*F)_no_Werror),,-Werror) $(native_ld_cflags)
-
-#AM_CFLAGS = -Wall -Wshadow -std=gnu99 \
-# $(native_ld_cflags)
-
-#AM_LDFLAGS = -fmudflap
-INCLUDES = -I$(srcdir) -I$(srcdir)/../libelf -I$(srcdir)/../libebl -I$(srcdir)/../lib -I$(srcdir)/../libdw -I..
-AM_YFLAGS = -pld
-AM_LFLAGS = -Pld -olex.yy.c
-native_ld = @native_ld@
-ld_dsos = libld_elf_i386_pic.a
-noinst_LIBRARIES = libld_elf.a $(ld_dsos)
-#noinst_LIBRARIES = libld_elf.a
-#native_ld_cflags = -DBASE_ELF_NAME=elf_$(base_cpu)
-ld_SOURCES = ld.c ldgeneric.c ldlex.l ldscript.y symbolhash.c sectionhash.c \
- versionhash.c
-
-noinst_HEADERS = ld.h symbolhash.h sectionhash.h versionhash.h \
- ldscript.h xelf.h unaligned.h
-
-EXTRA_DIST = elf32-i386.script libld_elf_i386.map $(ld_modules)
-ld_modules = i386_ld.c
-libdw = ../libdw/libdw.so
-#libdw = ../libdw/libdw.a
-libelf = ../libelf/libelf.so
-#libelf = ../libelf/libelf.a
-libebl = ../libebl/libebl.a
-libeu = ../lib/libeu.a
-readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl
-nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl
-size_LDADD = $(libelf) $(libeu)
-strip_LDADD = $(libebl) $(libelf) $(libeu) -ldl
-ld_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(am__append_1)
-ld_LDFLAGS = -rdynamic
-elflint_LDADD = $(libebl) $(libelf) $(libeu) -ldl
-ldlex_no_Werror = yes
-
-# Machine-specific linker code.
-libld_elf_a_SOURCES = $(base_cpu)_ld.c
-libld_elf_i386_pic_a_SOURCES =
-am_libld_elf_i386_pic_a_OBJECTS = i386_ld.os
-libld_elf_i386_so_SOURCES =
-CLEANFILES = none_ld.os $(ld_modules:.c=.os)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .l .o .obj .y
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits src/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits src/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libld_elf.a: $(libld_elf_a_OBJECTS) $(libld_elf_a_DEPENDENCIES)
- -rm -f libld_elf.a
- $(libld_elf_a_AR) libld_elf.a $(libld_elf_a_OBJECTS) $(libld_elf_a_LIBADD)
- $(RANLIB) libld_elf.a
-libld_elf_i386_pic.a: $(libld_elf_i386_pic_a_OBJECTS) $(libld_elf_i386_pic_a_DEPENDENCIES)
- -rm -f libld_elf_i386_pic.a
- $(libld_elf_i386_pic_a_AR) libld_elf_i386_pic.a $(libld_elf_i386_pic_a_OBJECTS) $(libld_elf_i386_pic_a_LIBADD)
- $(RANLIB) libld_elf_i386_pic.a
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- if test -f $$p \
- ; then \
- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
- else :; fi; \
- done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
-
-clean-binPROGRAMS:
- -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-elflint$(EXEEXT): $(elflint_OBJECTS) $(elflint_DEPENDENCIES)
- @rm -f elflint$(EXEEXT)
- $(LINK) $(elflint_LDFLAGS) $(elflint_OBJECTS) $(elflint_LDADD) $(LIBS)
-ld$(EXEEXT): $(ld_OBJECTS) $(ld_DEPENDENCIES)
- @rm -f ld$(EXEEXT)
- $(LINK) $(ld_LDFLAGS) $(ld_OBJECTS) $(ld_LDADD) $(LIBS)
-nm$(EXEEXT): $(nm_OBJECTS) $(nm_DEPENDENCIES)
- @rm -f nm$(EXEEXT)
- $(LINK) $(nm_LDFLAGS) $(nm_OBJECTS) $(nm_LDADD) $(LIBS)
-readelf$(EXEEXT): $(readelf_OBJECTS) $(readelf_DEPENDENCIES)
- @rm -f readelf$(EXEEXT)
- $(LINK) $(readelf_LDFLAGS) $(readelf_OBJECTS) $(readelf_LDADD) $(LIBS)
-size$(EXEEXT): $(size_OBJECTS) $(size_DEPENDENCIES)
- @rm -f size$(EXEEXT)
- $(LINK) $(size_LDFLAGS) $(size_OBJECTS) $(size_LDADD) $(LIBS)
-strip$(EXEEXT): $(strip_OBJECTS) $(strip_DEPENDENCIES)
- @rm -f strip$(EXEEXT)
- $(LINK) $(strip_LDFLAGS) $(strip_OBJECTS) $(strip_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-include ./$(DEPDIR)/$(base_cpu)_ld.Po
-include ./$(DEPDIR)/elflint.Po
-include ./$(DEPDIR)/ld.Po
-include ./$(DEPDIR)/ldgeneric.Po
-include ./$(DEPDIR)/ldlex.Po
-include ./$(DEPDIR)/ldscript.Po
-include ./$(DEPDIR)/nm.Po
-include ./$(DEPDIR)/readelf.Po
-include ./$(DEPDIR)/sectionhash.Po
-include ./$(DEPDIR)/size.Po
-include ./$(DEPDIR)/strip.Po
-include ./$(DEPDIR)/symbolhash.Po
-include ./$(DEPDIR)/versionhash.Po
-
-.c.o:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c $<
-
-.c.obj:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.l.c:
- $(LEXCOMPILE) $<
- sed '/^#/ s|$(LEX_OUTPUT_ROOT)\.c|$@|' $(LEX_OUTPUT_ROOT).c >$@
- rm -f $(LEX_OUTPUT_ROOT).c
-
-.y.c:
- $(YACCCOMPILE) $<
- if test -f y.tab.h; then \
- to=`echo "$*_H" | sed \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
- -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \
- sed -e "/^#/!b" -e "s/Y_TAB_H/$$to/g" -e "s|y\.tab\.h|$*.h|" \
- y.tab.h >$*.ht; \
- rm -f y.tab.h; \
- if cmp -s $*.ht $*.h; then \
- rm -f $*.ht ;\
- else \
- mv $*.ht $*.h; \
- fi; \
- fi
- if test -f y.output; then \
- mv y.output $*.output; \
- fi
- sed '/^#/ s|y\.tab\.c|$@|' y.tab.c >$@t && mv $@t $@
- rm -f y.tab.c
-uninstall-info-am:
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
- -rm -f ldlex.c
- -rm -f ldscript.c
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-noinstLIBRARIES \
- clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am: installcheck-binPROGRAMS
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
- clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS ctags \
- distclean distclean-compile distclean-generic distclean-tags \
- distdir dvi dvi-am html html-am info info-am install \
- install-am install-binPROGRAMS install-data install-data-am \
- install-exec install-exec-am install-info install-info-am \
- install-man install-strip installcheck installcheck-am \
- installcheck-binPROGRAMS installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-binPROGRAMS uninstall-info-am
-
-
-ldlex.o: ldscript.c
-ldscript.h: ldscript.c
-libld_elf_i386.so: libld_elf_i386_pic.a libld_elf_i386.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- $(libelf) $(libeu) \
- -Wl,--version-script,$(srcdir)/libld_elf_i386.map
-
-%.os: %.c %.o
- if $(filter-out -fmudflap,$(COMPILE)) -c -o $@ -fpic -DPIC -DSHARED \
- -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
- `test -f '$<' || echo '$(srcdir)/'`$<; \
- then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
- rm -f "$(DEPDIR)/$*.Tpo"; \
- else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
- fi
-
-# Special rule to make it possible to define libld_elf_a_SOURCES as we do.
-# Otherwise make would complain.
-.deps/none_ld.Po: none_ld.os
- -:
-
-installcheck-binPROGRAMS: $(bin_PROGRAMS)
- bad=0; pid=$$$$; list="$(bin_PROGRAMS)"; for p in $$list; do \
- case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
- *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
- esac; \
- f=`echo "$$p" | \
- sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- for opt in --help --version; do \
- if LD_LIBRARY_PATH=$(DESTDIR)$(libdir) \
- $(DESTDIR)$(bindir)/$$f $$opt > c$${pid}_.out 2> c$${pid}_.err \
- && test -n "`cat c$${pid}_.out`" \
- && test -z "`cat c$${pid}_.err`"; then :; \
- else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
- done; \
- done; rm -f c$${pid}_.???; exit $$bad
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/Makefile.am b/src/Makefile.am
deleted file mode 100644
index 7b957eb5..00000000
--- a/src/Makefile.am
+++ /dev/null
@@ -1,130 +0,0 @@
-## Process this file with automake to create Makefile.in
-## Configure input file for elfutils.
-##
-## Copyright (C) 1996-2002, 2003, 2004 Red Hat, Inc.
-##
-## This program is Open Source software; you can redistribute it and/or
-## modify it under the terms of the Open Software License version 1.0 as
-## published by the Open Source Initiative.
-##
-## You should have received a copy of the Open Software License along
-## with this program; if not, you may obtain a copy of the Open Software
-## License version 1.0 from http://www.opensource.org/licenses/osl.php or
-## by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-## 3001 King Ranch Road, Ukiah, CA 95482.
-##
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H $(YYDEBUG) \
- -DSRCDIR=\"$(shell cd $(srcdir);pwd)\" -DOBJDIR=\"$(shell pwd)\"
-if MUDFLAP
-AM_CFLAGS = -Wall -Wshadow -std=gnu99 \
- $(native_ld_cflags)
-else
-AM_CFLAGS = -Wall -Wshadow -std=gnu99 \
- $(if $($(*F)_no_Werror),,-Werror) $(native_ld_cflags)
-endif
-if MUDFLAP
-AM_LDFLAGS = -fmudflap
-endif
-INCLUDES = -I$(srcdir) -I$(srcdir)/../libelf -I$(srcdir)/../libebl -I$(srcdir)/../lib -I$(srcdir)/../libdw -I..
-
-YACC = @YACC@ -d
-AM_YFLAGS = -pld
-AM_LFLAGS = -Pld -olex.yy.c
-## Uncomment to enable debugging of linker script parser
-##YYDEBUG = -DYYDEBUG=1
-
-native_ld = @native_ld@
-base_cpu = @base_cpu@
-
-bin_PROGRAMS = readelf nm size strip ld elflint
-
-
-ld_dsos = libld_elf_i386_pic.a
-if NATIVE_LD
-noinst_LIBRARIES = libld_elf.a
-native_ld_cflags = -DBASE_ELF_NAME=elf_$(base_cpu)
-else
-noinst_LIBRARIES = libld_elf.a $(ld_dsos)
-noinst_PROGRAMS = $(ld_dsos:_pic.a=.so)
-endif
-
-
-ld_SOURCES = ld.c ldgeneric.c ldlex.l ldscript.y symbolhash.c sectionhash.c \
- versionhash.c
-
-noinst_HEADERS = ld.h symbolhash.h sectionhash.h versionhash.h \
- ldscript.h xelf.h unaligned.h
-
-EXTRA_DIST = elf32-i386.script libld_elf_i386.map $(ld_modules)
-ld_modules = i386_ld.c
-
-if MUDFLAP
-libdw = ../libdw/libdw.a
-libelf = ../libelf/libelf.a
-else
-libdw = ../libdw/libdw.so
-libelf = ../libelf/libelf.so
-endif
-libebl = ../libebl/libebl.a
-libeu = ../lib/libeu.a
-
-readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl
-nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl
-size_LDADD = $(libelf) $(libeu)
-strip_LDADD = $(libebl) $(libelf) $(libeu) -ldl
-ld_LDADD = $(libebl) $(libelf) $(libeu) -ldl
-if NATIVE_LD
-ld_LDADD += libld_elf.a
-endif
-ld_LDFLAGS = -rdynamic
-elflint_LDADD = $(libebl) $(libelf) $(libeu) -ldl
-
-ldlex.o: ldscript.c
-ldlex_no_Werror = yes
-ldscript.h: ldscript.c
-
-# Machine-specific linker code.
-libld_elf_a_SOURCES = $(base_cpu)_ld.c
-
-libld_elf_i386_pic_a_SOURCES =
-am_libld_elf_i386_pic_a_OBJECTS = i386_ld.os
-
-libld_elf_i386_so_SOURCES =
-libld_elf_i386.so: libld_elf_i386_pic.a libld_elf_i386.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- $(libelf) $(libeu) \
- -Wl,--version-script,$(srcdir)/libld_elf_i386.map
-
-
-%.os: %.c %.o
- if $(filter-out -fmudflap,$(COMPILE)) -c -o $@ -fpic -DPIC -DSHARED \
- -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
- `test -f '$<' || echo '$(srcdir)/'`$<; \
- then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
- rm -f "$(DEPDIR)/$*.Tpo"; \
- else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
- fi
-
-# Special rule to make it possible to define libld_elf_a_SOURCES as we do.
-# Otherwise make would complain.
-.deps/none_ld.Po: none_ld.os
- -:
-
-
-installcheck-binPROGRAMS: $(bin_PROGRAMS)
- bad=0; pid=$$$$; list="$(bin_PROGRAMS)"; for p in $$list; do \
- case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
- *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
- esac; \
- f=`echo "$$p" | \
- sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- for opt in --help --version; do \
- if LD_LIBRARY_PATH=$(DESTDIR)$(libdir) \
- $(DESTDIR)$(bindir)/$$f $$opt > c$${pid}_.out 2> c$${pid}_.err \
- && test -n "`cat c$${pid}_.out`" \
- && test -z "`cat c$${pid}_.err`"; then :; \
- else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
- done; \
- done; rm -f c$${pid}_.???; exit $$bad
-
-CLEANFILES = none_ld.os $(ld_modules:.c=.os)
diff --git a/src/Makefile.in b/src/Makefile.in
deleted file mode 100644
index 0eb72237..00000000
--- a/src/Makefile.in
+++ /dev/null
@@ -1,638 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-
-SOURCES = $(libld_elf_a_SOURCES) $(libld_elf_i386_pic_a_SOURCES) elflint.c $(ld_SOURCES) $(libld_elf_i386_so_SOURCES) nm.c readelf.c size.c strip.c
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = readelf$(EXEEXT) nm$(EXEEXT) size$(EXEEXT) \
- strip$(EXEEXT) ld$(EXEEXT) elflint$(EXEEXT)
-@NATIVE_LD_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1)
-@NATIVE_LD_TRUE@am__append_1 = libld_elf.a
-subdir = src
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in ChangeLog ldlex.c ldscript.c ylwrap
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libld_elf_a_AR = $(AR) $(ARFLAGS)
-libld_elf_a_LIBADD =
-am_libld_elf_a_OBJECTS = $(base_cpu)_ld.$(OBJEXT)
-libld_elf_a_OBJECTS = $(am_libld_elf_a_OBJECTS)
-libld_elf_i386_pic_a_AR = $(AR) $(ARFLAGS)
-libld_elf_i386_pic_a_LIBADD =
-libld_elf_i386_pic_a_OBJECTS = $(am_libld_elf_i386_pic_a_OBJECTS)
-am__installdirs = "$(DESTDIR)$(bindir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-am__EXEEXT_1 = libld_elf_i386.so$(EXEEXT)
-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
-elflint_SOURCES = elflint.c
-elflint_OBJECTS = elflint.$(OBJEXT)
-am__DEPENDENCIES_1 = ../libebl/libebl.a
-@MUDFLAP_FALSE@am__DEPENDENCIES_2 = ../libelf/libelf.so
-@MUDFLAP_TRUE@am__DEPENDENCIES_2 = ../libelf/libelf.a
-am__DEPENDENCIES_3 = ../lib/libeu.a
-elflint_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_ld_OBJECTS = ld.$(OBJEXT) ldgeneric.$(OBJEXT) ldlex.$(OBJEXT) \
- ldscript.$(OBJEXT) symbolhash.$(OBJEXT) sectionhash.$(OBJEXT) \
- versionhash.$(OBJEXT)
-ld_OBJECTS = $(am_ld_OBJECTS)
-@NATIVE_LD_TRUE@am__DEPENDENCIES_4 = libld_elf.a
-ld_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4)
-am_libld_elf_i386_so_OBJECTS =
-libld_elf_i386_so_OBJECTS = $(am_libld_elf_i386_so_OBJECTS)
-libld_elf_i386_so_LDADD = $(LDADD)
-nm_SOURCES = nm.c
-nm_OBJECTS = nm.$(OBJEXT)
-@MUDFLAP_FALSE@am__DEPENDENCIES_5 = ../libdw/libdw.so
-@MUDFLAP_TRUE@am__DEPENDENCIES_5 = ../libdw/libdw.a
-nm_DEPENDENCIES = $(am__DEPENDENCIES_5) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3)
-readelf_SOURCES = readelf.c
-readelf_OBJECTS = readelf.$(OBJEXT)
-readelf_DEPENDENCIES = $(am__DEPENDENCIES_5) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3)
-size_SOURCES = size.c
-size_OBJECTS = size.$(OBJEXT)
-size_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3)
-strip_SOURCES = strip.c
-strip_OBJECTS = strip.$(OBJEXT)
-strip_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
-YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
-SOURCES = $(libld_elf_a_SOURCES) $(libld_elf_i386_pic_a_SOURCES) \
- elflint.c $(ld_SOURCES) $(libld_elf_i386_so_SOURCES) nm.c \
- readelf.c size.c strip.c
-DIST_SOURCES = $(libld_elf_a_SOURCES) $(libld_elf_i386_pic_a_SOURCES) \
- elflint.c $(ld_SOURCES) $(libld_elf_i386_so_SOURCES) nm.c \
- readelf.c size.c strip.c
-HEADERS = $(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H $(YYDEBUG) \
- -DSRCDIR=\"$(shell cd $(srcdir);pwd)\" -DOBJDIR=\"$(shell pwd)\"
-
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GMSGFMT = @GMSGFMT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
-MUDFLAP_FALSE = @MUDFLAP_FALSE@
-MUDFLAP_TRUE = @MUDFLAP_TRUE@
-NATIVE_LD_FALSE = @NATIVE_LD_FALSE@
-NATIVE_LD_TRUE = @NATIVE_LD_TRUE@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-XGETTEXT = @XGETTEXT@
-YACC = @YACC@ -d
-ac_ct_CC = @ac_ct_CC@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-base_cpu = @base_cpu@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-@MUDFLAP_FALSE@AM_CFLAGS = -Wall -Wshadow -std=gnu99 \
-@MUDFLAP_FALSE@ $(if $($(*F)_no_Werror),,-Werror) $(native_ld_cflags)
-
-@MUDFLAP_TRUE@AM_CFLAGS = -Wall -Wshadow -std=gnu99 \
-@MUDFLAP_TRUE@ $(native_ld_cflags)
-
-@MUDFLAP_TRUE@AM_LDFLAGS = -fmudflap
-INCLUDES = -I$(srcdir) -I$(srcdir)/../libelf -I$(srcdir)/../libebl -I$(srcdir)/../lib -I$(srcdir)/../libdw -I..
-AM_YFLAGS = -pld
-AM_LFLAGS = -Pld -olex.yy.c
-native_ld = @native_ld@
-ld_dsos = libld_elf_i386_pic.a
-@NATIVE_LD_FALSE@noinst_LIBRARIES = libld_elf.a $(ld_dsos)
-@NATIVE_LD_TRUE@noinst_LIBRARIES = libld_elf.a
-@NATIVE_LD_TRUE@native_ld_cflags = -DBASE_ELF_NAME=elf_$(base_cpu)
-ld_SOURCES = ld.c ldgeneric.c ldlex.l ldscript.y symbolhash.c sectionhash.c \
- versionhash.c
-
-noinst_HEADERS = ld.h symbolhash.h sectionhash.h versionhash.h \
- ldscript.h xelf.h unaligned.h
-
-EXTRA_DIST = elf32-i386.script libld_elf_i386.map $(ld_modules)
-ld_modules = i386_ld.c
-@MUDFLAP_FALSE@libdw = ../libdw/libdw.so
-@MUDFLAP_TRUE@libdw = ../libdw/libdw.a
-@MUDFLAP_FALSE@libelf = ../libelf/libelf.so
-@MUDFLAP_TRUE@libelf = ../libelf/libelf.a
-libebl = ../libebl/libebl.a
-libeu = ../lib/libeu.a
-readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl
-nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl
-size_LDADD = $(libelf) $(libeu)
-strip_LDADD = $(libebl) $(libelf) $(libeu) -ldl
-ld_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(am__append_1)
-ld_LDFLAGS = -rdynamic
-elflint_LDADD = $(libebl) $(libelf) $(libeu) -ldl
-ldlex_no_Werror = yes
-
-# Machine-specific linker code.
-libld_elf_a_SOURCES = $(base_cpu)_ld.c
-libld_elf_i386_pic_a_SOURCES =
-am_libld_elf_i386_pic_a_OBJECTS = i386_ld.os
-libld_elf_i386_so_SOURCES =
-CLEANFILES = none_ld.os $(ld_modules:.c=.os)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .l .o .obj .y
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits src/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits src/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libld_elf.a: $(libld_elf_a_OBJECTS) $(libld_elf_a_DEPENDENCIES)
- -rm -f libld_elf.a
- $(libld_elf_a_AR) libld_elf.a $(libld_elf_a_OBJECTS) $(libld_elf_a_LIBADD)
- $(RANLIB) libld_elf.a
-libld_elf_i386_pic.a: $(libld_elf_i386_pic_a_OBJECTS) $(libld_elf_i386_pic_a_DEPENDENCIES)
- -rm -f libld_elf_i386_pic.a
- $(libld_elf_i386_pic_a_AR) libld_elf_i386_pic.a $(libld_elf_i386_pic_a_OBJECTS) $(libld_elf_i386_pic_a_LIBADD)
- $(RANLIB) libld_elf_i386_pic.a
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- if test -f $$p \
- ; then \
- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
- else :; fi; \
- done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
-
-clean-binPROGRAMS:
- -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-elflint$(EXEEXT): $(elflint_OBJECTS) $(elflint_DEPENDENCIES)
- @rm -f elflint$(EXEEXT)
- $(LINK) $(elflint_LDFLAGS) $(elflint_OBJECTS) $(elflint_LDADD) $(LIBS)
-ld$(EXEEXT): $(ld_OBJECTS) $(ld_DEPENDENCIES)
- @rm -f ld$(EXEEXT)
- $(LINK) $(ld_LDFLAGS) $(ld_OBJECTS) $(ld_LDADD) $(LIBS)
-nm$(EXEEXT): $(nm_OBJECTS) $(nm_DEPENDENCIES)
- @rm -f nm$(EXEEXT)
- $(LINK) $(nm_LDFLAGS) $(nm_OBJECTS) $(nm_LDADD) $(LIBS)
-readelf$(EXEEXT): $(readelf_OBJECTS) $(readelf_DEPENDENCIES)
- @rm -f readelf$(EXEEXT)
- $(LINK) $(readelf_LDFLAGS) $(readelf_OBJECTS) $(readelf_LDADD) $(LIBS)
-size$(EXEEXT): $(size_OBJECTS) $(size_DEPENDENCIES)
- @rm -f size$(EXEEXT)
- $(LINK) $(size_LDFLAGS) $(size_OBJECTS) $(size_LDADD) $(LIBS)
-strip$(EXEEXT): $(strip_OBJECTS) $(strip_DEPENDENCIES)
- @rm -f strip$(EXEEXT)
- $(LINK) $(strip_LDFLAGS) $(strip_OBJECTS) $(strip_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/$(base_cpu)_ld.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elflint.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ld.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldgeneric.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldlex.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldscript.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readelf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sectionhash.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/size.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strip.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symbolhash.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/versionhash.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.l.c:
- $(LEXCOMPILE) $<
- sed '/^#/ s|$(LEX_OUTPUT_ROOT)\.c|$@|' $(LEX_OUTPUT_ROOT).c >$@
- rm -f $(LEX_OUTPUT_ROOT).c
-
-.y.c:
- $(YACCCOMPILE) $<
- if test -f y.tab.h; then \
- to=`echo "$*_H" | sed \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
- -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \
- sed -e "/^#/!b" -e "s/Y_TAB_H/$$to/g" -e "s|y\.tab\.h|$*.h|" \
- y.tab.h >$*.ht; \
- rm -f y.tab.h; \
- if cmp -s $*.ht $*.h; then \
- rm -f $*.ht ;\
- else \
- mv $*.ht $*.h; \
- fi; \
- fi
- if test -f y.output; then \
- mv y.output $*.output; \
- fi
- sed '/^#/ s|y\.tab\.c|$@|' y.tab.c >$@t && mv $@t $@
- rm -f y.tab.c
-uninstall-info-am:
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
- -rm -f ldlex.c
- -rm -f ldscript.c
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-noinstLIBRARIES \
- clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am: installcheck-binPROGRAMS
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
- clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS ctags \
- distclean distclean-compile distclean-generic distclean-tags \
- distdir dvi dvi-am html html-am info info-am install \
- install-am install-binPROGRAMS install-data install-data-am \
- install-exec install-exec-am install-info install-info-am \
- install-man install-strip installcheck installcheck-am \
- installcheck-binPROGRAMS installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-binPROGRAMS uninstall-info-am
-
-
-ldlex.o: ldscript.c
-ldscript.h: ldscript.c
-libld_elf_i386.so: libld_elf_i386_pic.a libld_elf_i386.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- $(libelf) $(libeu) \
- -Wl,--version-script,$(srcdir)/libld_elf_i386.map
-
-%.os: %.c %.o
- if $(filter-out -fmudflap,$(COMPILE)) -c -o $@ -fpic -DPIC -DSHARED \
- -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
- `test -f '$<' || echo '$(srcdir)/'`$<; \
- then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
- rm -f "$(DEPDIR)/$*.Tpo"; \
- else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
- fi
-
-# Special rule to make it possible to define libld_elf_a_SOURCES as we do.
-# Otherwise make would complain.
-.deps/none_ld.Po: none_ld.os
- -:
-
-installcheck-binPROGRAMS: $(bin_PROGRAMS)
- bad=0; pid=$$$$; list="$(bin_PROGRAMS)"; for p in $$list; do \
- case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
- *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
- esac; \
- f=`echo "$$p" | \
- sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- for opt in --help --version; do \
- if LD_LIBRARY_PATH=$(DESTDIR)$(libdir) \
- $(DESTDIR)$(bindir)/$$f $$opt > c$${pid}_.out 2> c$${pid}_.err \
- && test -n "`cat c$${pid}_.out`" \
- && test -z "`cat c$${pid}_.err`"; then :; \
- else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
- done; \
- done; rm -f c$${pid}_.???; exit $$bad
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/elf32-i386.script b/src/elf32-i386.script
deleted file mode 100644
index d62333ac..00000000
--- a/src/elf32-i386.script
+++ /dev/null
@@ -1,215 +0,0 @@
-ENTRY(_start);
-
-SEARCH_DIR(/lib);
-SEARCH_DIR(/usr/lib);
-SEARCH_DIR(/usr/local/lib);
-SEARCH_DIR(/usr/i686-pc-linux-gnu/lib);
-
-INTERP(/lib/ld-linux.so.2);
-
-PAGESIZE(4k);
-
-SEGMENT [RX]
-{
-#ifdef SHARED
- . = SIZEOF_HEADERS;
-#else
- . = 0x08048000 + SIZEOF_HEADERS;
-#endif
-
- .interp;
- .hash;
- .dynsym;
- .dynstr;
- .gnu.version;
- .gnu.version_d;
- .gnu.version_r;
- .rel.dyn;
- .rel.plt;
- .init { KEEP (*(.init)) }
- .plt;
- .text
- {
- *(.text)
- *(.text.*)
- *(.stub)
- *(.gnu.warning)
- *(.gnu.linkonce.t.*)
- }
- .fini { KEEP (*(.fini)) }
- PROVIDE (__etext = .);
- PROVIDE (_etext = .);
- PROVIDE (etext = .);
- .rodata
- {
- *(.rodata)
- *(.rodata.*)
- *(.gnu.linkonce.r.*)
- }
- .rodata1;
- . = ALIGN(32 / 8);
- PROVIDE (__preinit_array_start = .);
- .preinit_array
- {
- *(.preinit_array)
- }
- PROVIDE (__preinit_array_end = .);
- PROVIDE (__init_array_start = .);
- .init_array
- {
- *(.init_array)
- }
- PROVIDE (__init_array_end = .);
- PROVIDE (__fini_array_start = .);
- .fini_array
- {
- *(.fini_array)
- }
- PROVIDE (__fini_array_end = .);
-}
-
-SEGMENT [RW]
-{
- .sdata2
- {
- *(.sdata2)
- *(.sdata2.*)
- *(.gnu.linkonce.s2.*)
- }
- .sbss2
- {
- *(.sbss2)
- *(.sbss2.*)
- *(.gnu.linkonce.sb2.*)
- }
- /* Adjust the address for the data segment. We want to adjust up to
- the same address within the page on the next page up. */
- . = ALIGN(PAGESIZE) + (. & (PAGESIZE - 1));
- .data
- {
- *(.data)
- *(.data.*)
- *(.gnu.linkonce.d.*)
- }
- .data1;
- .eh_frame
- {
- KEEP (*(.eh_frame))
- }
- .gcc_except_table;
- .ctors
- {
- /* gcc uses crtbegin.o to find the start of
- the constructors, so we make sure it is
- first. Because this is a wildcard, it
- doesn't matter if the user does not
- actually link against crtbegin.o; the
- linker won't look for a file to match a
- wildcard. The wildcard also means that it
- doesn't matter which directory crtbegin.o
- is in. */
- KEEP (*crtbegin.o(.ctors))
- /* We don't want to include the .ctor section from
- from the crtend.o file until after the sorted ctors.
- The .ctor section from the crtend file contains the
- end of ctors marker and it must be last */
- KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors))
- }
- .dtors
- {
- KEEP (*crtbegin.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors))
- }
- .jcr;
- .got
- {
- *(.got.plt)
- *(.got)
- }
- .dynamic;
- /* We want the small data sections together, so single-instruction offsets
- can access them all, and initialized data all before uninitialized, so
- we can shorten the on-disk segment size. */
- .sdata
- {
- *(.sdata)
- *(.sdata.*)
- *(.gnu.linkonce.s.*)
- }
- _edata = .;
- PROVIDE (edata = .);
- __bss_start = .;
- .sbss
- {
- PROVIDE (__sbss_start = .);
- PROVIDE (___sbss_start = .);
- *(.dynsbss)
- *(.sbss)
- *(.sbss.*)
- *(.gnu.linkonce.sb.*)
- *(.scommon)
- PROVIDE (__sbss_end = .);
- PROVIDE (___sbss_end = .);
- }
- .bss
- {
- *(.dynbss)
- *(.bss)
- *(.bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- /* Align here to ensure that the .bss section occupies space up to
- _end. Align after .bss to ensure correct alignment even if the
- .bss section disappears because there are no input sections. */
- . = ALIGN(32 / 8);
- }
- . = ALIGN(32 / 8);
- _end = .;
- PROVIDE (end = .);
-}
-
-SEGMENT []
-{
- /* Stabs debugging sections. */
- .stab;
- .stabstr;
- .stab.excl;
- .stab.exclstr;
- .stab.index;
- .stab.indexstr;
- .comment;
- /* DWARF debug sections.
- Symbols in the DWARF debugging sections are relative to the beginning
- of the section so we begin them at 0. */
- /* DWARF 1 */
- .debug;
- .line;
- /* GNU DWARF 1 extensions */
- .debug_srcinfo;
- .debug_sfnames;
- /* DWARF 1.1 and DWARF 2 */
- .debug_aranges;
- .debug_pubnames;
- /* DWARF 2 */
- .debug_info
- {
- *(.debug_info)
- *(.gnu.linkonce.wi.*)
- }
- .debug_abbrev;
- .debug_line;
- .debug_frame;
- .debug_str;
- .debug_loc;
- .debug_macinfo;
- /* SGI/MIPS DWARF 2 extensions */
- .debug_weaknames;
- .debug_funcnames;
- .debug_typenames;
- .debug_varnames;
- /* These must appear regardless of . */
-}
diff --git a/src/elflint.c b/src/elflint.c
deleted file mode 100644
index d66cdd13..00000000
--- a/src/elflint.c
+++ /dev/null
@@ -1,2578 +0,0 @@
-/* Pedantic checking of ELF files compliance with gABI/psABI spec.
- Copyright (C) 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <argp.h>
-#include <assert.h>
-#include <byteswap.h>
-#include <endian.h>
-#include <error.h>
-#include <fcntl.h>
-#include <gelf.h>
-#include <inttypes.h>
-#include <libebl.h>
-#include <libintl.h>
-#include <locale.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/param.h>
-
-#include <elf-knowledge.h>
-#include <system.h>
-
-
-/* Name and version of program. */
-static void print_version (FILE *stream, struct argp_state *state);
-void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
-
-
-#define ARGP_strict 300
-#define ARGP_gnuld 301
-
-/* Definitions of arguments for argp functions. */
-static const struct argp_option options[] =
-{
-
- { "strict", ARGP_strict, NULL, 0,
- N_("Be extremely strict, flag level 2 features.") },
- { "quiet", 'q', NULL, 0, N_("Do not print anything if successful") },
- { "gnu-ld", ARGP_gnuld, NULL, 0,
- N_("Binary has been created with GNU ld and is therefore known to be \
-broken in certain ways") },
- { NULL, 0, NULL, 0, NULL }
-};
-
-/* Short description of program. */
-static const char doc[] = N_("\
-Pedantic checking of ELF files compliance with gABI/psABI spec.");
-
-/* Strings for arguments in help texts. */
-static const char args_doc[] = N_("FILE...");
-
-/* Prototype for option handler. */
-static error_t parse_opt (int key, char *arg, struct argp_state *state);
-
-/* Function to print some extra text in the help message. */
-static char *more_help (int key, const char *text, void *input);
-
-/* Data structure to communicate with argp functions. */
-static struct argp argp =
-{
- options, parse_opt, args_doc, doc, NULL, more_help
-};
-
-
-/* Declarations of local functions. */
-static void process_file (int fd, Elf *elf, const char *prefix,
- const char *suffix, const char *fname, size_t size,
- bool only_one);
-static void process_elf_file (Elf *elf, const char *prefix, const char *suffix,
- const char *fname, size_t size, bool only_one);
-
-/* Report an error. */
-#define ERROR(str, args...) \
- do { \
- printf (str, ##args); \
- ++error_count; \
- } while (0)
-static int error_count;
-
-/* True if we should perform very strict testing. */
-static bool be_strict;
-
-/* True if no message is to be printed if the run is succesful. */
-static bool be_quiet;
-
-/* True if binary is assumed to be generated with GNU ld. */
-static bool gnuld;
-
-/* Index of section header string table. */
-static uint32_t shstrndx;
-
-/* Array to count references in section groups. */
-static int *scnref;
-
-
-int
-main (int argc, char *argv[])
-{
- int remaining;
- bool only_one;
-
- /* Set locale. */
- setlocale (LC_ALL, "");
-
- /* Initialize the message catalog. */
- textdomain (PACKAGE);
-
- /* Parse and process arguments. */
- argp_parse (&argp, argc, argv, 0, &remaining, NULL);
-
- /* If no ELF file is given punt. */
- if (remaining >= argc)
- {
- argp_help (&argp, stdout, ARGP_HELP_SEE | ARGP_HELP_EXIT_ERR,
- program_invocation_short_name);
- exit (1);
- }
-
- /* Before we start tell the ELF library which version we are using. */
- elf_version (EV_CURRENT);
-
- /* Now process all the files given at the command line. */
- only_one = remaining + 1 == argc;
- do
- {
- int fd;
- Elf *elf;
-
- /* Open the file. */
- fd = open (argv[remaining], O_RDONLY);
- if (fd == -1)
- {
- error (0, errno, gettext ("cannot open input file"));
- continue;
- }
-
- /* Create an `Elf' descriptor. */
- elf = elf_begin (fd, ELF_C_READ_MMAP, NULL);
- if (elf == NULL)
- ERROR (gettext ("cannot generate Elf descriptor: %s\n"),
- elf_errmsg (-1));
- else
- {
- unsigned int prev_error_count = error_count;
- struct stat64 st;
-
- if (fstat64 (fd, &st) != 0)
- {
- printf ("cannot stat '%s': %m\n", argv[remaining]);
- close (fd);
- continue;
- }
-
- process_file (fd, elf, NULL, NULL, argv[remaining], st.st_size,
- only_one);
-
- /* Now we can close the descriptor. */
- if (elf_end (elf) != 0)
- ERROR (gettext ("error while closing Elf descriptor: %s\n"),
- elf_errmsg (-1));
-
- if (prev_error_count == error_count && !be_quiet)
- puts (gettext ("No errors"));
- }
-
- close (fd);
- }
- while (++remaining < argc);
-
- return error_count != 0;
-}
-
-
-/* Handle program arguments. */
-static error_t
-parse_opt (int key, char *arg, struct argp_state *state)
-{
- switch (key)
- {
- case ARGP_strict:
- be_strict = true;
- break;
-
- case 'q':
- be_quiet = true;
- break;
-
- case ARGP_gnuld:
- gnuld = true;
- break;
-
- default:
- return ARGP_ERR_UNKNOWN;
- }
- return 0;
-}
-
-
-static char *
-more_help (int key, const char *text, void *input)
-{
- char *buf;
-
- switch (key)
- {
- case ARGP_KEY_HELP_EXTRA:
- /* We print some extra information. */
- if (asprintf (&buf, gettext ("Please report bugs to %s.\n"),
- PACKAGE_BUGREPORT) < 0)
- buf = NULL;
- return buf;
-
- default:
- break;
- }
- return (char *) text;
-}
-
-
-/* Print the version information. */
-static void
-print_version (FILE *stream, struct argp_state *state)
-{
- fprintf (stream, "elflint (%s) %s\n", PACKAGE_NAME, VERSION);
- fprintf (stream, gettext ("\
-Copyright (C) %s Red Hat, Inc.\n\
-This is free software; see the source for copying conditions. There is NO\n\
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2004");
- fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
-}
-
-
-/* Process one file. */
-static void
-process_file (int fd, Elf *elf, const char *prefix, const char *suffix,
- const char *fname, size_t size, bool only_one)
-{
- /* We can handle two types of files: ELF files and archives. */
- Elf_Kind kind = elf_kind (elf);
-
- switch (kind)
- {
- case ELF_K_ELF:
- /* Yes! It's an ELF file. */
- process_elf_file (elf, prefix, suffix, fname, size, only_one);
- break;
-
- case ELF_K_AR:
- {
- Elf *subelf;
- Elf_Cmd cmd = ELF_C_READ_MMAP;
- size_t prefix_len = prefix == NULL ? 0 : strlen (prefix);
- size_t fname_len = strlen (fname) + 1;
- char new_prefix[prefix_len + 1 + fname_len];
- char new_suffix[(suffix == NULL ? 0 : strlen (suffix)) + 2];
- char *cp = new_prefix;
-
- /* Create the full name of the file. */
- if (prefix != NULL)
- {
- cp = mempcpy (cp, prefix, prefix_len);
- *cp++ = '(';
- strcpy (stpcpy (new_suffix, suffix), ")");
- }
- else
- new_suffix[0] = '\0';
- memcpy (cp, fname, fname_len);
-
- /* It's an archive. We process each file in it. */
- while ((subelf = elf_begin (fd, cmd, elf)) != NULL)
- {
- kind = elf_kind (subelf);
-
- /* Call this function recursively. */
- if (kind == ELF_K_ELF || kind == ELF_K_AR)
- {
- Elf_Arhdr *arhdr = elf_getarhdr (subelf);
- assert (arhdr != NULL);
-
- process_file (fd, subelf, new_prefix, new_suffix,
- arhdr->ar_name, arhdr->ar_size, false);
- }
-
- /* Get next archive element. */
- cmd = elf_next (subelf);
- if (elf_end (subelf) != 0)
- ERROR (gettext (" error while freeing sub-ELF descriptor: %s\n"),
- elf_errmsg (-1));
- }
- }
- break;
-
- default:
- /* We cannot do anything. */
- ERROR (gettext ("\
-Not an ELF file - it has the wrong magic bytes at the start"));
- break;
- }
-}
-
-
-static const char *
-section_name (Ebl *ebl, GElf_Ehdr *ehdr, int idx)
-{
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
-
- shdr = gelf_getshdr (elf_getscn (ebl->elf, idx), &shdr_mem);
-
- return elf_strptr (ebl->elf, shstrndx, shdr->sh_name);
-}
-
-
-static const int valid_e_machine[] =
- {
- EM_M32, EM_SPARC, EM_386, EM_68K, EM_88K, EM_860, EM_MIPS, EM_S370,
- EM_MIPS_RS3_LE, EM_PARISC, EM_VPP500, EM_SPARC32PLUS, EM_960, EM_PPC,
- EM_PPC64, EM_S390, EM_V800, EM_FR20, EM_RH32, EM_RCE, EM_ARM,
- EM_FAKE_ALPHA, EM_SH, EM_SPARCV9, EM_TRICORE, EM_ARC, EM_H8_300,
- EM_H8_300H, EM_H8S, EM_H8_500, EM_IA_64, EM_MIPS_X, EM_COLDFIRE,
- EM_68HC12, EM_MMA, EM_PCP, EM_NCPU, EM_NDR1, EM_STARCORE, EM_ME16,
- EM_ST100, EM_TINYJ, EM_X86_64, EM_PDSP, EM_FX66, EM_ST9PLUS, EM_ST7,
- EM_68HC16, EM_68HC11, EM_68HC08, EM_68HC05, EM_SVX, EM_ST19, EM_VAX,
- EM_CRIS, EM_JAVELIN, EM_FIREPATH, EM_ZSP, EM_MMIX, EM_HUANY, EM_PRISM,
- EM_AVR, EM_FR30, EM_D10V, EM_D30V, EM_V850, EM_M32R, EM_MN10300,
- EM_MN10200, EM_PJ, EM_OPENRISC, EM_ARC_A5, EM_XTENSA
- };
-#define nvalid_e_machine \
- (sizeof (valid_e_machine) / sizeof (valid_e_machine[0]))
-
-
-/* Number of sections. */
-static unsigned int shnum;
-
-
-static void
-check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size)
-{
- char buf[512];
- size_t cnt;
-
- /* Check e_ident field. */
- if (ehdr->e_ident[EI_MAG0] != ELFMAG0)
- ERROR ("e_ident[%d] != '%c'\n", EI_MAG0, ELFMAG0);
- if (ehdr->e_ident[EI_MAG1] != ELFMAG1)
- ERROR ("e_ident[%d] != '%c'\n", EI_MAG1, ELFMAG1);
- if (ehdr->e_ident[EI_MAG2] != ELFMAG2)
- ERROR ("e_ident[%d] != '%c'\n", EI_MAG2, ELFMAG2);
- if (ehdr->e_ident[EI_MAG3] != ELFMAG3)
- ERROR ("e_ident[%d] != '%c'\n", EI_MAG3, ELFMAG3);
-
- if (ehdr->e_ident[EI_CLASS] != ELFCLASS32
- && ehdr->e_ident[EI_CLASS] != ELFCLASS64)
- ERROR (gettext ("e_ident[%d] == %d is no known class\n"),
- EI_CLASS, ehdr->e_ident[EI_CLASS]);
-
- if (ehdr->e_ident[EI_DATA] != ELFDATA2LSB
- && ehdr->e_ident[EI_DATA] != ELFDATA2MSB)
- ERROR (gettext ("e_ident[%d] == %d is no known data encoding\n"),
- EI_DATA, ehdr->e_ident[EI_DATA]);
-
- if (ehdr->e_ident[EI_VERSION] != EV_CURRENT)
- ERROR (gettext ("unknown ELF header version number e_ident[%d] == %d\n"),
- EI_VERSION, ehdr->e_ident[EI_VERSION]);
-
- /* We currently don't handle any OS ABIs. */
- if (ehdr->e_ident[EI_OSABI] != ELFOSABI_NONE)
- ERROR (gettext ("unsupported OS ABI e_ident[%d] == \"%s\"\n"),
- EI_OSABI,
- ebl_osabi_name (ebl, ehdr->e_ident[EI_OSABI], buf, sizeof (buf)));
-
- /* No ABI versions other than zero supported either. */
- if (ehdr->e_ident[EI_ABIVERSION] != 0)
- ERROR (gettext ("unsupport ABI version e_ident[%d] == %d\n"),
- EI_ABIVERSION, ehdr->e_ident[EI_ABIVERSION]);
-
- for (cnt = EI_PAD; cnt < EI_NIDENT; ++cnt)
- if (ehdr->e_ident[cnt] != 0)
- ERROR (gettext ("e_ident[%zu] is not zero\n"), cnt);
-
- /* Check the e_type field. */
- if (ehdr->e_type != ET_REL && ehdr->e_type != ET_EXEC
- && ehdr->e_type != ET_DYN && ehdr->e_type != ET_CORE)
- ERROR (gettext ("unknown object file type %d\n"), ehdr->e_type);
-
- /* Check the e_machine field. */
- for (cnt = 0; cnt < nvalid_e_machine; ++cnt)
- if (valid_e_machine[cnt] == ehdr->e_machine)
- break;
- if (cnt == nvalid_e_machine)
- ERROR (gettext ("unknown machine type %d\n"), ehdr->e_machine);
-
- /* Check the e_version field. */
- if (ehdr->e_version != EV_CURRENT)
- ERROR (gettext ("unknown object file version\n"));
-
- /* Check the e_phoff and e_phnum fields. */
- if (ehdr->e_phoff == 0)
- {
- if (ehdr->e_phnum != 0)
- ERROR (gettext ("invalid program header offset\n"));
- else if (ehdr->e_type == ET_EXEC || ehdr->e_type == ET_DYN)
- ERROR (gettext ("\
-executables and DSOs cannot have zero program header offset\n"));
- }
- else if (ehdr->e_phnum == 0)
- ERROR (gettext ("invalid number of program header entries\n"));
-
- /* Check the e_shoff field. */
- shnum = ehdr->e_shnum;
- shstrndx = ehdr->e_shstrndx;
- if (ehdr->e_shoff == 0)
- {
- if (ehdr->e_shnum != 0)
- ERROR (gettext ("invalid section header table offset\n"));
- else if (ehdr->e_type != ET_EXEC && ehdr->e_type != ET_DYN
- && ehdr->e_type != ET_CORE)
- ERROR (gettext ("section header table must be present\n"));
- }
- else
- {
- if (ehdr->e_shnum == 0)
- {
- /* Get the header of the zeroth section. The sh_size field
- might contain the section number. */
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
-
- shdr = gelf_getshdr (elf_getscn (ebl->elf, 0), &shdr_mem);
- if (shdr != NULL)
- {
- /* The error will be reported later. */
- if (shdr->sh_size == 0)
- ERROR (gettext ("\
-invalid number of section header table entries\n"));
- else
- shnum = shdr->sh_size;
- }
- }
-
- if (ehdr->e_shstrndx == SHN_XINDEX)
- {
- /* Get the header of the zeroth section. The sh_size field
- might contain the section number. */
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
-
- shdr = gelf_getshdr (elf_getscn (ebl->elf, 0), &shdr_mem);
- if (shdr != NULL)
- {
- /* The error will be reported later. */
- if (shdr->sh_link >= shnum)
- ERROR (gettext ("invalid section header index\n"));
- else
- shstrndx = shdr->sh_link;
- }
- }
- else if (shstrndx >= shnum)
- ERROR (gettext ("invalid section header index\n"));
- }
-
- /* Check the e_flags field. */
- if (!ebl_machine_flag_check (ebl, ehdr->e_flags))
- ERROR (gettext ("invalid machine flags: %s\n"),
- ebl_machine_flag_name (ebl, ehdr->e_flags, buf, sizeof (buf)));
-
- /* Check e_ehsize, e_phentsize, and e_shentsize fields. */
- if (gelf_getclass (ebl->elf) == ELFCLASS32)
- {
- if (ehdr->e_ehsize != 0 && ehdr->e_ehsize != sizeof (Elf32_Ehdr))
- ERROR (gettext ("invalid ELF header size: %hd\n"), ehdr->e_ehsize);
-
- if (ehdr->e_phentsize != 0 && ehdr->e_phentsize != sizeof (Elf32_Phdr))
- ERROR (gettext ("invalid program header size: %hd\n"),
- ehdr->e_phentsize);
- else if (ehdr->e_phoff + ehdr->e_phnum * ehdr->e_phentsize > size)
- ERROR (gettext ("invalid program header position or size\n"));
-
- if (ehdr->e_shentsize != 0 && ehdr->e_shentsize != sizeof (Elf32_Shdr))
- ERROR (gettext ("invalid section header size: %hd\n"),
- ehdr->e_shentsize);
- else if (ehdr->e_shoff + ehdr->e_shnum * ehdr->e_shentsize > size)
- ERROR (gettext ("invalid section header position or size\n"));
- }
- else if (gelf_getclass (ebl->elf) == ELFCLASS64)
- {
- if (ehdr->e_ehsize != 0 && ehdr->e_ehsize != sizeof (Elf64_Ehdr))
- ERROR (gettext ("invalid ELF header size: %hd\n"), ehdr->e_ehsize);
-
- if (ehdr->e_phentsize != 0 && ehdr->e_phentsize != sizeof (Elf64_Phdr))
- ERROR (gettext ("invalid program header size: %hd\n"),
- ehdr->e_phentsize);
- else if (ehdr->e_phoff + ehdr->e_phnum * ehdr->e_phentsize > size)
- ERROR (gettext ("invalid program header position or size\n"));
-
- if (ehdr->e_shentsize != 0 && ehdr->e_shentsize != sizeof (Elf64_Shdr))
- ERROR (gettext ("invalid section header size: %hd\n"),
- ehdr->e_shentsize);
- else if (ehdr->e_shoff + ehdr->e_shnum * ehdr->e_shentsize > size)
- ERROR (gettext ("invalid section header position or size\n"));
- }
-}
-
-
-/* Check that there is a section group section with index < IDX which
- contains section IDX and that there is exactly one. */
-static void
-check_scn_group (Ebl *ebl, GElf_Ehdr *ehdr, int idx)
-{
- if (scnref[idx] == 0)
- {
- /* No reference so far. Search following sections, maybe the
- order is wrong. */
- size_t cnt;
-
- for (cnt = idx + 1; cnt < shnum; ++cnt)
- {
- Elf_Scn *scn;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
- Elf_Data *data;
- Elf32_Word *grpdata;
- size_t inner;
-
- scn = elf_getscn (ebl->elf, cnt);
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- /* We cannot get the section header so we cannot check it.
- The error to get the section header will be shown
- somewhere else. */
- continue;
-
- if (shdr->sh_type != SHT_GROUP)
- continue;
-
- data = elf_getdata (scn, NULL);
- if (data == NULL || data->d_size < sizeof (Elf32_Word))
- /* Cannot check the section. */
- continue;
-
- grpdata = (Elf32_Word *) data->d_buf;
- for (inner = 1; inner < data->d_size / sizeof (Elf32_Word); ++inner)
- if (grpdata[inner] == (Elf32_Word) idx)
- goto out;
- }
-
- out:
- if (cnt == shnum)
- ERROR (gettext ("\
-section [%2d] '%s': section with SHF_GROUP flag set not part of a section group\n"),
- idx, section_name (ebl, ehdr, idx));
- else
- ERROR (gettext ("\
-section [%2d] '%s': section group [%2zu] '%s' does not preceed group member\n"),
- idx, section_name (ebl, ehdr, idx),
- cnt, section_name (ebl, ehdr, cnt));
- }
-}
-
-
-static void
-check_symtab (Ebl *ebl, GElf_Ehdr *ehdr, int idx)
-{
- bool no_xndx_warned = false;
- int no_pt_tls = 0;
-
- Elf_Scn *scn = elf_getscn (ebl->elf, idx);
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
- GElf_Shdr strshdr_mem;
- GElf_Shdr *strshdr = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
- &strshdr_mem);
- if (shdr == NULL || strshdr == NULL)
- return;
- Elf_Data *data = elf_getdata (scn, NULL);
- if (data == NULL)
- {
- ERROR (gettext ("section [%2d] '%s': cannot get section data\n"),
- idx, section_name (ebl, ehdr, idx));
- return;
- }
-
- if (strshdr->sh_type != SHT_STRTAB)
- ERROR (gettext ("section [%2d] '%s': referenced as string table for section [%2d] '%s' but type is not SHT_STRTAB\n"),
- shdr->sh_link, section_name (ebl, ehdr, shdr->sh_link),
- idx, section_name (ebl, ehdr, idx));
-
- /* Search for an extended section index table section. */
- size_t cnt;
- GElf_Shdr xndxshdr_mem;
- GElf_Shdr *xndxshdr = NULL;
- Elf_Data *xndxdata = NULL;
- Elf32_Word xndxscnidx = 0;
- for (cnt = 1; cnt < shnum; ++cnt)
- if (cnt != (size_t) idx)
- {
- Elf_Scn *xndxscn = elf_getscn (ebl->elf, cnt);
- xndxshdr = gelf_getshdr (xndxscn, &xndxshdr_mem);
- xndxdata = elf_getdata (xndxscn, NULL);
- xndxscnidx = elf_ndxscn (xndxscn);
-
- if (xndxshdr == NULL || xndxdata == NULL)
- continue;
-
- if (xndxshdr->sh_type == SHT_SYMTAB_SHNDX
- && xndxshdr->sh_link == (GElf_Word) idx)
- break;
- }
- if (cnt == shnum)
- {
- xndxshdr = NULL;
- xndxdata = NULL;
- }
-
- if (shdr->sh_entsize != gelf_fsize (ebl->elf, ELF_T_SYM, 1, EV_CURRENT))
- ERROR (gettext ("\
-section [%2zu] '%s': entry size is does not match ElfXX_Sym\n"),
- cnt, section_name (ebl, ehdr, cnt));
-
- /* Test the zeroth entry. */
- GElf_Sym sym_mem;
- Elf32_Word xndx;
- GElf_Sym *sym = gelf_getsymshndx (data, xndxdata, 0, &sym_mem, &xndx);
- if (sym == NULL)
- ERROR (gettext ("section [%2d] '%s': cannot get symbol %d: %s\n"),
- idx, section_name (ebl, ehdr, idx), 0, elf_errmsg (-1));
- else
- {
- if (sym->st_name != 0)
- ERROR (gettext ("section [%2d] '%s': '%s' in zeroth entry not zero\n"),
- idx, section_name (ebl, ehdr, idx), "st_name");
- if (sym->st_value != 0)
- ERROR (gettext ("section [%2d] '%s': '%s' in zeroth entry not zero\n"),
- idx, section_name (ebl, ehdr, idx), "st_value");
- if (sym->st_size != 0)
- ERROR (gettext ("section [%2d] '%s': '%s' in zeroth entry not zero\n"),
- idx, section_name (ebl, ehdr, idx), "st_size");
- if (sym->st_info != 0)
- ERROR (gettext ("section [%2d] '%s': '%s' in zeroth entry not zero\n"),
- idx, section_name (ebl, ehdr, idx), "st_info");
- if (sym->st_other != 0)
- ERROR (gettext ("section [%2d] '%s': '%s' in zeroth entry not zero\n"),
- idx, section_name (ebl, ehdr, idx), "st_other");
- if (sym->st_shndx != 0)
- ERROR (gettext ("section [%2d] '%s': '%s' in zeroth entry not zero\n"),
- idx, section_name (ebl, ehdr, idx), "st_shndx");
- if (xndxdata != NULL && xndx != 0)
- ERROR (gettext ("\
-section [%2d] '%s': XINDEX for zeroth entry not zero\n"),
- xndxscnidx, section_name (ebl, ehdr, xndxscnidx));
- }
-
- for (cnt = 1; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
- {
- sym = gelf_getsymshndx (data, xndxdata, cnt, &sym_mem, &xndx);
- if (sym == NULL)
- {
- ERROR (gettext ("section [%2d] '%s': cannot get symbol %zu: %s\n"),
- idx, section_name (ebl, ehdr, idx), cnt, elf_errmsg (-1));
- continue;
- }
-
- const char *name = NULL;
- if (sym->st_name >= strshdr->sh_size)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: invalid name value\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
- else
- {
- name = elf_strptr (ebl->elf, shdr->sh_link, sym->st_name);
- assert (name != NULL);
- }
-
- if (sym->st_shndx == SHN_XINDEX)
- {
- if (xndxdata == NULL)
- {
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: too large section index but no extended section index section\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
- no_xndx_warned = true;
- }
- else if (xndx < SHN_LORESERVE)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: XINDEX used for index which would fit in st_shndx (%" PRIu32 ")\n"),
- xndxscnidx, section_name (ebl, ehdr, xndxscnidx), cnt,
- xndx);
- }
- else if ((sym->st_shndx >= SHN_LORESERVE
- // && sym->st_shndx <= SHN_HIRESERVE always true
- && sym->st_shndx != SHN_ABS
- && sym->st_shndx != SHN_COMMON)
- || (sym->st_shndx >= shnum
- && (sym->st_shndx < SHN_LORESERVE
- /* || sym->st_shndx > SHN_HIRESERVE always false */)))
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: invalid section index\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
- else
- xndx = sym->st_shndx;
-
- if (GELF_ST_TYPE (sym->st_info) >= STT_NUM)
- ERROR (gettext ("section [%2d] '%s': symbol %zu: unknown type\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
-
- if (GELF_ST_BIND (sym->st_info) >= STB_NUM)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: unknown symbol binding\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
-
- if (xndx == SHN_COMMON)
- {
- /* Common symbols can only appear in relocatable files. */
- if (ehdr->e_type != ET_REL)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: COMMON only allowed in relocatable files\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
- if (cnt < shdr->sh_info)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: local COMMON symbols are nonsense\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
- if (GELF_R_TYPE (sym->st_info) == STT_FUNC)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: function in COMMON section is nonsense\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
- }
- else if (xndx > 0 && xndx < shnum)
- {
- GElf_Shdr destshdr_mem;
- GElf_Shdr *destshdr;
-
- destshdr = gelf_getshdr (elf_getscn (ebl->elf, xndx), &destshdr_mem);
- if (destshdr != NULL)
- {
- if (GELF_ST_TYPE (sym->st_info) != STT_TLS)
- {
- if ((sym->st_value - destshdr->sh_addr) > destshdr->sh_size)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: st_value out of bounds\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
- else if ((sym->st_value - destshdr->sh_addr + sym->st_size)
- > destshdr->sh_size)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu does not fit completely in referenced section [%2d] '%s'\n"),
- idx, section_name (ebl, ehdr, idx), cnt,
- (int) xndx, section_name (ebl, ehdr, xndx));
- }
- else
- {
- if ((destshdr->sh_flags & SHF_TLS) == 0)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: referenced section [%2d] '%s' does not have SHF_TLS flag set\n"),
- idx, section_name (ebl, ehdr, idx), cnt,
- (int) xndx, section_name (ebl, ehdr, xndx));
-
- if (ehdr->e_type == ET_REL)
- {
- /* For object files the symbol value must fall
- into the section. */
- if (sym->st_value > destshdr->sh_size)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section [%2d] '%s'\n"),
- idx, section_name (ebl, ehdr, idx), cnt,
- (int) xndx, section_name (ebl, ehdr, xndx));
- else if (sym->st_value + sym->st_size
- > destshdr->sh_size)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu does not fit completely in referenced section [%2d] '%s'\n"),
- idx, section_name (ebl, ehdr, idx), cnt,
- (int) xndx, section_name (ebl, ehdr, xndx));
- }
- else
- {
- GElf_Phdr phdr_mem;
- GElf_Phdr *phdr = NULL;
- int pcnt;
-
- for (pcnt = 0; pcnt < ehdr->e_phnum; ++pcnt)
- {
- phdr = gelf_getphdr (ebl->elf, pcnt, &phdr_mem);
- if (phdr != NULL && phdr->p_type == PT_TLS)
- break;
- }
-
- if (pcnt == ehdr->e_phnum)
- {
- if (no_pt_tls++ == 0)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: TLS symbol but no TLS program header entry\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
- }
- else
- {
- if (sym->st_value
- < destshdr->sh_offset - phdr->p_offset)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: st_value short of referenced section [%2d] '%s'\n"),
- idx, section_name (ebl, ehdr, idx), cnt,
- (int) xndx, section_name (ebl, ehdr, xndx));
- else if (sym->st_value
- > (destshdr->sh_offset - phdr->p_offset
- + destshdr->sh_size))
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section [%2d] '%s'\n"),
- idx, section_name (ebl, ehdr, idx), cnt,
- (int) xndx, section_name (ebl, ehdr, xndx));
- else if (sym->st_value + sym->st_size
- > (destshdr->sh_offset - phdr->p_offset
- + destshdr->sh_size))
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu does not fit completely in referenced section [%2d] '%s'\n"),
- idx, section_name (ebl, ehdr, idx), cnt,
- (int) xndx, section_name (ebl, ehdr, xndx));
- }
- }
- }
- }
- }
-
- if (GELF_ST_BIND (sym->st_info) == STB_LOCAL)
- {
- if (cnt >= shdr->sh_info)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: local symbol outside range described in sh_info\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
- }
- else
- {
- if (cnt < shdr->sh_info)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: non-local symbol outside range described in sh_info\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
- }
-
- if (GELF_ST_TYPE (sym->st_info) == STT_SECTION
- && GELF_ST_BIND (sym->st_info) != STB_LOCAL)
- ERROR (gettext ("\
-section [%2d] '%s': symbol %zu: non-local section symbol\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
-
- if (name != NULL)
- {
- if (strcmp (name, "_GLOBAL_OFFSET_TABLE_") == 0)
- {
- /* Check that address and size match the global offset
- table. We have to locate the GOT by searching for a
- section named ".got". */
- Elf_Scn *gscn = NULL;
-
- while ((gscn = elf_nextscn (ebl->elf, gscn)) != NULL)
- {
- GElf_Shdr gshdr_mem;
- GElf_Shdr *gshdr = gelf_getshdr (gscn, &gshdr_mem);
- assert (gshdr != NULL);
-
- const char *sname = elf_strptr (ebl->elf, ehdr->e_shstrndx,
- gshdr->sh_name);
- if (sname != NULL && strcmp (sname, ".got") == 0)
- {
- /* Found it. */
- if (sym->st_value != gshdr->sh_addr)
- /* This test is more strict than the psABIs
- which usually allow the symbol to be in the
- middle of the .got section, allowing
- negative offsets. */
- ERROR (gettext ("\
-section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#" PRIx64 " does not match .got section address %#" PRIx64 "\n"),
- idx, section_name (ebl, ehdr, idx),
- (uint64_t) sym->st_value,
- (uint64_t) gshdr->sh_addr);
-
- if (sym->st_size != gshdr->sh_size)
- ERROR (gettext ("\
-section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %" PRIu64 " does not match .got section size %" PRIu64 "\n"),
- idx, section_name (ebl, ehdr, idx),
- (uint64_t) sym->st_size,
- (uint64_t) gshdr->sh_size);
-
- break;
- }
- }
-
- if (gscn == NULL)
- ERROR (gettext ("\
-section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got section\n"),
- idx, section_name (ebl, ehdr, idx));
- }
- else if (strcmp (name, "_DYNAMIC") == 0)
- {
- /* Check that address and size match the dynamic
- section. We locate the dynamic section via the
- program header entry. */
- int pcnt;
-
- for (pcnt = 0; pcnt < ehdr->e_phnum; ++pcnt)
- {
- GElf_Phdr phdr_mem;
- GElf_Phdr *phdr = gelf_getphdr (ebl->elf, pcnt, &phdr_mem);
-
- if (phdr != NULL && phdr->p_type == PT_DYNAMIC)
- {
- if (sym->st_value != phdr->p_vaddr)
- ERROR (gettext ("\
-section [%2d] '%s': _DYNAMIC_ symbol value %#" PRIx64 " does not match dynamic segment address %#" PRIx64 "\n"),
- idx, section_name (ebl, ehdr, idx),
- (uint64_t) sym->st_value,
- (uint64_t) phdr->p_vaddr);
-
- if (sym->st_size != phdr->p_memsz)
- ERROR (gettext ("\
-section [%2d] '%s': _DYNAMIC symbol size %" PRIu64 " does not match dynamic segment size %" PRIu64 "\n"),
- idx, section_name (ebl, ehdr, idx),
- (uint64_t) sym->st_size,
- (uint64_t) phdr->p_memsz);
-
- break;
- }
- }
- }
- }
- }
-}
-
-
-static bool
-is_rel_dyn (Ebl *ebl, GElf_Ehdr *ehdr, int idx, GElf_Shdr *shdr, bool rela)
-{
- /* If this is no executable or DSO it cannot be a .rel.dyn section. */
- if (ehdr->e_type != ET_EXEC && ehdr->e_type != ET_DYN)
- return false;
-
- /* Check the section name. Unfortunately necessary. */
- if (strcmp (section_name (ebl, ehdr, idx), rela ? ".rela.dyn" : ".rel.dyn"))
- return false;
-
- /* When a .rel.dyn section is used a DT_RELCOUNT dynamic section
- entry can be present as well. */
- Elf_Scn *scn = NULL;
- while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
- {
- GElf_Shdr rcshdr_mem;
- const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem);
- assert (rcshdr != NULL);
-
- if (rcshdr->sh_type == SHT_DYNAMIC)
- {
- /* Found the dynamic section. Look through it. */
- Elf_Data *d = elf_getdata (scn, NULL);
- int cnt;
-
- for (cnt = 1; cnt < rcshdr->sh_size / rcshdr->sh_entsize; ++cnt)
- {
- GElf_Dyn dyn_mem;
- GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem);
- assert (dyn != NULL);
-
- if (dyn->d_tag == DT_RELCOUNT)
- {
- /* Found it. One last check: does the number
- specified number of relative relocations exceed
- the total number of relocations? */
- if (dyn->d_un.d_val > shdr->sh_size / shdr->sh_entsize)
- ERROR (gettext ("\
-section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"),
- idx, section_name (ebl, ehdr, idx),
- (int) dyn->d_un.d_val);
- }
- }
-
- break;
- }
- }
-
- return true;
-}
-
-
-static void
-check_rela (Ebl *ebl, GElf_Ehdr *ehdr, int idx)
-{
- Elf_Scn *scn;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
- Elf_Data *data;
- GElf_Shdr destshdr_mem;
- GElf_Shdr *destshdr = NULL;
- size_t cnt;
- bool reldyn = false;
- bool known_broken = gnuld;
-
- scn = elf_getscn (ebl->elf, idx);
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- return;
- data = elf_getdata (scn, NULL);
- if (data == NULL)
- {
- ERROR (gettext ("section [%2d] '%s': cannot get section data\n"),
- idx, section_name (ebl, ehdr, idx));
- return;
- }
-
- /* Check whether the link to the section we relocate is reasonable. */
- if (shdr->sh_info >= shnum)
- ERROR (gettext ("section [%2d] '%s': invalid destination section index\n"),
- idx, section_name (ebl, ehdr, idx));
- else
- {
- destshdr = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_info),
- &destshdr_mem);
- if (destshdr != NULL)
- {
- if(destshdr->sh_type != SHT_PROGBITS
- && destshdr->sh_type != SHT_NOBITS)
- {
- reldyn = is_rel_dyn (ebl, ehdr, idx, shdr, true);
- if (!reldyn)
- ERROR (gettext ("\
-section [%2d] '%s': invalid destination section type\n"),
- idx, section_name (ebl, ehdr, idx));
- else
- {
- /* There is no standard, but we require that .rela.dyn
- sections have a sh_info value of zero. */
- if (shdr->sh_info != 0)
- ERROR (gettext ("\
-section [%2d] '%s': sh_info should be zero\n"),
- idx, section_name (ebl, ehdr, idx));
- }
- }
-
- if ((destshdr->sh_flags & (SHF_MERGE | SHF_STRINGS)) != 0)
- ERROR (gettext ("\
-section [%2d] '%s': no relocations for merge-able sections possible\n"),
- idx, section_name (ebl, ehdr, idx));
- }
- }
-
- if (shdr->sh_entsize != gelf_fsize (ebl->elf, ELF_T_RELA, 1, EV_CURRENT))
- ERROR (gettext ("\
-section [%2d] '%s': section entry size does not match ElfXX_Rela\n"),
- idx, section_name (ebl, ehdr, idx));
-
- Elf_Scn *symscn = elf_getscn (ebl->elf, shdr->sh_link);
- GElf_Shdr symshdr_mem;
- GElf_Shdr *symshdr = gelf_getshdr (symscn, &symshdr_mem);
- Elf_Data *symdata = elf_getdata (symscn, NULL);
-
- for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
- {
- GElf_Rela rela_mem;
- GElf_Rela *rela;
-
- rela = gelf_getrela (data, cnt, &rela_mem);
- if (rela == NULL)
- {
- ERROR (gettext ("\
-section [%2d] '%s': cannot get relocation %zu: %s\n"),
- idx, section_name (ebl, ehdr, idx), cnt, elf_errmsg (-1));
- continue;
- }
-
- if (!ebl_reloc_type_check (ebl, GELF_R_TYPE (rela->r_info)))
- ERROR (gettext ("section [%2d] '%s': relocation %zu: invalid type\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
- else if (!ebl_reloc_valid_use (ebl, GELF_R_TYPE (rela->r_info)))
- ERROR (gettext ("\
-section [%2d] '%s': relocation %zu: relocation type invalid for the file type\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
-
- if (symshdr != NULL
- && ((GELF_R_SYM (rela->r_info) + 1)
- * gelf_fsize (ebl->elf, ELF_T_SYM, 1, EV_CURRENT)
- > symshdr->sh_size))
- ERROR (gettext ("\
-section [%2d] '%s': relocation %zu: invalid symbol index\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
-
- if (ebl_gotpc_reloc_check (ebl, GELF_R_TYPE (rela->r_info)))
- {
- const char *name;
- char buf[64];
- GElf_Sym sym_mem;
- GElf_Sym *sym = gelf_getsym (symdata, GELF_R_SYM (rela->r_info),
- &sym_mem);
- if (sym != NULL
- /* Get the name for the symbol. */
- && (name = elf_strptr (ebl->elf, symshdr->sh_link, sym->st_name))
- && strcmp (name, "_GLOBAL_OFFSET_TABLE_") !=0 )
- ERROR (gettext ("\
-section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can be used with %s\n"),
- idx, section_name (ebl, ehdr, idx), cnt,
- ebl_reloc_type_name (ebl, GELF_R_SYM (rela->r_info),
- buf, sizeof (buf)));
- }
-
- if (reldyn)
- {
- // XXX TODO Check .rel.dyn section addresses.
- }
- else if (!known_broken)
- {
- if (destshdr != NULL
- && (rela->r_offset - destshdr->sh_addr) >= destshdr->sh_size)
- ERROR (gettext ("\
-section [%2d] '%s': relocation %zu: offset out of bounds\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
- }
- }
-}
-
-
-static void
-check_rel (Ebl *ebl, GElf_Ehdr *ehdr, int idx)
-{
- Elf_Scn *scn;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
- Elf_Data *data;
- GElf_Shdr destshdr_mem;
- GElf_Shdr *destshdr = NULL;
- size_t cnt;
- bool reldyn = false;
- bool known_broken = gnuld;
-
- scn = elf_getscn (ebl->elf, idx);
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- return;
- data = elf_getdata (scn, NULL);
- if (data == NULL)
- {
- ERROR (gettext ("section [%2d] '%s': cannot get section data\n"),
- idx, section_name (ebl, ehdr, idx));
- return;
- }
-
- /* Check whether the link to the section we relocate is reasonable. */
- if (shdr->sh_info >= shnum)
- ERROR (gettext ("section [%2d] '%s': invalid destination section index\n"),
- idx, section_name (ebl, ehdr, idx));
- else
- {
- destshdr = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_info),
- &destshdr_mem);
- if (destshdr != NULL)
- {
- if (destshdr->sh_type != SHT_PROGBITS
- && destshdr->sh_type != SHT_NOBITS)
- {
- reldyn = is_rel_dyn (ebl, ehdr, idx, shdr, false);
- if (!reldyn)
- ERROR (gettext ("\
-section [%2d] '%s': invalid destination section type\n"),
- idx, section_name (ebl, ehdr, idx));
- else
- {
- /* There is no standard, but we require that .rela.dyn
- sections have a sh_info value of zero. */
- if (shdr->sh_info != 0)
- ERROR (gettext ("\
-section [%2d] '%s': sh_info should be zero\n"),
- idx, section_name (ebl, ehdr, idx));
- }
- }
-
- if ((destshdr->sh_flags & (SHF_MERGE | SHF_STRINGS)) != 0)
- ERROR (gettext ("\
-section [%2d] '%s': no relocations for merge-able sections possible\n"),
- idx, section_name (ebl, ehdr, idx));
- }
- }
-
- if (shdr->sh_entsize != gelf_fsize (ebl->elf, ELF_T_REL, 1, EV_CURRENT))
- ERROR (gettext ("\
-section [%2d] '%s': section entry size does not match ElfXX_Rel\n"),
- idx, section_name (ebl, ehdr, idx));
-
- Elf_Scn *symscn = elf_getscn (ebl->elf, shdr->sh_link);
- GElf_Shdr symshdr_mem;
- GElf_Shdr *symshdr = gelf_getshdr (symscn, &symshdr_mem);
- Elf_Data *symdata = elf_getdata (symscn, NULL);
-
- for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
- {
- GElf_Rel rel_mem;
- GElf_Rel *rel;
-
- rel = gelf_getrel (data, cnt, &rel_mem);
- if (rel == NULL)
- {
- ERROR (gettext ("\
-section [%2d] '%s': cannot get relocation %zu: %s\n"),
- idx, section_name (ebl, ehdr, idx), cnt, elf_errmsg (-1));
- continue;
- }
-
- if (!ebl_reloc_type_check (ebl, GELF_R_TYPE (rel->r_info)))
- ERROR (gettext ("section [%2d] '%s': relocation %zu: invalid type\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
- else if (!ebl_reloc_valid_use (ebl, GELF_R_TYPE (rel->r_info)))
- ERROR (gettext ("\
-section [%2d] '%s': relocation %zu: relocation type invalid for the file type\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
-
- if (symshdr != NULL
- && ((GELF_R_SYM (rel->r_info) + 1)
- * gelf_fsize (ebl->elf, ELF_T_SYM, 1, EV_CURRENT)
- > symshdr->sh_size))
- ERROR (gettext ("\
-section [%2d] '%s': relocation %zu: invalid symbol index\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
-
- if (ebl_gotpc_reloc_check (ebl, GELF_R_TYPE (rel->r_info)))
- {
- const char *name;
- char buf[64];
- GElf_Sym sym_mem;
- GElf_Sym *sym = gelf_getsym (symdata, GELF_R_SYM (rel->r_info),
- &sym_mem);
- if (sym != NULL
- /* Get the name for the symbol. */
- && (name = elf_strptr (ebl->elf, symshdr->sh_link, sym->st_name))
- && strcmp (name, "_GLOBAL_OFFSET_TABLE_") !=0 )
- ERROR (gettext ("\
-section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can be used with %s\n"),
- idx, section_name (ebl, ehdr, idx), cnt,
- ebl_reloc_type_name (ebl, GELF_R_SYM (rel->r_info),
- buf, sizeof (buf)));
- }
-
- if (reldyn)
- {
- // XXX TODO Check .rel.dyn section addresses.
- }
- else if (!known_broken)
- {
- if (destshdr != NULL
- && GELF_R_TYPE (rel->r_info) != 0
- && (rel->r_offset - destshdr->sh_addr) >= destshdr->sh_size)
- ERROR (gettext ("\
-section [%2d] '%s': relocation %zu: offset out of bounds\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
- }
- }
-}
-
-
-/* Number of dynamic sections. */
-static int ndynamic;
-
-
-static void
-check_dynamic (Ebl *ebl, GElf_Ehdr *ehdr, int idx)
-{
- Elf_Scn *scn;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
- Elf_Data *data;
- GElf_Shdr strshdr_mem;
- GElf_Shdr *strshdr;
- size_t cnt;
- static const bool dependencies[DT_NUM][DT_NUM] =
- {
- [DT_NEEDED] = { [DT_STRTAB] = true },
- [DT_PLTRELSZ] = { [DT_JMPREL] = true },
- [DT_HASH] = { [DT_SYMTAB] = true },
- [DT_STRTAB] = { [DT_STRSZ] = true },
- [DT_SYMTAB] = { [DT_STRTAB] = true, [DT_HASH] = true,
- [DT_SYMENT] = true },
- [DT_RELA] = { [DT_RELASZ] = true, [DT_RELAENT] = true },
- [DT_RELASZ] = { [DT_RELA] = true },
- [DT_RELAENT] = { [DT_RELA] = true },
- [DT_STRSZ] = { [DT_STRTAB] = true },
- [DT_SYMENT] = { [DT_SYMTAB] = true },
- [DT_SONAME] = { [DT_STRTAB] = true },
- [DT_RPATH] = { [DT_STRTAB] = true },
- [DT_REL] = { [DT_RELSZ] = true, [DT_RELENT] = true },
- [DT_RELSZ] = { [DT_REL] = true },
- [DT_RELENT] = { [DT_REL] = true },
- [DT_JMPREL] = { [DT_PLTRELSZ] = true, [DT_PLTREL] = true },
- [DT_RUNPATH] = { [DT_STRTAB] = true },
- [DT_PLTREL] = { [DT_JMPREL] = true },
- [DT_PLTRELSZ] = { [DT_JMPREL] = true }
- };
- bool has_dt[DT_NUM];
- static const bool level2[DT_NUM] =
- {
- [DT_RPATH] = true,
- [DT_SYMBOLIC] = true,
- [DT_TEXTREL] = true,
- [DT_BIND_NOW] = true
- };
- static const bool mandatory[DT_NUM] =
- {
- [DT_NULL] = true,
- [DT_HASH] = true,
- [DT_STRTAB] = true,
- [DT_SYMTAB] = true,
- [DT_STRSZ] = true,
- [DT_SYMENT] = true
- };
- GElf_Addr reladdr = 0;
- GElf_Word relsz = 0;
- GElf_Addr pltreladdr = 0;
- GElf_Word pltrelsz = 0;
-
- memset (has_dt, '\0', sizeof (has_dt));
-
- if (++ndynamic == 2)
- ERROR (gettext ("more than one dynamic section present\n"));
-
- scn = elf_getscn (ebl->elf, idx);
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- return;
- data = elf_getdata (scn, NULL);
- if (data == NULL)
- {
- ERROR (gettext ("section [%2d] '%s': cannot get section data\n"),
- idx, section_name (ebl, ehdr, idx));
- return;
- }
-
- strshdr = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &strshdr_mem);
- if (strshdr != NULL && strshdr->sh_type != SHT_STRTAB)
- ERROR (gettext ("\
-section [%2d] '%s': referenced as string table for section [%2d] '%s' but type is not SHT_STRTAB\n"),
- shdr->sh_link, section_name (ebl, ehdr, shdr->sh_link),
- idx, section_name (ebl, ehdr, idx));
-
- if (shdr->sh_entsize != gelf_fsize (ebl->elf, ELF_T_DYN, 1, EV_CURRENT))
- ERROR (gettext ("\
-section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"),
- idx, section_name (ebl, ehdr, idx));
-
- if (shdr->sh_info != 0)
- ERROR (gettext ("section [%2d] '%s': sh_info not zero\n"),
- idx, section_name (ebl, ehdr, idx));
-
- bool non_null_warned = false;
- for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
- {
- GElf_Dyn dyn_mem;
- GElf_Dyn *dyn;
-
- dyn = gelf_getdyn (data, cnt, &dyn_mem);
- if (dyn == NULL)
- {
- ERROR (gettext ("\
-section [%2d] '%s': cannot get dynamic section entry %zu: %s\n"),
- idx, section_name (ebl, ehdr, idx), cnt, elf_errmsg (-1));
- continue;
- }
-
- if (has_dt[DT_NULL] && dyn->d_tag != DT_NULL && ! non_null_warned)
- {
- ERROR (gettext ("\
-section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n"),
- idx, section_name (ebl, ehdr, idx));
- non_null_warned = true;
- }
-
- if (!ebl_dynamic_tag_check (ebl, dyn->d_tag))
- ERROR (gettext ("section [%2d] '%s': entry %zu: unknown tag\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
-
- if (dyn->d_tag < DT_NUM)
- {
- if (has_dt[dyn->d_tag]
- && dyn->d_tag != DT_NEEDED
- && dyn->d_tag != DT_NULL
- && dyn->d_tag != DT_POSFLAG_1)
- {
- char buf[50];
- ERROR (gettext ("\
-section [%2d] '%s': entry %zu: more than one entry with tag %s\n"),
- idx, section_name (ebl, ehdr, idx), cnt,
- ebl_dynamic_tag_name (ebl, dyn->d_tag,
- buf, sizeof (buf)));
- }
-
- if (be_strict && level2[dyn->d_tag])
- {
- char buf[50];
- ERROR (gettext ("\
-section [%2d] '%s': entry %zu: level 2 tag %s used\n"),
- idx, section_name (ebl, ehdr, idx), cnt,
- ebl_dynamic_tag_name (ebl, dyn->d_tag,
- buf, sizeof (buf)));
- }
-
- has_dt[dyn->d_tag] = true;
- }
-
- if (dyn->d_tag == DT_PLTREL && dyn->d_un.d_val != DT_REL
- && dyn->d_un.d_val != DT_RELA)
- ERROR (gettext ("\
-section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"),
- idx, section_name (ebl, ehdr, idx), cnt);
-
- if (dyn->d_tag == DT_REL)
- reladdr = dyn->d_un.d_ptr;
- if (dyn->d_tag == DT_RELSZ)
- relsz = dyn->d_un.d_val;
- if (dyn->d_tag == DT_JMPREL)
- pltreladdr = dyn->d_un.d_ptr;
- if (dyn->d_tag == DT_PLTRELSZ)
- pltrelsz = dyn->d_un.d_val;
- }
-
- for (cnt = 1; cnt < DT_NUM; ++cnt)
- if (has_dt[cnt])
- {
- int inner;
-
- for (inner = 0; inner < DT_NUM; ++inner)
- if (dependencies[cnt][inner] && ! has_dt[inner])
- {
- char buf1[50];
- char buf2[50];
-
- ERROR (gettext ("\
-section [%2d] '%s': contains %s entry but not %s\n"),
- idx, section_name (ebl, ehdr, idx),
- ebl_dynamic_tag_name (ebl, cnt, buf1, sizeof (buf1)),
- ebl_dynamic_tag_name (ebl, inner, buf2, sizeof (buf2)));
- }
- }
- else
- {
- if (mandatory[cnt])
- {
- char buf[50];
- ERROR (gettext ("\
-section [%2d] '%s': mandatory tag %s not present\n"),
- idx, section_name (ebl, ehdr, idx),
- ebl_dynamic_tag_name (ebl, cnt, buf, sizeof (buf)));
- }
- }
-
- /* Check the rel/rela tags. At least one group must be available. */
- if ((has_dt[DT_RELA] || has_dt[DT_RELASZ] || has_dt[DT_RELAENT])
- && (!has_dt[DT_RELA] || !has_dt[DT_RELASZ] || !has_dt[DT_RELAENT]))
- ERROR (gettext ("\
-section [%2d] '%s': not all of %s, %s, and %s are present\n"),
- idx, section_name (ebl, ehdr, idx),
- "DT_RELA", "DT_RELASZ", "DT_RELAENT");
-
- if ((has_dt[DT_REL] || has_dt[DT_RELSZ] || has_dt[DT_RELENT])
- && (!has_dt[DT_REL] || !has_dt[DT_RELSZ] || !has_dt[DT_RELENT]))
- ERROR (gettext ("\
-section [%2d] '%s': not all of %s, %s, and %s are present\n"),
- idx, section_name (ebl, ehdr, idx),
- "DT_REL", "DT_RELSZ", "DT_RELENT");
-}
-
-
-static void
-check_symtab_shndx (Ebl *ebl, GElf_Ehdr *ehdr, int idx)
-{
- Elf_Scn *scn;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
- GElf_Shdr symshdr_mem;
- GElf_Shdr *symshdr;
- Elf_Scn *symscn;
- size_t cnt;
- Elf_Data *data;
- Elf_Data *symdata;
-
- scn = elf_getscn (ebl->elf, idx);
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- return;
-
- symscn = elf_getscn (ebl->elf, shdr->sh_link);
- symshdr = gelf_getshdr (symscn, &symshdr_mem);
- if (symshdr != NULL && symshdr->sh_type != SHT_SYMTAB)
- ERROR (gettext ("\
-section [%2d] '%s': extended section index section not for symbol table\n"),
- idx, section_name (ebl, ehdr, idx));
- symdata = elf_getdata (symscn, NULL);
- if (symdata == NULL)
- ERROR (gettext ("cannot get data for symbol section\n"));
-
- if (shdr->sh_entsize != sizeof (Elf32_Word))
- ERROR (gettext ("\
-section [%2d] '%s': entry size does not match Elf32_Word\n"),
- idx, section_name (ebl, ehdr, idx));
-
- if (symshdr != NULL
- && (shdr->sh_size / shdr->sh_entsize
- < symshdr->sh_size / symshdr->sh_entsize))
- ERROR (gettext ("\
-section [%2d] '%s': extended index table too small for symbol table\n"),
- idx, section_name (ebl, ehdr, idx));
-
- if (shdr->sh_info != 0)
- ERROR (gettext ("section [%2d] '%s': sh_info not zero\n"),
- idx, section_name (ebl, ehdr, idx));
-
- for (cnt = idx + 1; cnt < shnum; ++cnt)
- {
- GElf_Shdr rshdr_mem;
- GElf_Shdr *rshdr;
-
- rshdr = gelf_getshdr (elf_getscn (ebl->elf, cnt), &rshdr_mem);
- if (rshdr != NULL && rshdr->sh_type == SHT_SYMTAB_SHNDX
- && rshdr->sh_link == shdr->sh_link)
- {
- ERROR (gettext ("\
-section [%2d] '%s': extended section index in section [%2zu] '%s' refers to same symbol table\n"),
- idx, section_name (ebl, ehdr, idx),
- cnt, section_name (ebl, ehdr, cnt));
- break;
- }
- }
-
- data = elf_getdata (scn, NULL);
-
- if (*((Elf32_Word *) data->d_buf) != 0)
- ERROR (gettext ("symbol 0 should have zero extended section index\n"));
-
- for (cnt = 1; cnt < data->d_size / sizeof (Elf32_Word); ++cnt)
- {
- Elf32_Word xndx = ((Elf32_Word *) data->d_buf)[cnt];
-
- if (xndx != 0)
- {
- GElf_Sym sym_data;
- GElf_Sym *sym = gelf_getsym (symdata, cnt, &sym_data);
- if (sym == NULL)
- {
- ERROR (gettext ("cannot get data for symbol %zu\n"), cnt);
- continue;
- }
-
- if (sym->st_shndx != SHN_XINDEX)
- ERROR (gettext ("\
-extended section index is %" PRIu32 " but symbol index is not XINDEX\n"),
- (uint32_t) xndx);
- }
- }
-}
-
-
-static void
-check_hash (Ebl *ebl, GElf_Ehdr *ehdr, int idx)
-{
- Elf_Scn *scn;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
- Elf_Data *data;
- Elf32_Word nbucket;
- Elf32_Word nchain;
- GElf_Shdr symshdr_mem;
- GElf_Shdr *symshdr;
-
- scn = elf_getscn (ebl->elf, idx);
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- return;
- data = elf_getdata (scn, NULL);
- if (data == NULL)
- {
- ERROR (gettext ("section [%2d] '%s': cannot get section data\n"),
- idx, section_name (ebl, ehdr, idx));
- return;
- }
-
- symshdr = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &symshdr_mem);
- if (symshdr != NULL && symshdr->sh_type != SHT_DYNSYM)
- ERROR (gettext ("\
-section [%2d] '%s': hash table not for dynamic symbol table\n"),
- idx, section_name (ebl, ehdr, idx));
-
- if (shdr->sh_entsize != sizeof (Elf32_Word))
- ERROR (gettext ("\
-section [%2d] '%s': entry size does not match Elf32_Word\n"),
- idx, section_name (ebl, ehdr, idx));
-
- if ((shdr->sh_flags & SHF_ALLOC) == 0)
- ERROR (gettext ("section [%2d] '%s': not marked to be allocated\n"),
- idx, section_name (ebl, ehdr, idx));
-
- if (shdr->sh_size < 2 * shdr->sh_entsize)
- {
- ERROR (gettext ("\
-section [%2d] '%s': hash table has not even room for nbucket and nchain\n"),
- idx, section_name (ebl, ehdr, idx));
- return;
- }
-
- nbucket = ((Elf32_Word *) data->d_buf)[0];
- nchain = ((Elf32_Word *) data->d_buf)[1];
-
- if (shdr->sh_size < (2 + nbucket + nchain) * shdr->sh_entsize)
- ERROR (gettext ("\
-section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"),
- idx, section_name (ebl, ehdr, idx), (long int) shdr->sh_size,
- (long int) ((2 + nbucket + nchain) * shdr->sh_entsize));
-
- if (symshdr != NULL)
- {
- size_t symsize = symshdr->sh_size / symshdr->sh_entsize;
- size_t cnt;
-
- if (nchain < symshdr->sh_size / symshdr->sh_entsize)
- ERROR (gettext ("section [%2d] '%s': chain array not large enough\n"),
- idx, section_name (ebl, ehdr, idx));
-
- for (cnt = 2; cnt < 2 + nbucket; ++cnt)
- if (((Elf32_Word *) data->d_buf)[cnt] >= symsize)
- ERROR (gettext ("\
-section [%2d] '%s': hash bucket reference %zu out of bounds\n"),
- idx, section_name (ebl, ehdr, idx), cnt - 2);
-
- for (; cnt < 2 + nbucket + nchain; ++cnt)
- if (((Elf32_Word *) data->d_buf)[cnt] >= symsize)
- ERROR (gettext ("\
-section [%2d] '%s': hash chain reference %zu out of bounds\n"),
- idx, section_name (ebl, ehdr, idx), cnt - 2 - nbucket);
- }
-}
-
-
-static void
-check_null (Ebl *ebl, GElf_Ehdr *ehdr, GElf_Shdr *shdr, int idx)
-{
-#define TEST(name, extra) \
- if (extra && shdr->sh_##name != 0) \
- ERROR (gettext ("section [%2d] '%s': nonzero sh_%s for NULL section\n"), \
- idx, section_name (ebl, ehdr, idx), #name)
-
- TEST (name, 1);
- TEST (flags, 1);
- TEST (addr, 1);
- TEST (offset, 1);
- TEST (size, idx != 0);
- TEST (link, idx != 0);
- TEST (info, 1);
- TEST (addralign, 1);
- TEST (entsize, 1);
-}
-
-
-static void
-check_group (Ebl *ebl, GElf_Ehdr *ehdr, GElf_Shdr *shdr, int idx)
-{
- if (ehdr->e_type != ET_REL)
- {
- ERROR (gettext ("\
-section [%2d] '%s': section groups only allowed in relocatable object files\n"),
- idx, section_name (ebl, ehdr, idx));
- return;
- }
-
- /* Check that sh_link is an index of a symbol table. */
- GElf_Shdr symshdr_mem;
- GElf_Shdr *symshdr = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
- &symshdr_mem);
- if (symshdr == NULL)
- ERROR (gettext ("section [%2d] '%s': cannot get symbol table: %s\n"),
- idx, section_name (ebl, ehdr, idx), elf_errmsg (-1));
- else
- {
- if (symshdr->sh_type != SHT_SYMTAB)
- ERROR (gettext ("\
-section [%2d] '%s': section reference in sh_link is no symbol table\n"),
- idx, section_name (ebl, ehdr, idx));
-
- if (shdr->sh_info >= symshdr->sh_size / gelf_fsize (ebl->elf, ELF_T_SYM,
- 1, EV_CURRENT))
- ERROR (gettext ("\
-section [%2d] '%s': invalid symbol index in sh_info\n"),
- idx, section_name (ebl, ehdr, idx));
-
- if (shdr->sh_flags != 0)
- ERROR (gettext ("section [%2d] '%s': sh_flags not zero\n"),
- idx, section_name (ebl, ehdr, idx));
-
- if (be_strict
- && shdr->sh_entsize != elf32_fsize (ELF_T_WORD, 1, EV_CURRENT))
- ERROR (gettext ("section [%2d] '%s': sh_flags not set correctly\n"),
- idx, section_name (ebl, ehdr, idx));
- }
-
- Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL);
- if (data == NULL)
- ERROR (gettext ("section [%2d] '%s': cannot get data: %s\n"),
- idx, section_name (ebl, ehdr, idx), elf_errmsg (-1));
- else
- {
- size_t elsize = elf32_fsize (ELF_T_WORD, 1, EV_CURRENT);
- size_t cnt;
- Elf32_Word val;
-
- if (data->d_size % elsize != 0)
- ERROR (gettext ("\
-section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n"),
- idx, section_name (ebl, ehdr, idx));
-
- if (data->d_size < elsize)
- ERROR (gettext ("\
-section [%2d] '%s': section group without flags word\n"),
- idx, section_name (ebl, ehdr, idx));
- else if (be_strict)
- {
- if (data->d_size < 2 * elsize)
- ERROR (gettext ("\
-section [%2d] '%s': section group without member\n"),
- idx, section_name (ebl, ehdr, idx));
- else if (data->d_size < 3 * elsize)
- ERROR (gettext ("\
-section [%2d] '%s': section group with only one member\n"),
- idx, section_name (ebl, ehdr, idx));
- }
-
-#if ALLOW_UNALIGNED
- val = *((Elf32_Word *) data->d_buf);
-#else
- memcpy (&val, data->d_buf, elsize);
-#endif
- if ((val & ~GRP_COMDAT) != 0)
- ERROR (gettext ("section [%2d] '%s': unknown section group flags\n"),
- idx, section_name (ebl, ehdr, idx));
-
- for (cnt = elsize; cnt < data->d_size; cnt += elsize)
- {
-#if ALLOW_UNALIGNED
- val = *((Elf32_Word *) ((char *) data->d_buf + cnt));
-#else
- memcpy (&val, (char *) data->d_buf + cnt, elsize);
-#endif
-
- if (val > shnum)
- ERROR (gettext ("\
-section [%2d] '%s': section index %Zu out of range\n"),
- idx, section_name (ebl, ehdr, idx), cnt / elsize);
- else
- {
- GElf_Shdr refshdr_mem;
- GElf_Shdr *refshdr;
-
- refshdr = gelf_getshdr (elf_getscn (ebl->elf, val),
- &refshdr_mem);
- if (refshdr == NULL)
- ERROR (gettext ("\
-section [%2d] '%s': cannot get section header for element %zu: %s\n"),
- idx, section_name (ebl, ehdr, idx), cnt / elsize,
- elf_errmsg (-1));
- else
- {
- if (refshdr->sh_type == SHT_GROUP)
- ERROR (gettext ("\
-section [%2d] '%s': section group contains another group [%2d] '%s'\n"),
- idx, section_name (ebl, ehdr, idx),
- val, section_name (ebl, ehdr, val));
-
- if ((refshdr->sh_flags & SHF_GROUP) == 0)
- ERROR (gettext ("\
-section [%2d] '%s': element %Zu references section [%2d] '%s' without SHF_GROUP flag set\n"),
- idx, section_name (ebl, ehdr, idx), cnt / elsize,
- val, section_name (ebl, ehdr, val));
- }
-
- if (++scnref[val] == 2)
- ERROR (gettext ("\
-section [%2d] '%s' is contained in more than one section group\n"),
- val, section_name (ebl, ehdr, val));
- }
- }
- }
-}
-
-
-static bool has_loadable_segment;
-static bool has_interp_segment;
-
-static const struct
-{
- const char *name;
- size_t namelen;
- GElf_Word type;
- enum { unused, exact, atleast } attrflag;
- GElf_Word attr;
- GElf_Word attr2;
-} special_sections[] =
- {
- /* See figure 4-14 in the gABI. */
- { ".bss", 5, SHT_NOBITS, exact, SHF_ALLOC | SHF_WRITE, 0 },
- { ".comment", 8, SHT_PROGBITS, exact, 0, 0 },
- { ".data", 6, SHT_PROGBITS, exact, SHF_ALLOC | SHF_WRITE, 0 },
- { ".data1", 7, SHT_PROGBITS, exact, SHF_ALLOC | SHF_WRITE, 0 },
- { ".debug", 7, SHT_PROGBITS, exact, 0, 0 },
- { ".dynamic", 9, SHT_DYNAMIC, atleast, SHF_ALLOC, SHF_WRITE },
- { ".dynstr", 8, SHT_STRTAB, exact, SHF_ALLOC, 0 },
- { ".dynsym", 8, SHT_DYNSYM, exact, SHF_ALLOC, 0 },
- { ".fini", 6, SHT_PROGBITS, exact, SHF_ALLOC | SHF_EXECINSTR, 0 },
- { ".fini_array", 12, SHT_FINI_ARRAY, exact, SHF_ALLOC | SHF_WRITE, 0 },
- { ".got", 5, SHT_PROGBITS, unused, 0, 0 }, // XXX more info?
- { ".hash", 6, SHT_HASH, exact, SHF_ALLOC, 0 },
- { ".init", 6, SHT_PROGBITS, exact, SHF_ALLOC | SHF_EXECINSTR, 0 },
- { ".init_array", 12, SHT_INIT_ARRAY, exact, SHF_ALLOC | SHF_WRITE, 0 },
- { ".interp", 8, SHT_PROGBITS, atleast, 0, SHF_ALLOC }, // XXX more tests?
- { ".line", 6, SHT_PROGBITS, exact, 0, 0 },
- { ".note", 6, SHT_NOTE, exact, 0, 0 },
- { ".plt", 5, SHT_PROGBITS, unused, 0, 0 }, // XXX more tests
- { ".preinit_array", 15, SHT_PREINIT_ARRAY, exact, SHF_ALLOC | SHF_WRITE, 0 },
- { ".rela", 5, SHT_RELA, atleast, 0, SHF_ALLOC }, // XXX more tests
- { ".rel", 4, SHT_REL, atleast, 0, SHF_ALLOC }, // XXX more tests
- { ".rodata", 8, SHT_PROGBITS, exact, SHF_ALLOC, 0 },
- { ".rodata1", 9, SHT_PROGBITS, exact, SHF_ALLOC, 0 },
- { ".shstrtab", 10, SHT_STRTAB, exact, 0, 0 },
- { ".strtab", 8, SHT_STRTAB, atleast, 0, SHF_ALLOC }, // XXX more tests
- { ".symtab", 8, SHT_SYMTAB, atleast, 0, SHF_ALLOC }, // XXX more tests
- { ".symtab_shndx", 14, SHT_SYMTAB_SHNDX, atleast, 0, SHF_ALLOC }, // XXX more tests
- { ".tbss", 6, SHT_NOBITS, exact, SHF_ALLOC | SHF_WRITE | SHF_TLS, 0 },
- { ".tdata", 7, SHT_PROGBITS, exact, SHF_ALLOC | SHF_WRITE | SHF_TLS, 0 },
- { ".tdata1", 8, SHT_PROGBITS, exact, SHF_ALLOC | SHF_WRITE | SHF_TLS, 0 },
- { ".text", 6, SHT_PROGBITS, exact, SHF_ALLOC | SHF_EXECINSTR, 0 }
- };
-#define nspecial_sections \
- (sizeof (special_sections) / sizeof (special_sections[0]))
-
-
-static const char *
-section_flags_string (GElf_Word flags, char *buf, size_t len)
-{
- static const struct
- {
- GElf_Word flag;
- const char *name;
- } known_flags[] =
- {
-#define NEWFLAG(name) { SHF_##name, #name }
- NEWFLAG (WRITE),
- NEWFLAG (ALLOC),
- NEWFLAG (EXECINSTR),
- NEWFLAG (MERGE),
- NEWFLAG (STRINGS),
- NEWFLAG (INFO_LINK),
- NEWFLAG (LINK_ORDER),
- NEWFLAG (OS_NONCONFORMING),
- NEWFLAG (GROUP),
- NEWFLAG (TLS)
- };
-#undef NEWFLAG
- const size_t nknown_flags = sizeof (known_flags) / sizeof (known_flags[0]);
-
- char *cp = buf;
- size_t cnt;
-
- for (cnt = 0; cnt < nknown_flags; ++cnt)
- if (flags & known_flags[cnt].flag)
- {
- if (cp != buf && len > 1)
- {
- *cp++ = '|';
- --len;
- }
-
- size_t ncopy = MIN (len - 1, strlen (known_flags[cnt].name));
- cp = mempcpy (cp, known_flags[cnt].name, ncopy);
- len -= ncopy;
-
- flags ^= known_flags[cnt].flag;
- }
-
- if (flags != 0 || cp == buf)
- snprintf (cp, len - 1, "%" PRIx64, (uint64_t) flags);
-
- *cp = '\0';
-
- return buf;
-}
-
-
-static void
-check_versym (Ebl *ebl, GElf_Ehdr *ehdr, GElf_Shdr *shdr, int idx)
-{
- /* The number of elements in the version symbol table must be the
- same as the number of symbols. */
- GElf_Shdr symshdr_mem;
- GElf_Shdr *symshdr = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
- &symshdr_mem);
- if (symshdr == NULL)
- /* The error has already been reported. */
- return;
-
- if (symshdr->sh_type != SHT_DYNSYM)
- {
- ERROR (gettext ("\
-section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no dynamic symbol table\n"),
- idx, section_name (ebl, ehdr, idx),
- shdr->sh_link, section_name (ebl, ehdr, shdr->sh_link));
- return;
- }
-
- if (shdr->sh_size / shdr->sh_entsize
- != symshdr->sh_size / symshdr->sh_entsize)
- ERROR (gettext ("\
-section [%2d] '%s' has different number of entries than symbol table [%2d] '%s'\n"),
- idx, section_name (ebl, ehdr, idx),
- shdr->sh_link, section_name (ebl, ehdr, shdr->sh_link));
-
- // XXX TODO A lot more tests
- // check value of the fields. local symbols must have zero entries.
- // nonlocal symbols refer to valid version. Check that version index
- // in bound.
-}
-
-
-static void
-check_sections (Ebl *ebl, GElf_Ehdr *ehdr)
-{
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
- size_t cnt;
- bool dot_interp_section = false;
-
- if (ehdr->e_shoff == 0)
- /* No section header. */
- return;
-
- /* Allocate array to count references in section groups. */
- scnref = (int *) xcalloc (shnum, sizeof (int));
-
- /* Check the zeroth section first. It must not have any contents
- and the section header must contain nonzero value at most in the
- sh_size and sh_link fields. */
- shdr = gelf_getshdr (elf_getscn (ebl->elf, 0), &shdr_mem);
- if (shdr == NULL)
- ERROR (gettext ("cannot get section header of zeroth section\n"));
- else
- {
- if (shdr->sh_name != 0)
- ERROR (gettext ("zeroth section has nonzero name\n"));
- if (shdr->sh_type != 0)
- ERROR (gettext ("zeroth section has nonzero type\n"));
- if (shdr->sh_flags != 0)
- ERROR (gettext ("zeroth section has nonzero flags\n"));
- if (shdr->sh_addr != 0)
- ERROR (gettext ("zeroth section has nonzero address\n"));
- if (shdr->sh_offset != 0)
- ERROR (gettext ("zeroth section has nonzero offset\n"));
- if (shdr->sh_info != 0)
- ERROR (gettext ("zeroth section has nonzero info field\n"));
- if (shdr->sh_addralign != 0)
- ERROR (gettext ("zeroth section has nonzero align value\n"));
- if (shdr->sh_entsize != 0)
- ERROR (gettext ("zeroth section has nonzero entry size value\n"));
-
- if (shdr->sh_size != 0 && ehdr->e_shnum != 0)
- ERROR (gettext ("\
-zeroth section has nonzero size value while ELF header has nonzero shnum value\n"));
-
- if (shdr->sh_link != 0 && ehdr->e_shstrndx != SHN_XINDEX)
- ERROR (gettext ("\
-zeroth section has nonzero link value while ELF header does not signal overflow in shstrndx\n"));
- }
-
- for (cnt = 1; cnt < shnum; ++cnt)
- {
- Elf_Scn *scn;
-
- scn = elf_getscn (ebl->elf, cnt);
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- {
- ERROR (gettext ("\
-cannot get section header for section [%2zu] '%s': %s\n"),
- cnt, section_name (ebl, ehdr, cnt), elf_errmsg (-1));
- continue;
- }
-
- const char *scnname = elf_strptr (ebl->elf, shstrndx, shdr->sh_name);
-
- if (scnname == NULL)
- ERROR (gettext ("section [%2zu]: invalid name\n"), cnt);
- else
- {
- /* Check whether it is one of the special sections defined in
- the gABI. */
- size_t s;
- for (s = 0; s < nspecial_sections; ++s)
- if (strncmp (scnname, special_sections[s].name,
- special_sections[s].namelen) == 0)
- {
- char stbuf1[100];
- char stbuf2[100];
- char stbuf3[100];
-
- if (shdr->sh_type != special_sections[s].type)
- ERROR (gettext ("\
-section [%2d] '%s' has wrong type: expected %s, is %s\n"),
- (int) cnt, scnname,
- ebl_section_type_name (ebl, special_sections[s].type,
- stbuf1, sizeof (stbuf1)),
- ebl_section_type_name (ebl, shdr->sh_type,
- stbuf2, sizeof (stbuf2)));
-
- if (special_sections[s].attrflag == exact)
- {
- /* Except for the link order and group bit all the
- other bits should match exactly. */
- if ((shdr->sh_flags & ~(SHF_LINK_ORDER | SHF_GROUP))
- != special_sections[s].attr)
- ERROR (gettext ("\
-section [%2zu] '%s' has wrong flags: expected %s, is %s\n"),
- cnt, scnname,
- section_flags_string (special_sections[s].attr,
- stbuf1, sizeof (stbuf1)),
- section_flags_string (shdr->sh_flags
- & ~SHF_LINK_ORDER,
- stbuf2, sizeof (stbuf2)));
- }
- else if (special_sections[s].attrflag == atleast)
- {
- if ((shdr->sh_flags & special_sections[s].attr)
- != special_sections[s].attr
- || ((shdr->sh_flags & ~(SHF_LINK_ORDER | SHF_GROUP
- | special_sections[s].attr
- | special_sections[s].attr2))
- != 0))
- ERROR (gettext ("\
-section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"),
- cnt, scnname,
- section_flags_string (special_sections[s].attr,
- stbuf1, sizeof (stbuf1)),
- section_flags_string (special_sections[s].attr2,
- stbuf2, sizeof (stbuf2)),
- section_flags_string (shdr->sh_flags
- & ~(SHF_LINK_ORDER
- | SHF_GROUP),
- stbuf3, sizeof (stbuf3)));
- }
-
- if (strcmp (scnname, ".interp") == 0)
- {
- dot_interp_section = true;
-
- if (ehdr->e_type == ET_REL)
- ERROR (gettext ("\
-section [%2zu] '%s' present in object file\n"),
- cnt, scnname);
-
- if ((shdr->sh_flags & SHF_ALLOC) != 0
- && !has_loadable_segment)
- ERROR (gettext ("\
-section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"),
- cnt, scnname);
- else if ((shdr->sh_flags & SHF_ALLOC) == 0
- && has_loadable_segment)
- ERROR (gettext ("\
-section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable segments\n"),
- cnt, scnname);
- }
- else
- {
- if (strcmp (scnname, ".symtab_shndx") == 0
- && ehdr->e_type != ET_REL)
- ERROR (gettext ("\
-section [%2zu] '%s' is extension section index table in non-object file\n"),
- cnt, scnname);
-
- /* These sections must have the SHF_ALLOC flag set iff
- a loadable segment is available.
-
- .relxxx
- .strtab
- .symtab
- .symtab_shndx
-
- Check that if there is a reference from the
- loaded section these sections also have the
- ALLOC flag set. */
-#if 0
- // XXX TODO
- if ((shdr->sh_flags & SHF_ALLOC) != 0
- && !has_loadable_segment)
- ERROR (gettext ("\
-section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"),
- cnt, scnname);
- else if ((shdr->sh_flags & SHF_ALLOC) == 0
- && has_loadable_segment)
- ERROR (gettext ("\
-section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable segments\n"),
- cnt, scnname);
-#endif
- }
-
- break;
- }
- }
-
- if (shdr->sh_entsize != 0 && shdr->sh_size % shdr->sh_entsize)
- ERROR (gettext ("\
-section [%2zu] '%s': size not multiple of entry size\n"),
- cnt, section_name (ebl, ehdr, cnt));
-
- if (elf_strptr (ebl->elf, shstrndx, shdr->sh_name) == NULL)
- ERROR (gettext ("cannot get section header\n"));
-
- if (shdr->sh_type >= SHT_NUM
- && shdr->sh_type != SHT_GNU_LIBLIST
- && shdr->sh_type != SHT_CHECKSUM
- && shdr->sh_type != SHT_GNU_verdef
- && shdr->sh_type != SHT_GNU_verneed
- && shdr->sh_type != SHT_GNU_versym)
- ERROR (gettext ("unsupported section type %d\n"), (int) shdr->sh_type);
-
-#define ALL_SH_FLAGS (SHF_WRITE | SHF_ALLOC | SHF_EXECINSTR | SHF_MERGE \
- | SHF_STRINGS | SHF_INFO_LINK | SHF_LINK_ORDER \
- | SHF_OS_NONCONFORMING | SHF_GROUP | SHF_TLS)
- if (shdr->sh_flags & ~ALL_SH_FLAGS)
- ERROR (gettext ("section [%2zu] '%s' contain unknown flag(s) %d\n"),
- cnt, section_name (ebl, ehdr, cnt),
- (int) shdr->sh_flags & ~ALL_SH_FLAGS);
- else if (shdr->sh_flags & SHF_TLS)
- {
- // XXX Correct?
- if (shdr->sh_addr != 0 && !gnuld)
- ERROR (gettext ("\
-section [%2zu] '%s': thread-local data sections address not zero\n"),
- cnt, section_name (ebl, ehdr, cnt));
-
- // XXX TODO more tests!?
- }
-
- if (shdr->sh_link >= shnum)
- ERROR (gettext ("\
-section [%2zu] '%s': invalid section reference in link value\n"),
- cnt, section_name (ebl, ehdr, cnt));
-
- if (SH_INFO_LINK_P (shdr) && shdr->sh_info >= shnum)
- ERROR (gettext ("\
-section [%2zu] '%s': invalid section reference in info value\n"),
- cnt, section_name (ebl, ehdr, cnt));
-
- if ((shdr->sh_flags & SHF_MERGE) == 0
- && (shdr->sh_flags & SHF_STRINGS) != 0
- && be_strict)
- ERROR (gettext ("\
-section [%2zu] '%s': strings flag set without merge flag\n"),
- cnt, section_name (ebl, ehdr, cnt));
-
- if ((shdr->sh_flags & SHF_MERGE) != 0 && shdr->sh_entsize == 0)
- ERROR (gettext ("\
-section [%2zu] '%s': merge flag set but entry size is zero\n"),
- cnt, section_name (ebl, ehdr, cnt));
-
- if (shdr->sh_flags & SHF_GROUP)
- check_scn_group (ebl, ehdr, cnt);
-
- if (ehdr->e_type != ET_REL && (shdr->sh_flags & SHF_ALLOC) != 0)
- {
- /* Make sure the section is contained in a loaded segment
- and that the initialization part matches NOBITS sections. */
- int pcnt;
- GElf_Phdr phdr_mem;
- GElf_Phdr *phdr;
-
- for (pcnt = 0; pcnt < ehdr->e_phnum; ++pcnt)
- if ((phdr = gelf_getphdr (ebl->elf, pcnt, &phdr_mem)) != NULL
- && ((phdr->p_type == PT_LOAD
- && (shdr->sh_flags & SHF_TLS) == 0)
- || (phdr->p_type == PT_TLS
- && (shdr->sh_flags & SHF_TLS) != 0))
- && phdr->p_offset <= shdr->sh_offset
- && phdr->p_offset + phdr->p_memsz > shdr->sh_offset)
- {
- /* Found the segment. */
- if (phdr->p_offset + phdr->p_memsz
- < shdr->sh_offset + shdr->sh_size)
- ERROR (gettext ("\
-section [%2zu] '%s' not fully contained in segment of program header entry %d\n"),
- cnt, section_name (ebl, ehdr, cnt), pcnt);
-
- if (shdr->sh_type == SHT_NOBITS)
- {
- if (shdr->sh_offset < phdr->p_offset + phdr->p_filesz)
- ERROR (gettext ("\
-section [%2zu] '%s' has type NOBITS but is read from the file in segment of program header entry %d\n"),
- cnt, section_name (ebl, ehdr, cnt), pcnt);
- }
- else
- {
- if (shdr->sh_offset >= phdr->p_offset + phdr->p_filesz)
- ERROR (gettext ("\
-section [%2zu] '%s' has not type NOBITS but is not read from the file in segment of program header entry %d\n"),
- cnt, section_name (ebl, ehdr, cnt), pcnt);
- }
-
- break;
- }
-
- if (pcnt == ehdr->e_phnum)
- ERROR (gettext ("\
-section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"),
- cnt, section_name (ebl, ehdr, cnt));
- }
-
- if (cnt == shstrndx && shdr->sh_type != SHT_STRTAB)
- ERROR (gettext ("\
-section [%2zu] '%s': ELF header says this is the section header string table but type is not SHT_TYPE\n"),
- cnt, section_name (ebl, ehdr, cnt));
-
- switch (shdr->sh_type)
- {
- case SHT_SYMTAB:
- case SHT_DYNSYM:
- check_symtab (ebl, ehdr, cnt);
- break;
-
- case SHT_RELA:
- check_rela (ebl, ehdr, cnt);
- break;
-
- case SHT_REL:
- check_rel (ebl, ehdr, cnt);
- break;
-
- case SHT_DYNAMIC:
- check_dynamic (ebl, ehdr, cnt);
- break;
-
- case SHT_SYMTAB_SHNDX:
- check_symtab_shndx (ebl, ehdr, cnt);
- break;
-
- case SHT_HASH:
- check_hash (ebl, ehdr, cnt);
- break;
-
- case SHT_NULL:
- check_null (ebl, ehdr, shdr, cnt);
- break;
-
- case SHT_GROUP:
- check_group (ebl, ehdr, shdr, cnt);
- break;
-
- case SHT_GNU_versym:
- check_versym (ebl, ehdr, shdr, cnt);
- break;
-
- default:
- /* Nothing. */
- break;
- }
- }
-
- if (has_interp_segment && !dot_interp_section)
- ERROR (gettext ("INTERP program header entry but no .interp section\n"));
-
- free (scnref);
-}
-
-
-static void
-check_note (Ebl *ebl, GElf_Ehdr *ehdr, GElf_Phdr *phdr, int cnt)
-{
- if (ehdr->e_type != ET_CORE && ehdr->e_type != ET_REL
- && ehdr->e_type != ET_EXEC && ehdr->e_type != ET_DYN)
- ERROR (gettext ("\
-phdr[%d]: no note entries defined for the type of file\n"),
- cnt);
-
- char *notemem = gelf_rawchunk (ebl->elf, phdr->p_offset, phdr->p_filesz);
-
- /* ELF64 files often use note section entries in the 32-bit format.
- The p_align field is set to 8 in case the 64-bit format is used.
- In case the p_align value is 0 or 4 the 32-bit format is
- used. */
- GElf_Xword align = phdr->p_align == 0 || phdr->p_align == 4 ? 4 : 8;
-#define ALIGNED_LEN(len) (((len) + align - 1) & ~(align - 1))
-
- GElf_Xword idx = 0;
- while (idx < phdr->p_filesz)
- {
- uint64_t namesz;
- uint64_t descsz;
- uint64_t type;
- uint32_t namesz32;
- uint32_t descsz32;
-
- if (align == 4)
- {
- uint32_t *ptr = (uint32_t *) (notemem + idx);
-
- if ((__BYTE_ORDER == __LITTLE_ENDIAN
- && ehdr->e_ident[EI_DATA] == ELFDATA2MSB)
- || (__BYTE_ORDER == __BIG_ENDIAN
- && ehdr->e_ident[EI_DATA] == ELFDATA2LSB))
- {
- namesz32 = namesz = bswap_32 (*ptr);
- ++ptr;
- descsz32 = descsz = bswap_32 (*ptr);
- ++ptr;
- type = bswap_32 (*ptr);
- }
- else
- {
- namesz32 = namesz = *ptr++;
- descsz32 = descsz = *ptr++;
- type = *ptr;
- }
- }
- else
- {
- uint64_t *ptr = (uint64_t *) (notemem + idx);
- uint32_t *ptr32 = (uint32_t *) (notemem + idx);
-
- if ((__BYTE_ORDER == __LITTLE_ENDIAN
- && ehdr->e_ident[EI_DATA] == ELFDATA2MSB)
- || (__BYTE_ORDER == __BIG_ENDIAN
- && ehdr->e_ident[EI_DATA] == ELFDATA2LSB))
- {
- namesz = bswap_64 (*ptr);
- ++ptr;
- descsz = bswap_64 (*ptr);
- ++ptr;
- type = bswap_64 (*ptr);
-
- namesz32 = bswap_32 (*ptr32);
- ++ptr32;
- descsz32 = bswap_32 (*ptr32);
- }
- else
- {
- namesz = *ptr++;
- descsz = *ptr++;
- type = *ptr;
-
- namesz32 = *ptr32++;
- descsz32 = *ptr32;
- }
- }
-
- if (idx + 3 * align > phdr->p_filesz
- || (idx + 3 * align + ALIGNED_LEN (namesz) + ALIGNED_LEN (descsz)
- > phdr->p_filesz))
- {
- if (ehdr->e_ident[EI_CLASS] == ELFCLASS64
- && idx + 3 * 4 <= phdr->p_filesz
- && (idx + 3 * 4 + ALIGNED_LEN (namesz32) + ALIGNED_LEN (descsz32)
- <= phdr->p_filesz))
- ERROR (gettext ("\
-phdr[%d]: note entries probably in form of a 32-bit ELF file\n"), cnt);
- else
- ERROR (gettext ("phdr[%d]: extra %zu bytes after last note\n"),
- cnt, (size_t) (phdr->p_filesz - idx));
- break;
- }
-
- /* Make sure it is one of the note types we know about. */
- if (ehdr->e_type == ET_CORE)
- {
- switch (type)
- {
- case NT_PRSTATUS:
- case NT_FPREGSET:
- case NT_PRPSINFO:
- case NT_TASKSTRUCT: /* NT_PRXREG on Solaris. */
- case NT_PLATFORM:
- case NT_AUXV:
- case NT_GWINDOWS:
- case NT_ASRS:
- case NT_PSTATUS:
- case NT_PSINFO:
- case NT_PRCRED:
- case NT_UTSNAME:
- case NT_LWPSTATUS:
- case NT_LWPSINFO:
- case NT_PRFPXREG:
- /* Known type. */
- break;
-
- default:
- ERROR (gettext ("\
-phdr[%d]: unknown core file note type %" PRIu64 " at offset %" PRIu64 "\n"),
- cnt, type, idx);
- }
- }
- else
- {
- if (type != NT_VERSION)
- ERROR (gettext ("\
-phdr[%d]: unknown object file note type %" PRIu64 " at offset %" PRIu64 "\n"),
- cnt, type, idx);
- }
-
- /* Move to the next entry. */
- idx += 3 * align + ALIGNED_LEN (namesz) + ALIGNED_LEN (descsz);
-
- }
-
- gelf_freechunk (ebl->elf, notemem);
-}
-
-
-static void
-check_program_header (Ebl *ebl, GElf_Ehdr *ehdr)
-{
- if (ehdr->e_phoff == 0)
- return;
-
- if (ehdr->e_type != ET_EXEC && ehdr->e_type != ET_DYN
- && ehdr->e_type != ET_CORE)
- ERROR (gettext ("\
-only executables, shared objects, and core files can have program headers\n"));
-
- int num_pt_interp = 0;
- int num_pt_tls = 0;
- int num_pt_relro = 0;
-
- for (int cnt = 0; cnt < ehdr->e_phnum; ++cnt)
- {
- GElf_Phdr phdr_mem;
- GElf_Phdr *phdr;
-
- phdr = gelf_getphdr (ebl->elf, cnt, &phdr_mem);
- if (phdr == NULL)
- {
- ERROR (gettext ("cannot get program header entry %d: %s\n"),
- cnt, elf_errmsg (-1));
- continue;
- }
-
- if (phdr->p_type >= PT_NUM && phdr->p_type != PT_GNU_EH_FRAME
- && phdr->p_type != PT_GNU_STACK)
- ERROR (gettext ("\
-program header entry %d: unknown program header entry type\n"),
- cnt);
-
- if (phdr->p_type == PT_LOAD)
- has_loadable_segment = true;
- else if (phdr->p_type == PT_INTERP)
- {
- if (++num_pt_interp != 1)
- {
- if (num_pt_interp == 2)
- ERROR (gettext ("\
-more than one INTERP entry in program header\n"));
- }
- has_interp_segment = true;
- }
- else if (phdr->p_type == PT_TLS)
- {
- if (++num_pt_tls == 2)
- ERROR (gettext ("more than one TLS entry in program header\n"));
- }
- else if (phdr->p_type == PT_NOTE)
- check_note (ebl, ehdr, phdr, cnt);
- else if (phdr->p_type == PT_DYNAMIC
- && ehdr->e_type == ET_EXEC && ! has_interp_segment)
- ERROR (gettext ("static executable cannot have dynamic sections\n"));
- else if (phdr->p_type == PT_GNU_RELRO)
- {
- if (++num_pt_relro == 2)
- ERROR (gettext ("\
-more than one GNU_RELRO entry in program header\n"));
- else
- {
- /* Check that the region is in a writable segment. */
- int inner;
- for (inner = 0; inner < ehdr->e_phnum; ++inner)
- {
- GElf_Phdr phdr2_mem;
- GElf_Phdr *phdr2;
-
- phdr2 = gelf_getphdr (ebl->elf, cnt, &phdr2_mem);
- if (phdr2 == NULL)
- continue;
-
- if (phdr2->p_type == PT_LOAD
- && phdr->p_vaddr >= phdr2->p_vaddr
- && (phdr->p_vaddr + phdr->p_memsz
- <= phdr2->p_vaddr + phdr2->p_memsz))
- {
- if ((phdr2->p_flags & PF_W) == 0)
- ERROR (gettext ("\
-loadable segment GNU_RELRO applies to is not writable\n"));
- if ((phdr2->p_flags & PF_X) != 0)
- ERROR (gettext ("\
-loadable segment GNU_RELRO applies to is executable\n"));
- break;
- }
- }
-
- if (inner >= ehdr->e_phnum)
- ERROR (gettext ("\
-GNU_RELRO segment not contained in a loaded segment\n"));
- }
- }
-
- if (phdr->p_filesz > phdr->p_memsz)
- ERROR (gettext ("\
-program header entry %d: file size greater than memory size\n"),
- cnt);
-
- if (phdr->p_align > 1)
- {
- if (!powerof2 (phdr->p_align))
- ERROR (gettext ("\
-program header entry %d: alignment not a power of 2\n"), cnt);
- else if ((phdr->p_vaddr - phdr->p_offset) % phdr->p_align != 0)
- ERROR (gettext ("\
-program header entry %d: file offset and virtual address not module of alignment\n"), cnt);
- }
- }
-}
-
-
-/* Process one file. */
-static void
-process_elf_file (Elf *elf, const char *prefix, const char *suffix,
- const char *fname, size_t size, bool only_one)
-{
- /* Reset variables. */
- ndynamic = 0;
-
- GElf_Ehdr ehdr_mem;
- GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem);
- Ebl *ebl;
-
- /* Print the file name. */
- if (!only_one)
- {
- if (prefix != NULL)
- printf ("\n%s(%s)%s:\n", prefix, fname, suffix);
- else
- printf ("\n%s:\n", fname);
- }
-
- if (ehdr == NULL)
- {
- ERROR (gettext ("cannot read ELF header: %s\n"), elf_errmsg (-1));
- return;
- }
-
- ebl = ebl_openbackend (elf);
- /* If there is no appropriate backend library we cannot test
- architecture and OS specific features. Any encountered extension
- is an error. */
-
- /* Go straight by the gABI, check all the parts in turn. */
- check_elf_header (ebl, ehdr, size);
-
- /* Check the program header. */
- check_program_header (ebl, ehdr);
-
- /* Next the section headers. It is OK if there are no section
- headers at all. */
- check_sections (ebl, ehdr);
-
- /* Free the resources. */
- ebl_closebackend (ebl);
-}
diff --git a/src/i386_ld.c b/src/i386_ld.c
deleted file mode 100644
index 28304ca0..00000000
--- a/src/i386_ld.c
+++ /dev/null
@@ -1,891 +0,0 @@
-/* Copyright (C) 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <error.h>
-#include <libintl.h>
-#include <stdlib.h>
-#include <string.h>
-
-// XXX For debugging
-#include <stdio.h>
-
-#include <system.h>
-#include "ld.h"
-#include "list.h"
-/* x86 is little endian. */
-#define UNALIGNED_ACCESS_CLASS LITTLE_ENDIAN
-#include "unaligned.h"
-#include "xelf.h"
-
-
-/* The old callbacks. */
-static int (*old_open_outfile) (struct ld_state *, int, int, int);
-
-
-static int
-elf_i386_open_outfile (struct ld_state *statep, int machine, int klass,
- int data)
-{
- /* This backend only handles 32-bit object files. */
- /* XXX For now just use the generic backend. */
- return old_open_outfile (statep, EM_386, ELFCLASS32, ELFDATA2LSB);
-}
-
-
-/* Process relocations for the output in a relocatable file. This
- only means adjusting offset and symbol indices. */
-static void
-elf_i386_relocate_section (struct ld_state *statep, Elf_Scn *outscn,
- struct scninfo *firstp,
- const Elf32_Word *dblindirect)
-{
- struct scninfo *runp;
- Elf_Data *data;
-
- /* Iterate over all the input sections. Appropriate data buffers in the
- output sections were already created. I get them iteratively, too. */
- runp = firstp;
- data = NULL;
- do
- {
- Elf_Data *reltgtdata;
- Elf_Data *insymdata;
- Elf_Data *inxndxdata = NULL;
- size_t maxcnt;
- size_t cnt;
- const Elf32_Word *symindirect;
- struct symbol **symref;
- struct usedfiles *file = runp->fileinfo;
- XElf_Shdr *shdr = &SCNINFO_SHDR (runp->shdr);
-
- /* Get the output section data buffer for this input section. */
- data = elf_getdata (outscn, data);
- assert (data != NULL);
-
- /* Get the data for section in the input file this relocation
- section is relocating. Since these buffers are reused in the
- output modifying these buffers has the correct result. */
- reltgtdata = elf_getdata (file->scninfo[shdr->sh_info].scn, NULL);
-
- /* Get the data for the input section symbol table for this
- relocation section. */
- insymdata = elf_getdata (file->scninfo[shdr->sh_link].scn, NULL);
- assert (insymdata != NULL);
-
- /* And the extended section index table. */
- inxndxdata = runp->fileinfo->xndxdata;
-
- /* Number of relocations. */
- maxcnt = shdr->sh_size / shdr->sh_entsize;
-
- /* Array directing local symbol table offsets to output symbol
- table offsets. */
- symindirect = file->symindirect;
-
- /* References to the symbol records. */
- symref = file->symref;
-
- /* Iterate over all the relocations in the section. */
- for (cnt = 0; cnt < maxcnt; ++cnt)
- {
- XElf_Rel_vardef (rel);
- Elf32_Word si;
- XElf_Sym_vardef (sym);
- Elf32_Word xndx;
-
- /* Get the relocation data itself. x86 uses Rel
- relocations. In case we have to handle Rela as well the
- whole loop probably should be duplicated. */
- xelf_getrel (data, cnt, rel);
- assert (rel != NULL);
-
- /* Compute the symbol index in the output file. */
- si = symindirect[XELF_R_SYM (rel->r_info)];
- if (si == 0)
- {
- /* This happens if the symbol is locally undefined or
- superceded by some other definition. */
- assert (symref[XELF_R_SYM (rel->r_info)] != NULL);
- si = symref[XELF_R_SYM (rel->r_info)]->outsymidx;
- }
- /* Take reordering performed to sort the symbol table into
- account. */
- si = dblindirect[si];
-
- /* Get the symbol table entry. */
- xelf_getsymshndx (insymdata, inxndxdata, XELF_R_SYM (rel->r_info),
- sym, xndx);
- if (sym->st_shndx != SHN_XINDEX)
- xndx = sym->st_shndx;
- assert (xndx < SHN_LORESERVE || xndx > SHN_HIRESERVE);
-
- /* We fortunately don't have to do much. The relocations
- mostly get only updates of the offset. Only is a
- relocation referred to a section do we have to do
- something. In this case the reference to the sections
- has no direct equivalent since the part the input section
- contributes need not start at the same offset as in the
- input file. Therefore we have to adjust the addend which
- in the case of Rel relocations is in the target section
- itself. */
- if (XELF_ST_TYPE (sym->st_info) == STT_SECTION)
- {
- Elf32_Word toadd;
-
- /* We expect here on R_386_32 relocations. */
- assert (XELF_R_TYPE (rel->r_info) == R_386_32);
-
- /* Avoid writing to the section memory if this is
- effectively a no-op since it might save a
- copy-on-write operation. */
- toadd = file->scninfo[xndx].offset;
- if (toadd != 0)
- add_4ubyte_unaligned (reltgtdata->d_buf + rel->r_offset,
- toadd);
- }
-
- /* Adjust the offset for the position of the input section
- content in the output section. */
- rel->r_offset += file->scninfo[shdr->sh_info].offset;
-
- /* And finally adjust the index of the symbol in the output
- symbol table. */
- rel->r_info = XELF_R_INFO (si, XELF_R_TYPE (rel->r_info));
-
- /* Store the result. */
- (void) xelf_update_rel (data, cnt, rel);
- }
-
- runp = runp->next;
- }
- while (runp != firstp);
-}
-
-
-/* Each PLT entry has 16 bytes. We need one entry as overhead for
- the code to set up the call into the runtime relocation. */
-#define PLT_ENTRY_SIZE 16
-
-static void
-elf_i386_initialize_plt (struct ld_state *statep, Elf_Scn *scn)
-{
- Elf_Data *data;
- XElf_Shdr_vardef (shdr);
-
- /* Change the entry size in the section header. */
- xelf_getshdr (scn, shdr);
- assert (shdr != NULL);
- shdr->sh_entsize = PLT_ENTRY_SIZE;
- (void) xelf_update_shdr (scn, shdr);
-
- data = elf_newdata (scn);
- if (data == NULL)
- error (EXIT_FAILURE, 0, gettext ("cannot allocate PLT section: %s"),
- elf_errmsg (-1));
-
- /* We need one special PLT entry (performing the jump to the runtime
- relocation routines) and one for each function we call in a DSO. */
- data->d_size = (1 + statep->nplt) * PLT_ENTRY_SIZE;
- data->d_buf = xcalloc (1, data->d_size);
- data->d_align = 8;
- data->d_off = 0;
-
- statep->nplt_used = 1;
-}
-
-
-static void
-elf_i386_initialize_pltrel (struct ld_state *statep, Elf_Scn *scn)
-{
- Elf_Data *data;
-
- data = elf_newdata (scn);
- if (data == NULL)
- error (EXIT_FAILURE, 0, gettext ("cannot allocate PLTREL section: %s"),
- elf_errmsg (-1));
-
- /* One relocation per PLT entry. */
- data->d_size = statep->nplt * sizeof (Elf32_Rel);
- data->d_buf = xcalloc (1, data->d_size);
- data->d_type = ELF_T_REL;
- data->d_align = 4;
- data->d_off = 0;
-}
-
-
-static void
-elf_i386_initialize_got (struct ld_state *statep, Elf_Scn *scn)
-{
- Elf_Data *data;
-
- /* If we have no .plt we don't need the special entries we normally
- create for it. The other contents is created later. */
- if (statep->ngot + statep->nplt == 0)
- return;
-
- data = elf_newdata (scn);
- if (data == NULL)
- error (EXIT_FAILURE, 0, gettext ("cannot allocate GOT section: %s"),
- elf_errmsg (-1));
-
- /* We construct the .got section in pieces. Here we only add the data
- structures which are used by the PLT. This includes three reserved
- entries at the beginning (the first will contain a pointer to the
- .dynamic section), and one word for each PLT entry. */
- data->d_size = (3 + statep->ngot + statep->nplt) * sizeof (Elf32_Addr);
- data->d_buf = xcalloc (1, data->d_size);
- data->d_align = sizeof (Elf32_Addr);
- data->d_off = 0;
-}
-
-
-/* The first entry in an absolute procedure linkage table looks like
- this. See the SVR4 ABI i386 supplement to see how this works. */
-static const unsigned char elf_i386_plt0_entry[PLT_ENTRY_SIZE] =
-{
- 0xff, 0x35, /* pushl contents of address */
- 0, 0, 0, 0, /* replaced with address of .got + 4. */
- 0xff, 0x25, /* jmp indirect */
- 0, 0, 0, 0, /* replaced with address of .got + 8. */
- 0, 0, 0, 0 /* pad out to 16 bytes. */
-};
-
-/* Type describing the first PLT entry in non-PIC. */
-struct plt0_entry
-{
- /* First a 'push' of the second GOT entry. */
- unsigned char push_instr[2];
- uint32_t gotp4_addr;
- /* Second, a 'jmp indirect' to the third GOT entry. */
- unsigned char jmp_instr[2];
- uint32_t gotp8_addr;
- /* Padding. */
- unsigned char padding[4];
-} __attribute__ ((packed));
-
-/* The first entry in a PIC procedure linkage table look like this. */
-static const unsigned char elf_i386_pic_plt0_entry[PLT_ENTRY_SIZE] =
-{
- 0xff, 0xb3, 4, 0, 0, 0, /* pushl 4(%ebx) */
- 0xff, 0xa3, 8, 0, 0, 0, /* jmp *8(%ebx) */
- 0, 0, 0, 0 /* pad out to 16 bytes. */
-};
-
-/* Contents of all but the first PLT entry in executable. */
-static const unsigned char elf_i386_plt_entry[PLT_ENTRY_SIZE] =
-{
- 0xff, 0x25, /* jmp indirect */
- 0, 0, 0, 0, /* replaced with address of this symbol in .got. */
- 0x68, /* pushl immediate */
- 0, 0, 0, 0, /* replaced with offset into relocation table. */
- 0xe9, /* jmp relative */
- 0, 0, 0, 0 /* replaced with offset to start of .plt. */
-};
-
-/* Contents of all but the first PLT entry in DSOs. */
-static const unsigned char elf_i386_pic_plt_entry[PLT_ENTRY_SIZE] =
-{
- 0xff, 0xa3, /* jmp *offset(%ebx) */
- 0, 0, 0, 0, /* replaced with offset of this symbol in .got. */
- 0x68, /* pushl immediate */
- 0, 0, 0, 0, /* replaced with offset into relocation table. */
- 0xe9, /* jmp relative */
- 0, 0, 0, 0 /* replaced with offset to start of .plt. */
-};
-
-/* Type describing a PLT entry. */
-struct plt_entry
-{
- /* The first instruction is 'jmp indirect' or 'jmp *offset(%ebs)'. */
- unsigned char jmp_instr[2];
- uint32_t offset_got;
- /* The second instruction is 'push immediate'. */
- unsigned char push_instr;
- uint32_t push_imm;
- /* Finally a 'jmp relative'. */
- unsigned char jmp_instr2;
- uint32_t plt0_offset;
-} __attribute__ ((packed));
-
-
-static void
-elf_i386_finalize_plt (struct ld_state *statep, size_t nsym, size_t nsym_dyn)
-{
- Elf_Scn *scn;
- XElf_Shdr_vardef (shdr);
- Elf_Data *data;
- Elf_Data *symdata = NULL;
- Elf_Data *dynsymdata;
- size_t cnt;
- const bool build_dso = statep->file_type == dso_file_type;
-
- if (unlikely (statep->nplt + statep->ngot == 0))
- /* Nothing to be done. */
- return;
-
- /* Get the address of the got section. */
- scn = elf_getscn (statep->outelf, statep->gotscnidx);
- xelf_getshdr (scn, shdr);
- data = elf_getdata (scn, NULL);
- assert (shdr != NULL && data != NULL);
- Elf32_Addr gotaddr = shdr->sh_addr;
-
- /* Now create the initial values for the .got section. The first
- word contains the address of the .dynamic section. */
- xelf_getshdr (elf_getscn (statep->outelf, statep->dynamicscnidx), shdr);
- assert (shdr != NULL);
- ((Elf32_Word *) data->d_buf)[0] = shdr->sh_addr;
-
- /* The second and third entry are left empty for use by the dynamic
- linker. The following entries are pointers to the instructions
- following the initial jmp instruction in the corresponding PLT
- entry. Since the first PLT entry is special the first used one
- has the index 1. */
- scn = elf_getscn (statep->outelf, statep->pltscnidx);
- xelf_getshdr (scn, shdr);
- assert (shdr != NULL);
-
- dynsymdata = elf_getdata (elf_getscn (statep->outelf, statep->dynsymscnidx),
- NULL);
- assert (dynsymdata != NULL);
-
- if (statep->symscnidx != 0)
- {
- symdata = elf_getdata (elf_getscn (statep->outelf, statep->symscnidx),
- NULL);
- assert (symdata != NULL);
- }
-
- for (cnt = 0; cnt < statep->nplt; ++cnt)
- {
- assert ((4 + cnt) * sizeof (Elf32_Word) <= data->d_size);
-
- /* Address in the PLT. */
- Elf32_Addr pltentryaddr = shdr->sh_addr + (1 + cnt) * PLT_ENTRY_SIZE;
-
- /* Point the GOT entry at the PLT entry, after the initial jmp. */
- ((Elf32_Word *) data->d_buf)[3 + cnt] = pltentryaddr + 6;
-
- /* The value of the symbol is the address of the corresponding PLT
- entry. Store the address, also for the normal symbol table if
- this is necessary. */
- ((Elf32_Sym *) dynsymdata->d_buf)[1 + cnt].st_value = pltentryaddr;
-
- if (symdata != NULL)
- ((Elf32_Sym *) symdata->d_buf)[nsym - statep->nplt + cnt].st_value
- = pltentryaddr;
- }
-
- /* Create the .plt section. */
- scn = elf_getscn (statep->outelf, statep->pltscnidx);
- data = elf_getdata (scn, NULL);
- assert (data != NULL);
-
- /* Create the first entry. */
- assert (data->d_size >= PLT_ENTRY_SIZE);
- if (build_dso)
- /* Copy the entry. It's complete, no relocation needed. */
- memcpy (data->d_buf, elf_i386_pic_plt0_entry, PLT_ENTRY_SIZE);
- else
- {
- /* Copy the skeleton. */
- memcpy (data->d_buf, elf_i386_plt0_entry, PLT_ENTRY_SIZE);
-
- /* And fill in the addresses. */
- struct plt0_entry *addr = (struct plt0_entry *) data->d_buf;
- addr->gotp4_addr = target_bswap_32 (gotaddr + 4);
- addr->gotp8_addr = target_bswap_32 (gotaddr + 8);
- }
-
- /* For DSOs we need GOT offsets, otherwise the GOT address. */
- Elf32_Addr gotaddr_off = build_dso ? 0 : gotaddr;
-
- /* Create the remaining entries. */
- const unsigned char *plt_template
- = build_dso ? elf_i386_pic_plt_entry : elf_i386_plt_entry;
-
- for (cnt = 0; cnt < statep->nplt; ++cnt)
- {
- struct plt_entry *addr;
-
- /* Copy the template. */
- assert (data->d_size >= (2 + cnt) * PLT_ENTRY_SIZE);
- addr = (struct plt_entry *) ((char *) data->d_buf
- + (1 + cnt) * PLT_ENTRY_SIZE);
- memcpy (addr, plt_template, PLT_ENTRY_SIZE);
-
- /* And once more, fill in the addresses. First the address of
- this symbol in .got. */
- addr->offset_got = target_bswap_32 (gotaddr_off
- + (3 + cnt) * sizeof (Elf32_Addr));
- /* Offset into relocation table. */
- addr->push_imm = target_bswap_32 (cnt * sizeof (Elf32_Rel));
- /* Offset to start of .plt. */
- addr->plt0_offset = target_bswap_32 (-(2 + cnt) * PLT_ENTRY_SIZE);
- }
-
- /* Create the .rel.plt section data. It simply means relocations
- addressing the corresponding entry in the .got section. The
- section name is misleading. */
- scn = elf_getscn (statep->outelf, statep->pltrelscnidx);
- xelf_getshdr (scn, shdr);
- data = elf_getdata (scn, NULL);
- assert (shdr != NULL && data != NULL);
-
- /* Update the sh_link to point to the section being modified. We
- point it here (correctly) to the .got section. Some linkers
- (e.g., the GNU binutils linker) point to the .plt section. This
- is wrong since the .plt section isn't modified even though the
- name .rel.plt suggests that this is correct. */
- shdr->sh_link = statep->dynsymscnidx;
- shdr->sh_info = statep->gotscnidx;
- (void) xelf_update_shdr (scn, shdr);
-
- for (cnt = 0; cnt < statep->nplt; ++cnt)
- {
- XElf_Rel_vardef (rel);
-
- assert ((1 + cnt) * sizeof (Elf32_Rel) <= data->d_size);
- xelf_getrel_ptr (data, cnt, rel);
- rel->r_offset = gotaddr + (3 + cnt) * sizeof (Elf32_Addr);
- /* The symbol table entries for the functions from DSOs are at
- the end of the symbol table. */
- rel->r_info = XELF_R_INFO (1 + cnt, R_386_JMP_SLOT);
- (void) xelf_update_rel (data, cnt, rel);
- }
-}
-
-
-static int
-elf_i386_rel_type (struct ld_state *statep __attribute__ ((__unused__)))
-{
- /* ELF/i386 uses REL. */
- return DT_REL;
-}
-
-
-static void
-elf_i386_count_relocations (struct ld_state *statep, struct scninfo *scninfo)
-{
- /* We go through the list of input sections and count those relocations
- which are not handled by the linker. At the same time we have to
- see how many GOT entries we need and how much .bss space is needed
- for copy relocations. */
- Elf_Data *data = elf_getdata (scninfo->scn, NULL);
- XElf_Shdr *shdr = &SCNINFO_SHDR (scninfo->shdr);
- size_t maxcnt = shdr->sh_size / shdr->sh_entsize;
- size_t relsize = 0;
- size_t cnt;
- struct symbol *sym;
-
- assert (shdr->sh_type == SHT_REL);
-
- for (cnt = 0; cnt < maxcnt; ++cnt)
- {
- XElf_Rel_vardef (rel);
-
- xelf_getrel (data, cnt, rel);
- /* XXX Should we complain about failing accesses? */
- if (rel != NULL)
- {
- int r_sym = XELF_R_SYM (rel->r_info);
-
- switch (XELF_R_TYPE (rel->r_info))
- {
- case R_386_GOT32:
- if (! scninfo->fileinfo->symref[r_sym]->defined)
- relsize += sizeof (Elf32_Rel);
-
- /* This relocation is not emitted in the output file but
- requires a GOT entry. */
- ++statep->ngot;
- ++statep->nrel_got;
-
- /* FALLTHROUGH */
-
- case R_386_GOTOFF:
- case R_386_GOTPC:
- statep->need_got = true;
- break;
-
- case R_386_32:
- case R_386_PC32:
- /* These relocations cause text relocations in DSOs. */
- if (linked_from_dso_p (scninfo, r_sym))
- {
- if (statep->file_type == dso_file_type)
- {
- relsize += sizeof (Elf32_Rel);
- statep->dt_flags |= DF_TEXTREL;
- }
- else
- {
- /* Non-function objects from a DSO need to get a
- copy relocation. */
- sym = scninfo->fileinfo->symref[r_sym];
-
- /* Only do this if we have not requested a copy
- relocation already. */
- if (unlikely (sym->type != STT_FUNC) && ! sym->need_copy)
- {
- sym->need_copy = 1;
- ++statep->ncopy;
- relsize += sizeof (Elf32_Rel);
- }
- }
- }
- else if (statep->file_type == dso_file_type
- && r_sym >= SCNINFO_SHDR (scninfo->fileinfo->scninfo[shdr->sh_link].shdr).sh_info
- && scninfo->fileinfo->symref[r_sym]->outdynsymidx != 0
- && XELF_R_TYPE (rel->r_info) == R_386_32)
- relsize += sizeof (Elf32_Rel);
- break;
-
- case R_386_PLT32:
- /* We might need a PLT entry. But we cannot say for sure
- here since one of the symbols might turn up being
- defined in the executable (if we create such a thing).
- If a DSO is created we still might use a local
- definition.
-
- If the symbol is not defined and we are not creating
- a statically linked binary, then we need in any case
- a PLT entry. */
- if (! scninfo->fileinfo->symref[r_sym]->defined)
- {
- assert (!statep->statically);
-
- sym = scninfo->fileinfo->symref[r_sym];
- sym->type = STT_FUNC;
- sym->in_dso = 1;
- sym->defined = 1;
-
- /* Remove from the list of unresolved symbols. */
- --statep->nunresolved;
- if (! sym->weak)
- --statep->nunresolved_nonweak;
- CDBL_LIST_DEL (statep->unresolved, sym);
-
- /* Add to the list of symbols we expect from a DSO. */
- ++statep->nplt;
- ++statep->nfrom_dso;
- CDBL_LIST_ADD_REAR (statep->from_dso, sym);
- }
- break;
-
- case R_386_TLS_GD:
- case R_386_TLS_LDM:
- case R_386_TLS_GD_32:
- case R_386_TLS_GD_PUSH:
- case R_386_TLS_GD_CALL:
- case R_386_TLS_GD_POP:
- case R_386_TLS_LDM_32:
- case R_386_TLS_LDM_PUSH:
- case R_386_TLS_LDM_CALL:
- case R_386_TLS_LDM_POP:
- case R_386_TLS_LDO_32:
- case R_386_TLS_IE_32:
- case R_386_TLS_LE_32:
- /* XXX */
- abort ();
- break;
-
- case R_386_NONE:
- /* Nothing to be done. */
- break;
-
- /* These relocation should never be generated by an
- assembler. */
- case R_386_COPY:
- case R_386_GLOB_DAT:
- case R_386_JMP_SLOT:
- case R_386_RELATIVE:
- case R_386_TLS_DTPMOD32:
- case R_386_TLS_DTPOFF32:
- case R_386_TLS_TPOFF32:
- /* Unknown relocation. */
- default:
- abort ();
- }
- }
- }
-
- scninfo->relsize = relsize;
-}
-
-
-static void
-elf_i386_create_relocations (struct ld_state *statep,
- const Elf32_Word *dblindirect)
-{
- /* Get the address of the got section. */
- Elf_Scn *pltscn = elf_getscn (statep->outelf, statep->pltscnidx);
- Elf32_Shdr *shdr = elf32_getshdr (pltscn);
- assert (shdr != NULL);
- Elf32_Addr pltaddr = shdr->sh_addr;
-
- Elf_Scn *gotscn = elf_getscn (statep->outelf, statep->gotscnidx);
- shdr = elf32_getshdr (gotscn);
- assert (shdr != NULL);
- Elf32_Addr gotaddr = shdr->sh_addr;
-
- Elf_Scn *reldynscn = elf_getscn (statep->outelf, statep->reldynscnidx);
- Elf_Data *reldyndata = elf_getdata (reldynscn, NULL);
-
- size_t nreldyn = 0;
-#define ngot_used (3 + statep->nplt + nreldyn)
-
- struct scninfo *first = statep->rellist->next;
- struct scninfo *runp = first;
- do
- {
- XElf_Shdr *rshdr = &SCNINFO_SHDR (runp->shdr);
- Elf_Data *reldata = elf_getdata (runp->scn, NULL);
- int nrels = rshdr->sh_size / rshdr->sh_entsize;
-
- /* We will need the following vlaues a couple of times. Help
- the compiler and improve readability. */
- struct symbol **symref = runp->fileinfo->symref;
- struct scninfo *scninfo = runp->fileinfo->scninfo;
-
- /* This is the offset of the input section we are looking at in
- the output file. */
- XElf_Addr inscnoffset = scninfo[rshdr->sh_info].offset;
-
- /* The target section. We use the data from the input file. */
- Elf_Data *data = elf_getdata (scninfo[rshdr->sh_info].scn, NULL);
-
- /* We cannot handle relocations against merge-able sections. */
- assert ((SCNINFO_SHDR (scninfo[rshdr->sh_link].shdr).sh_flags
- & SHF_MERGE) == 0);
-
- /* Cache the access to the symbol table data. */
- Elf_Data *symdata = elf_getdata (scninfo[rshdr->sh_link].scn, NULL);
-
- int cnt;
- for (cnt = 0; cnt < nrels; ++cnt)
- {
- XElf_Rel_vardef (rel);
- XElf_Rel *rel2;
- xelf_getrel (reldata, cnt, rel);
- assert (rel != NULL);
- XElf_Addr reladdr = inscnoffset + rel->r_offset;
- XElf_Addr value;
-
- size_t idx = XELF_R_SYM (rel->r_info);
- if (idx < runp->fileinfo->nlocalsymbols)
- {
- XElf_Sym_vardef (sym);
- xelf_getsym (symdata, idx, sym);
-
- /* The value just depends on the position of the referenced
- section in the output file and the addend. */
- value = scninfo[sym->st_shndx].offset + sym->st_value;
- }
- else if (symref[idx]->in_dso)
- {
- /* MERGE.VALUE contains the PLT index. We have to add 1 since
- there is this one special PLT entry at the beginning. */
- assert (symref[idx]->merge.value != 0
- || symref[idx]->type != STT_FUNC);
- value = pltaddr + symref[idx]->merge.value * PLT_ENTRY_SIZE;
- }
- else
- value = symref[idx]->merge.value;
-
- /* Address of the relocated memory in the data buffer. */
- void *relloc = (char *) data->d_buf + rel->r_offset;
-
- switch (XELF_R_TYPE (rel->r_info))
- {
- /* These three cases can be handled together since the
- symbol associated with the R_386_GOTPC relocation is
- _GLOBAL_OFFSET_TABLE_ which has a value corresponding
- to the address of the GOT and the address of the PLT
- entry required for R_386_PLT32 is computed above. */
- case R_386_PC32:
- case R_386_GOTPC:
- case R_386_PLT32:
- value -= reladdr;
- /* FALLTHROUGH */
-
- case R_386_32:
- if (linked_from_dso_p (scninfo, idx)
- && statep->file_type != dso_file_type
- && symref[idx]->type != STT_FUNC)
- {
- value = (ld_state.copy_section->offset
- + symref[idx]->merge.value);
-
- if (unlikely (symref[idx]->need_copy))
- {
- /* Add a relocation to initialize the GOT entry. */
- assert (symref[idx]->outdynsymidx != 0);
-#if NATIVE_ELF != 0
- xelf_getrel_ptr (reldyndata, nreldyn, rel2);
-#else
- rel2 = &rel_mem;
-#endif
- rel2->r_offset = value;
- rel2->r_info
- = XELF_R_INFO (symref[idx]->outdynsymidx, R_386_COPY);
- (void) xelf_update_rel (reldyndata, nreldyn, rel2);
- ++nreldyn;
-
- /* Update the symbol table record for the new
- address. */
- Elf32_Word symidx = symref[idx]->outdynsymidx;
- Elf_Scn *symscn = elf_getscn (statep->outelf,
- statep->dynsymscnidx);
- Elf_Data *outsymdata = elf_getdata (symscn, NULL);
- assert (outsymdata != NULL);
- XElf_Sym_vardef (sym);
- xelf_getsym (outsymdata, symidx, sym);
- sym->st_value = value;
- sym->st_shndx = statep->copy_section->outscnndx;
- (void) xelf_update_sym (outsymdata, symidx, sym);
-
- symidx = symref[idx]->outsymidx;
- if (symidx != 0)
- {
- symidx = statep->dblindirect[symidx];
- symscn = elf_getscn (statep->outelf,
- statep->symscnidx);
- outsymdata = elf_getdata (symscn, NULL);
- assert (outsymdata != NULL);
- xelf_getsym (outsymdata, symidx, sym);
- sym->st_value = value;
- sym->st_shndx = statep->copy_section->outscnndx;
- (void) xelf_update_sym (outsymdata, symidx, sym);
- }
-
- /* Remember that we set up the copy relocation. */
- symref[idx]->need_copy = 0;
- }
- }
- else if (statep->file_type == dso_file_type
- && idx >= SCNINFO_SHDR (scninfo[rshdr->sh_link].shdr).sh_info
- && symref[idx]->outdynsymidx != 0)
- {
-#if NATIVE_ELF != 0
- xelf_getrel_ptr (reldyndata, nreldyn, rel2);
-#else
- rel2 = &rel_mem;
-#endif
- rel2->r_offset = value;
- rel2->r_info
- = XELF_R_INFO (symref[idx]->outdynsymidx, R_386_32);
- (void) xelf_update_rel (reldyndata, nreldyn, rel2);
- ++nreldyn;
-
- value = 0;
- }
- add_4ubyte_unaligned (relloc, value);
- break;
-
- case R_386_GOT32:
- store_4ubyte_unaligned (relloc, ngot_used * sizeof (Elf32_Addr));
-
- /* Add a relocation to initialize the GOT entry. */
-#if NATIVE_ELF != 0
- xelf_getrel_ptr (reldyndata, nreldyn, rel2);
-#else
- rel2 = &rel_mem;
-#endif
- rel2->r_offset = gotaddr + ngot_used * sizeof (Elf32_Addr);
- rel2->r_info
- = XELF_R_INFO (symref[idx]->outdynsymidx, R_386_GLOB_DAT);
- (void) xelf_update_rel (reldyndata, nreldyn, rel2);
- ++nreldyn;
- break;
-
- case R_386_GOTOFF:
- add_4ubyte_unaligned (relloc, value - gotaddr);
- break;
-
- case R_386_32PLT:
- case R_386_TLS_TPOFF:
- case R_386_TLS_IE:
- case R_386_TLS_GOTIE:
- case R_386_TLS_LE:
- case R_386_TLS_GD:
- case R_386_TLS_LDM:
- case R_386_16:
- case R_386_PC16:
- case R_386_8:
- case R_386_PC8:
- case R_386_TLS_GD_32:
- case R_386_TLS_GD_PUSH:
- case R_386_TLS_GD_CALL:
- case R_386_TLS_GD_POP:
- case R_386_TLS_LDM_32:
- case R_386_TLS_LDM_PUSH:
- case R_386_TLS_LDM_CALL:
- case R_386_TLS_LDM_POP:
- case R_386_TLS_LDO_32:
- case R_386_TLS_IE_32:
- case R_386_TLS_LE_32:
- // XXX For now fall through
- printf("ignored relocation %d\n", (int) XELF_R_TYPE (rel->r_info));
- break;
-
- case R_386_NONE:
- /* Nothing to do. */
- break;
-
- case R_386_COPY:
- case R_386_JMP_SLOT:
- case R_386_RELATIVE:
- case R_386_GLOB_DAT:
- case R_386_TLS_DTPMOD32:
- case R_386_TLS_DTPOFF32:
- case R_386_TLS_TPOFF32:
- default:
- /* Should not happen. */
- abort ();
- }
- }
- }
- while ((runp = runp->next) != first);
-}
-
-
-int
-elf_i386_ld_init (struct ld_state *statep)
-{
- /* We have a few callbacks available. */
- old_open_outfile = statep->callbacks.open_outfile;
- statep->callbacks.open_outfile = elf_i386_open_outfile;
-
- statep->callbacks.relocate_section = elf_i386_relocate_section;
-
- statep->callbacks.initialize_plt = elf_i386_initialize_plt;
- statep->callbacks.initialize_pltrel = elf_i386_initialize_pltrel;
-
- statep->callbacks.initialize_got = elf_i386_initialize_got;
-
- statep->callbacks.finalize_plt = elf_i386_finalize_plt;
-
- statep->callbacks.rel_type = elf_i386_rel_type;
-
- statep->callbacks.count_relocations = elf_i386_count_relocations;
-
- statep->callbacks.create_relocations = elf_i386_create_relocations;
-
- return 0;
-}
diff --git a/src/ld.c b/src/ld.c
deleted file mode 100644
index a6b664f7..00000000
--- a/src/ld.c
+++ /dev/null
@@ -1,1520 +0,0 @@
-/* Copyright (C) 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <argp.h>
-#include <assert.h>
-#include <error.h>
-#include <fcntl.h>
-#include <libelf.h>
-#include <libintl.h>
-#include <locale.h>
-#include <mcheck.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <system.h>
-#include "ld.h"
-#include "list.h"
-
-
-/* Name and version of program. */
-static void print_version (FILE *stream, struct argp_state *state);
-void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
-
-
-/* Values for the various options. */
-enum
- {
- ARGP_whole_archive = 300,
- ARGP_no_whole_archive,
- ARGP_static,
- ARGP_dynamic,
- ARGP_pagesize,
- ARGP_rpath,
- ARGP_rpath_link,
- ARGP_runpath,
- ARGP_runpath_link,
- ARGP_version_script,
- ARGP_gc_sections,
- ARGP_no_gc_sections,
- ARGP_no_undefined,
- ARGP_conserve,
-#if YYDEBUG
- ARGP_yydebug,
-#endif
- };
-
-
-/* Definitions of arguments for argp functions. */
-static const struct argp_option options[] =
-{
- /* XXX This list will be reordered and section names will be added.
- Just not right now. */
- { "whole-archive", ARGP_whole_archive, NULL, 0,
- N_("Include whole archives in the output from now on.") },
- { "no-whole-archive", ARGP_no_whole_archive, NULL, 0,
- N_("Stop including the whole arhives in the output.") },
-
- { "output", 'o', N_("FILE"), 0, N_("Place output in FILE.") },
-
- { NULL, 'O', N_("LEVEL"), OPTION_ARG_OPTIONAL,
- N_("Set optimization level to LEVEL.") },
-
- { "verbose", 'v', NULL, 0, N_("Verbose messages.") },
- { "trace", 't', NULL, 0, N_("Trace file opens.") },
- { "conserve-memory", ARGP_conserve, NULL, 0,
- N_("Trade speed for less memory usage") },
-
- { NULL, 'z', "KEYWORD", OPTION_HIDDEN, NULL },
- { "-z nodefaultlib", '\0', NULL, OPTION_DOC,
- N_("Object is marked to not use default search path at runtime.") },
- { "-z allextract", '\0', NULL, OPTION_DOC,
- N_("Same as --whole-archive.") },
- { "-z defaultextract", '\0', NULL, OPTION_DOC, N_("\
-Default rules of extracting from archive; weak references are not enough.") },
- { "-z weakextract", '\0', NULL, OPTION_DOC,
- N_("Weak references cause extraction from archive.") },
- { "-z muldefs", '\0', NULL, OPTION_DOC,
- N_("Allow multiple definitions; first is used.") },
- { "-z defs | nodefs", '\0', NULL, OPTION_DOC,
- N_("Disallow/allow undefined symbols in DSOs.") },
- { "no-undefined", ARGP_no_undefined, NULL, OPTION_HIDDEN, NULL },
- { "-z origin", '\0', NULL, OPTION_DOC,
- N_("Object requires immediate handling of $ORIGIN.") },
- { "-z now", '\0', NULL, OPTION_DOC,
- N_("Relocation will not be processed lazily.") },
- { "-z nodelete", '\0', NULL, OPTION_DOC,
- N_("Object cannot be unloaded at runtime.") },
- { "-z initfirst", '\0', NULL, OPTION_DOC,
- N_("Mark object to be initialized first.") },
- { "-z lazyload | nolazyload", '\0', NULL, OPTION_DOC,
- N_("Enable/disable lazy-loading flag for following dependencies.") },
- { "-z nodlopen", '\0', NULL, OPTION_DOC,
- N_("Mark object as not loadable with 'dlopen'.") },
- { "-z ignore | record", '\0', NULL, OPTION_DOC,
- N_("Ignore/record dependencies on unused DSOs.") },
- { "-z systemlibrary", '\0', NULL, OPTION_DOC,
- N_("Generated DSO will be a system library.") },
-
- { NULL, 'l', N_("FILE"), OPTION_HIDDEN, NULL },
-
- { NULL, '(', NULL, 0, N_("Start a group.") },
- { NULL, ')', NULL, 0, N_("End a group.") },
-
- { NULL, 'L', N_("PATH"), 0,
- N_("Add PATH to list of directories files are searched in.") },
-
- { NULL, 'c', N_("FILE"), 0, N_("Use linker script in FILE.") },
-
- { "entry", 'e', N_("ADDRESS"), 0, N_("Set entry point address.") },
-
- { "static", ARGP_static, NULL, OPTION_HIDDEN, NULL },
- { "-B static", ARGP_static, NULL, OPTION_DOC,
- N_("Do not link against shared libraries.") },
- { "dynamic", ARGP_dynamic, NULL, OPTION_HIDDEN, NULL },
- { "-B dynamic", ARGP_dynamic, NULL, OPTION_DOC,
- N_("Prefer linking against shared libraries.") },
-
- { "export-dynamic", 'E', NULL, 0, N_("Export all dynamic symbols.") },
-
- { "strip-all", 's', NULL, 0, N_("Strip all symbols.") },
- { "strip-debug", 'S', NULL, 0, N_("Strip debugging symbols.") },
-
- { "pagesize", ARGP_pagesize, "SIZE", 0,
- N_("Assume pagesize for the target system to be SIZE.") },
-
- { "rpath", ARGP_rpath, "PATH", OPTION_HIDDEN, NULL },
- { "rpath-link", ARGP_rpath_link, "PATH", OPTION_HIDDEN, NULL },
-
- { "runpath", ARGP_runpath, "PATH", 0, N_("Set runtime DSO search path.") },
- { "runpath-link", ARGP_runpath_link, "PATH", 0,
- N_("Set link time DSO search path.") },
-
- { NULL, 'i', NULL, 0, N_("Ignore LD_LIBRARY_PATH environment variable.") },
-
- { "version-script", ARGP_version_script, "FILE", 0,
- N_("Read version information from FILE.") },
-
- { "emulation", 'm', "NAME", 0, N_("Set emulation to NAME.") },
-
- { "shared", 'G', NULL, 0, N_("Generate dynamic shared object.") },
- { NULL, 'r', NULL, 0L, N_("Generate relocatable object.") },
-
- { NULL, 'B', "KEYWORD", OPTION_HIDDEN, "" },
- { "-B local", 'B', NULL, OPTION_DOC,
- N_("Causes symbol not assigned to a version be reduced to local.") },
-
- { "gc-sections", ARGP_gc_sections, NULL, 0, N_("Remove unused sections.") },
- { "no-gc-sections", ARGP_no_gc_sections, NULL, 0,
- N_("Don't remove unused sections.") },
-
- { "soname", 'h', "NAME", 0, N_("Set soname of shared object.") },
- { "dynamic-linker", 'I', "NAME", 0, N_("Set the dynamic linker name.") },
-
- { NULL, 'Q', "YN", OPTION_HIDDEN, NULL },
- { "-Q y | n", 'Q', NULL, OPTION_DOC,
- N_("Add/suppress addition indentifying link-editor to .comment section") },
-
-#if YYDEBUG
- { "yydebug", ARGP_yydebug, NULL, 0,
- N_("Select to get parser debug information") },
-#endif
-
- { NULL, 0, NULL, 0, NULL }
-};
-
-/* Short description of program. */
-static const char doc[] = N_("Combine object and archive files.");
-
-/* Strings for arguments in help texts. */
-static const char args_doc[] = N_("[FILE]...");
-
-/* Prototype for option handler. */
-static error_t parse_opt_1st (int key, char *arg, struct argp_state *state);
-static error_t parse_opt_2nd (int key, char *arg, struct argp_state *state);
-
-/* Function to print some extra text in the help message. */
-static char *more_help (int key, const char *text, void *input);
-
-/* Data structure to communicate with argp functions. */
-static struct argp argp_1st =
-{
- options, parse_opt_1st, args_doc, doc, NULL, more_help
-};
-static struct argp argp_2nd =
-{
- options, parse_opt_2nd, args_doc, doc, NULL, more_help
-};
-
-
-/* Linker state. This contains all global information. */
-struct ld_state ld_state;
-
-/* List of the input files. */
-static struct file_list
-{
- const char *name;
- struct file_list *next;
-} *input_file_list;
-
-/* If nonzero be verbose. */
-int verbose;
-
-/* If nonzero, trade speed for less memory/address space usage. */
-int conserve_memory;
-
-/* The emulation name to use. */
-static const char *emulation;
-
-/* Keep track of the nesting level. Even though we don't handle nested
- groups we still keep track to improve the error messages. */
-static int group_level;
-
-/* The last file we processed. */
-static struct usedfiles *last_file;
-
-/* The default linker script. */
-/* XXX We'll do this a bit different in the real solution. */
-static const char *linker_script = SRCDIR "/elf32-i386.script";
-
-/* Nonzero if an error occurred while loading the input files. */
-static int error_loading;
-
-
-/* Intermediate storage for the LD_LIBRARY_PATH information from the
- environment. */
-static char *ld_library_path1;
-
-/* Flag used to communicate with the scanner. */
-int ld_scan_version_script;
-
-/* Name of the input file. */
-const char *ldin_fname;
-
-/* Define by parser if required. */
-extern int lddebug;
-
-
-/* Prototypes for local functions. */
-static void parse_z_option (const char *arg);
-static void parse_z_option_2 (const char *arg);
-static void parse_B_option (const char *arg);
-static void parse_B_option_2 (const char *arg);
-static void determine_output_format (void);
-static void load_needed (void);
-static void collect_sections (void);
-static void add_rxxpath (struct pathelement **pathp, const char *str);
-static void gen_rxxpath_data (void);
-static void read_version_script (const char *fname);
-static void create_lscript_symbols (void);
-static void create_special_section_symbol (struct symbol **symp,
- const char *name);
-
-
-int
-main (int argc, char *argv[])
-{
- int remaining;
- int err;
-
-#ifndef NDEBUG
- /* Enable memory debugging. */
- mtrace ();
-#endif
-
- /* Sanity check. We always want to use the LFS functionality. */
- if (sizeof (off_t) != sizeof (off64_t))
- abort ();
-
- /* We use no threads here which can interfere with handling a stream. */
- __fsetlocking (stdin, FSETLOCKING_BYCALLER);
- __fsetlocking (stdout, FSETLOCKING_BYCALLER);
- __fsetlocking (stderr, FSETLOCKING_BYCALLER);
-
- /* Set locale. */
- setlocale (LC_ALL, "");
-
- /* Make sure the message catalog can be found. */
- bindtextdomain (PACKAGE, LOCALEDIR);
-
- /* Initialize the message catalog. */
- textdomain (PACKAGE);
-
- /* Before we start tell the ELF library which version we are using. */
- elf_version (EV_CURRENT);
-
- /* The user can use the LD_LIBRARY_PATH environment variable to add
- additional lookup directories. */
- ld_library_path1 = getenv ("LD_LIBRARY_PATH");
-
- /* Initialize the memory handling. */
-#define obstack_chunk_alloc xmalloc
-#define obstack_chunk_free free
- obstack_init (&ld_state.smem);
-
- /* One quick pass over the parameters which allows us to scan for options
- with global effect which influence the rest of the processing. */
- argp_parse (&argp_1st, argc, argv, ARGP_IN_ORDER, &remaining, NULL);
-
- /* We need at least one input file. */
- if (input_file_list == NULL)
- {
- error (0, 0, gettext ("At least one input file needed"));
- argp_help (&argp_1st, stderr, ARGP_HELP_SEE, "ld");
- exit (EXIT_FAILURE);
- }
-
- /* Determine which ELF backend to use. */
- determine_output_format ();
-
- /* Prepare state. */
- err = ld_prepare_state (emulation);
- if (err != 0)
- error (EXIT_FAILURE, 0, gettext ("error while preparing linking"));
-
- /* XXX Read the linker script now. Since we later will have the linker
- script built in we don't go into trouble to make sure we handle GROUP
- statements in the script. This simply must not happen. */
- ldin = fopen (linker_script, "r");
- if (ldin == NULL)
- error (EXIT_FAILURE, errno, gettext ("cannot open linker script \"%s\""),
- linker_script);
- /* No need for locking. */
- __fsetlocking (ldin, FSETLOCKING_BYCALLER);
-
- ld_state.srcfiles = NULL;
- ldlineno = 1;
- ld_scan_version_script = 0;
- ldin_fname = linker_script;
- if (ldparse () != 0)
- /* Something went wrong during parsing. */
- exit (EXIT_FAILURE);
- fclose (ldin);
-
- /* We now might have a list of directories to look for libraries in
- named by the linker script. Put them in a different list so that
- they are searched after all paths given by the user on the
- command line. */
- ld_state.default_paths = ld_state.paths;
- ld_state.paths = ld_state.tailpaths = NULL;
-
- /* Get runpath/rpath information in usable form. */
- gen_rxxpath_data ();
-
- /* Parse and process arguments for real. */
- argp_parse (&argp_2nd, argc, argv, ARGP_IN_ORDER, &remaining, NULL);
- /* All options should have been processed by the argp parser. */
- assert (remaining == argc);
-
- /* Process the last file. */
- while (last_file != NULL)
- /* Try to open the file. */
- error_loading |= FILE_PROCESS (-1, last_file, &ld_state, &last_file);
-
- /* Stop if there has been a problem while reading the input files. */
- if (error_loading)
- exit (error_loading);
-
- /* See whether all opened -( were closed. */
- if (group_level > 0)
- {
- error (0, 0, gettext ("-( without matching -)"));
- argp_help (&argp_1st, stderr, ARGP_HELP_SEE, "ld");
- exit (EXIT_FAILURE);
- }
-
- /* When we create a relocatable file we don't have to look for the
- DT_NEEDED DSOs and we also don't test for undefined symbols. */
- if (ld_state.file_type != relocatable_file_type)
- {
- /* At this point we have loaded all the direct dependencies. What
- remains to be done is find the indirect dependencies. These are
- DSOs which are referenced by the DT_NEEDED entries in the DSOs
- which are direct dependencies. We have to transitively find and
- load all these dependencies. */
- load_needed ();
-
- /* At this point all object files and DSOs are read. If there
- are still undefined symbols left they might have to be
- synthesized from the linker script. */
- create_lscript_symbols ();
-
- /* Now that we have loaded all the object files we can determine
- whether we have any non-weak unresolved references left. If
- there are any we stop. If the user used the '-z nodefs' option
- and we are creating a DSO don't perform the tests. */
- if (FLAG_UNRESOLVED (&ld_state) != 0)
- exit (1);
- }
-
- /* Collect information about the relocations which will be carried
- forward into the output. We have to do this here and now since
- we need to know which sections have to be created. */
- if (ld_state.file_type != relocatable_file_type)
- {
- void *p ;
- struct scnhead *h;
-
- p = NULL;
- while ((h = ld_section_tab_iterate (&ld_state.section_tab, &p)) != NULL)
- if (h->type == SHT_REL || h->type == SHT_RELA)
- {
- struct scninfo *runp = h->last;
- do
- {
- /* If we are processing the relocations determine how
- many will be in the output file. Also determine
- how many GOT entries are needed. */
- COUNT_RELOCATIONS (&ld_state, runp);
-
- ld_state.relsize_total += runp->relsize;
- }
- while ((runp = runp->next) != h->last);
- }
- }
-
- /* Not part of the gABI, but part of every psABI: the symbols for the
- GOT section. Add the symbol if necessary. */
- if (ld_state.need_got)
- create_special_section_symbol (&ld_state.got_symbol,
- "_GLOBAL_OFFSET_TABLE_");
- /* Similarly for the _DYNAMIC symbol which points to the dynamic
- section. */
- if (dynamically_linked_p ())
- create_special_section_symbol (&ld_state.dyn_symbol, "_DYNAMIC");
-
- /* We are ready to start working on the output file. Not all
- information has been gather or created yet. This will be done as
- we go. Open the file now. */
- if (OPEN_OUTFILE (&ld_state, EM_NONE, ELFCLASSNONE, ELFDATANONE) != 0)
- exit (1);
-
- /* Create the sections which are generated by the linker and are not
- present in the input file. The output file must already have
- been opened since we need the ELF descriptor to deduce type
- sizes. */
- GENERATE_SECTIONS (&ld_state);
-
- /* At this point we have read all the files and know all the
- sections which have to be linked into the application. We do now
- create an array listing all the sections. We will than pass this
- array to a system specific function which can reorder it at will.
- The functions can also merge sections if this is what is
- wanted. */
- collect_sections ();
-
- /* Create the output sections now. This may requires sorting them
- first. */
- CREATE_SECTIONS (&ld_state);
-
- /* Create the output file data. Appropriate code for the selected
- output file type is called. */
- if (CREATE_OUTFILE (&ld_state) != 0)
- exit (1);
-
- /* Finalize the output file, write the data out. */
- err |= FINALIZE (&ld_state);
-
- /* Return with an non-zero exit status also if any error message has
- been printed. */
- return err | (error_message_count != 0);
-}
-
-
-static char *
-more_help (int key, const char *text, void *input)
-{
- char *buf;
-
- switch (key)
- {
- case ARGP_KEY_HELP_EXTRA:
- /* We print some extra information. */
- if (asprintf (&buf, gettext ("Please report bugs to %s.\n"),
- PACKAGE_BUGREPORT) < 0)
- buf = NULL;
- return buf;
-
- default:
- break;
- }
- return (char *) text;
-}
-
-
-/* Quick scan of the parameter list for options with global effect. */
-static error_t
-parse_opt_1st (int key, char *arg, struct argp_state *state)
-{
- switch (key)
- {
- case 'B':
- parse_B_option (arg);
- break;
-
- case 'c':
- linker_script = arg;
- break;
-
- case 'E':
- ld_state.export_all_dynamic = true;
- break;
-
- case 'G':
- if (ld_state.file_type != no_file_type)
- error (EXIT_FAILURE, 0,
- gettext ("only one option of -G and -r is allowed"));
- ld_state.file_type = dso_file_type;
-
- /* If we generate a DSO we have to export all symbols. */
- ld_state.export_all_dynamic = true;
- break;
-
- case 'h':
- ld_state.soname = arg;
- break;
-
- case 'i':
- /* Discard the LD_LIBRARY_PATH value we found. */
- ld_library_path1 = NULL;
- break;
-
- case 'I':
- ld_state.interp = arg;
- break;
-
- case 'm':
- if (emulation != NULL)
- error (EXIT_FAILURE, 0, gettext ("more than one '-m' parameter"));
- emulation = arg;
- break;
-
- case 'Q':
- if (arg[1] == '\0' && (arg[0] == 'y' || arg[0] == 'Y'))
- ld_state.add_ld_comment = true;
- else if (arg[1] == '\0' && (arg[0] == 'n' || arg[0] == 'N'))
- ld_state.add_ld_comment = true;
- else
- error (EXIT_FAILURE, 0, gettext ("unknown option `-%c %s'"), 'Q', arg);
- break;
-
- case 'r':
- if (ld_state.file_type != no_file_type)
- error (EXIT_FAILURE, 0,
- gettext ("only one option of -G and -r is allowed"));
- ld_state.file_type = relocatable_file_type;
- break;
-
- case 'S':
- ld_state.strip = strip_debug;
- break;
-
- case 't':
- ld_state.trace_files = true;
- break;
-
- case 'v':
- verbose = 1;
- break;
-
- case 'z':
- /* The SysV linker used 'z' to pass various flags to the linker.
- We follow this. See 'parse_z_option' for the options we
- recognize. */
- parse_z_option (arg);
- break;
-
- case ARGP_pagesize:
- {
- char *endp;
- ld_state.pagesize = strtoul (arg, &endp, 0);
- if (*endp != '\0')
- {
- if (endp[1] == '\0' && tolower (*endp) == 'k')
- ld_state.pagesize *= 1024;
- else if (endp[1] == '\0' && tolower (*endp) == 'm')
- ld_state.pagesize *= 1024 * 1024;
- else
- {
- error (0, 0,
- gettext ("invalid page size value \"%s\": ignored"),
- arg);
- ld_state.pagesize = 0;
- }
- }
- }
- break;
-
- case ARGP_rpath:
- add_rxxpath (&ld_state.rpath, arg);
- break;
-
- case ARGP_rpath_link:
- add_rxxpath (&ld_state.rpath_link, arg);
- break;
-
- case ARGP_runpath:
- add_rxxpath (&ld_state.runpath, arg);
- break;
-
- case ARGP_runpath_link:
- add_rxxpath (&ld_state.runpath_link, arg);
- break;
-
- case ARGP_gc_sections:
- case ARGP_no_gc_sections:
- ld_state.gc_sections = key == ARGP_gc_sections;
- break;
-
- case 's':
- if (arg == NULL)
- {
- if (ld_state.strip == strip_all)
- ld_state.strip = strip_everything;
- else
- ld_state.strip = strip_all;
- break;
- }
- /* FALLTHROUGH */
-
- case 'e':
- case 'o':
- case 'O':
- case ARGP_whole_archive:
- case ARGP_no_whole_archive:
- case 'L':
- case '(':
- case ')':
- case 'l':
- case ARGP_static:
- case ARGP_dynamic:
- case ARGP_version_script:
- /* We'll handle these in the second pass. */
- break;
-
- case ARGP_KEY_ARG:
- {
- struct file_list *newp;
-
- newp = (struct file_list *) xmalloc (sizeof (struct file_list));
- newp->name = arg;
-#ifndef NDEBUG
- newp->next = NULL;
-#endif
- CSNGL_LIST_ADD_REAR (input_file_list, newp);
- }
- break;
-
-#if YYDEBUG
- case ARGP_yydebug:
- lddebug = 1;
- break;
-#endif
-
- case ARGP_no_undefined:
- ld_state.nodefs = false;
- break;
-
- case ARGP_conserve:
- conserve_memory = 1;
- break;
-
- default:
- return ARGP_ERR_UNKNOWN;
- }
- return 0;
-}
-
-
-/* Handle program arguments for real. */
-static error_t
-parse_opt_2nd (int key, char *arg, struct argp_state *state)
-{
- static bool group_start_requested;
- static bool group_end_requested;
-
- switch (key)
- {
- case 'B':
- parse_B_option_2 (arg);
- break;
-
- case 'e':
- ld_state.entry = arg;
- break;
-
- case 'o':
- if (ld_state.outfname != NULL)
- {
- error (0, 0, gettext ("More than one output file name given."));
- see_help:
- argp_help (&argp_2nd, stderr, ARGP_HELP_SEE, "ld");
- exit (EXIT_FAILURE);
- }
- ld_state.outfname = arg;
- break;
-
- case 'O':
- if (arg == NULL)
- ld_state.optlevel = 1;
- else
- {
- char *endp;
- unsigned long int level = strtoul (arg, &endp, 10);
- if (*endp != '\0')
- {
- error (0, 0, gettext ("Invalid optimization level `%s'"), arg);
- goto see_help;
- }
- ld_state.optlevel = level;
- }
- break;
-
- case ARGP_whole_archive:
- ld_state.extract_rule = allextract;
- break;
- case ARGP_no_whole_archive:
- ld_state.extract_rule = defaultextract;
- break;
-
- case ARGP_static:
- case ARGP_dynamic:
- /* Enable/disable use for DSOs. */
- ld_state.statically = key == ARGP_static;
- break;
-
- case 'z':
- /* The SysV linker used 'z' to pass various flags to the linker.
- We follow this. See 'parse_z_option' for the options we
- recognize. */
- parse_z_option_2 (arg);
- break;
-
- case ARGP_version_script:
- read_version_script (arg);
- break;
-
- case 'L':
- /* Add a new search directory. */
- ld_new_searchdir (arg);
- break;
-
- case '(':
- /* Start a link group. We have to be able to determine the object
- file which is named next. Do this by remembering a pointer to
- the pointer which will point to the next object. */
- if (verbose && (group_start_requested || !group_end_requested))
- error (0, 0, gettext ("nested -( -) groups are not allowed"));
-
- /* Increment the nesting level. */
- ++group_level;
-
- /* Record group start. */
- group_start_requested = true;
- group_end_requested = false;
- break;
-
- case ')':
- /* End a link group. If there is no group open this is clearly
- a bug. If there is a group open insert a back reference
- pointer in the record for the last object of the group. If
- there is no new object or just one don't do anything. */
- if (!group_end_requested)
- {
- if (group_level == 0)
- {
- error (0, 0, gettext ("-) without matching -("));
- goto see_help;
- }
- }
- else
- last_file->group_end = true;
-
- if (group_level > 0)
- --group_level;
- break;
-
- case 'l':
- case ARGP_KEY_ARG:
- {
- while (last_file != NULL)
- /* Try to open the file. */
- error_loading |= FILE_PROCESS (-1, last_file, &ld_state, &last_file);
-
- last_file = ld_new_inputfile (arg,
- key == 'l'
- ? archive_file_type
- : relocatable_file_type);
- if (group_start_requested)
- {
- last_file->group_start = true;
-
- group_start_requested = false;
- group_end_requested = true;
- }
- }
- break;
-
- default:
- /* We can catch all other options here. They either have
- already been handled or, if the parameter was not correct,
- the error has been reported. */
- break;
- }
- return 0;
-}
-
-
-/* Load all the DSOs named as dependencies in other DSOs we already
- loaded. */
-static void
-load_needed (void)
-{
- struct usedfiles *first;
- struct usedfiles *runp;
-
- /* XXX There is one problem here: do we allow references from
- regular object files to be satisfied by these implicit
- dependencies? The old linker allows this and several libraries
- depend on this. Solaris' linker does not allow this; it provides
- the user with a comprehensive error message explaining the
- situation.
-
- XXX IMO the old ld behavior is correct since this is also how the
- dynamic linker will work. It will look for unresolved references
- in all loaded DSOs.
-
- XXX Should we add an option to get Solaris compatibility? */
- if (ld_state.needed == NULL)
- return;
-
- runp = first = ld_state.needed->next;
- do
- {
- struct usedfiles *ignore;
- struct usedfiles *next = runp->next;
- int err;
-
- err = FILE_PROCESS (-1, runp, &ld_state, &ignore);
- if (err != 0)
- /* Something went wrong. */
- exit (err);
-
- runp = next;
- }
- while (runp != first);
-}
-
-
-/* Print the version information. */
-static void
-print_version (FILE *stream, struct argp_state *state)
-{
- fprintf (stream, "ld (%s) %s\n", PACKAGE_NAME, VERSION);
- fprintf (stream, gettext ("\
-Copyright (C) %s Red Hat, Inc.\n\
-This is free software; see the source for copying conditions. There is NO\n\
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2004");
- fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
-}
-
-
-/* There are a lot of -z options, parse them here. Some of them have
- to be parsed in the first pass, others must be handled in the
- second pass. */
-static void
-parse_z_option (const char *arg)
-{
- if (strcmp (arg, "nodefaultlib") == 0
- /* This is only meaningful if we create a DSO. */
- && ld_state.file_type == dso_file_type)
- ld_state.dt_flags_1 |= DF_1_NODEFLIB;
- else if (strcmp (arg, "muldefs") == 0)
- ld_state.muldefs = true;
- else if (strcmp (arg, "nodefs") == 0)
- ld_state.nodefs = true;
- else if (strcmp (arg, "defs") == 0)
- ld_state.nodefs = false;
- else if (strcmp (arg, "now") == 0)
- /* We could also set the DF_1_NOW flag in DT_FLAGS_1 but this isn't
- necessary. */
- ld_state.dt_flags |= DF_BIND_NOW;
- else if (strcmp (arg, "origin") == 0)
- /* We could also set the DF_1_ORIGIN flag in DT_FLAGS_1 but this isn't
- necessary. */
- ld_state.dt_flags |= DF_ORIGIN;
- else if (strcmp (arg, "nodelete") == 0
- /* This is only meaningful if we create a DSO. */
- && ld_state.file_type == dso_file_type)
- ld_state.dt_flags_1 |= DF_1_NODELETE;
- else if (strcmp (arg, "initfirst") == 0)
- ld_state.dt_flags_1 |= DF_1_INITFIRST;
- else if (strcmp (arg, "nodlopen") == 0
- /* This is only meaningful if we create a DSO. */
- && ld_state.file_type == dso_file_type)
- ld_state.dt_flags_1 |= DF_1_NOOPEN;
- else if (strcmp (arg, "ignore") == 0)
- ld_state.ignore_unused_dsos = true;
- else if (strcmp (arg, "record") == 0)
- ld_state.ignore_unused_dsos = false;
- else if (strcmp (arg, "systemlibrary") == 0)
- ld_state.is_system_library = true;
- else if (strcmp (arg, "allextract") != 0
- && strcmp (arg, "defaultextract") != 0
- && strcmp (arg, "weakextract") != 0
- && strcmp (arg, "lazyload") != 0
- && strcmp (arg, "nolazyload") != 0)
- error (0, 0, gettext ("unknown option `-%c %s'"), 'z', arg);
-}
-
-
-static void
-parse_z_option_2 (const char *arg)
-{
- if (strcmp (arg, "allextract") == 0)
- ld_state.extract_rule = allextract;
- else if (strcmp (arg, "defaultextract") == 0)
- ld_state.extract_rule = defaultextract;
- else if (strcmp (arg, "weakextract") == 0)
- ld_state.extract_rule = weakextract;
- else if (strcmp (arg, "lazyload") == 0)
- ld_state.lazyload = true;
- else if (strcmp (arg, "nolazyload") == 0)
- ld_state.lazyload = false;
-}
-
-
-/* There are a lot of -B options, parse them here. */
-static void
-parse_B_option (const char *arg)
-{
- if (strcmp (arg, "local") == 0)
- ld_state.default_bind_local = true;
- else if (strcmp (arg, "symbolic") != 0
- && strcmp (arg, "static") != 0
- && strcmp (arg, "dynamic") != 0)
- error (0, 0, gettext ("unknown option '-%c %s'"), 'B', arg);
-}
-
-
-/* The same functionality, but called in the second pass over the
- parameters. */
-static void
-parse_B_option_2 (const char *arg)
-{
- if (strcmp (arg, "static") == 0)
- ld_state.statically = true;
- else if (strcmp (arg, "dynamic") == 0)
- ld_state.statically = false;
- else if (strcmp (arg, "symbolic") == 0
- /* This is only meaningful if we create a DSO. */
- && ld_state.file_type == dso_file_type)
- ld_state.dt_flags |= DF_SYMBOLIC;
-}
-
-
-static void
-determine_output_format (void)
-{
- /* First change the 'input_file_list' variable in a simple
- single-linked list. */
- struct file_list *last = input_file_list;
- input_file_list = input_file_list->next;
- last->next = NULL;
-
- /* Determine the target configuration which we are supposed to use.
- The user can use the '-m' option to select one. If this is
- missing we are trying to load one file and determine the
- architecture from that. */
- if (emulation != NULL)
- {
- ld_state.ebl = ebl_openbackend_emulation (emulation);
-
- assert (ld_state.ebl != NULL);
- }
- else
- {
- /* Find an ELF input file and let it determine the ELf backend. */
- struct file_list *runp = input_file_list;
-
- while (runp != NULL)
- {
- int fd = open (runp->name, O_RDONLY);
- if (fd != -1)
- {
- int try (Elf *elf)
- {
- int result = 0;
-
- if (elf == NULL)
- return 0;
-
- if (elf_kind (elf) == ELF_K_ELF)
- {
- /* We have an ELF file. We now can find out
- what the output format should be. */
- XElf_Ehdr_vardef(ehdr);
-
- /* Get the ELF header of the object. */
- xelf_getehdr (elf, ehdr);
- if (ehdr != NULL)
- ld_state.ebl =
- ebl_openbackend_machine (ehdr->e_machine);
-
- result = 1;
- }
- else if (elf_kind (elf) == ELF_K_AR)
- {
- /* Try the archive members. This could
- potentially lead to wrong results if the
- archive contains files for more than one
- architecture. But this is the user's
- problem. */
- Elf *subelf;
- Elf_Cmd cmd = ELF_C_READ_MMAP;
-
- while ((subelf = elf_begin (fd, cmd, elf)) != NULL)
- {
- cmd = elf_next (subelf);
-
- if (try (subelf) != 0)
- break;
- }
- }
-
- elf_end (elf);
-
- return result;
- }
-
- if (try (elf_begin (fd, ELF_C_READ_MMAP, NULL)) != 0)
- /* Found a file. */
- break;
- }
-
- runp = runp->next;
- }
-
- if (ld_state.ebl == NULL)
- {
- error (0, 0, gettext ("\
-could not find input file to determine output file format"));
- error (EXIT_FAILURE, 0, gettext ("\
-try again with an appropriate '-m' parameter"));
- }
- }
-
- /* We don't need the list of input files anymore. The second run over
- the parameters will handle them. */
- while (input_file_list != NULL)
- {
- struct file_list *oldp = input_file_list;
- input_file_list = input_file_list->next;
- free (oldp);
- }
-
- /* We also know now what kind of file we are supposed to create. If
- the user hasn't selected anythign we create and executable. */
- if (ld_state.file_type == no_file_type)
- ld_state.file_type = executable_file_type;
-}
-
-/* Add DIR to the list of directories searched for object files and
- libraries. */
-void
-ld_new_searchdir (const char *dir)
-{
- struct pathelement *newpath;
-
- newpath = (struct pathelement *)
- obstack_calloc (&ld_state.smem, sizeof (struct pathelement));
-
- newpath->pname = dir;
-
- /* Enqueue the file. */
- if (ld_state.tailpaths == NULL)
- ld_state.paths = ld_state.tailpaths = newpath;
- else
- {
- ld_state.tailpaths->next = newpath;
- ld_state.tailpaths = newpath;
- }
-}
-
-
-struct usedfiles *
-ld_new_inputfile (const char *fname, enum file_type type)
-{
- struct usedfiles *newfile = (struct usedfiles *)
- obstack_calloc (&ld_state.smem, sizeof (struct usedfiles));
-
- newfile->soname = newfile->fname = newfile->rfname = fname;
- newfile->file_type = type;
- newfile->extract_rule = ld_state.extract_rule;
- newfile->lazyload = ld_state.lazyload;
- newfile->status = not_opened;
-
- return newfile;
-}
-
-
-/* Create an array listing all the sections. We will than pass this
- array to a system specific function which can reorder it at will.
- The functions can also merge sections if this is what is
- wanted. */
-static void
-collect_sections (void)
-{
- void *p ;
- struct scnhead *h;
- size_t cnt;
-
- /* We have that many sections. At least for now. */
- ld_state.nallsections = ld_state.section_tab.filled;
-
- /* Allocate the array. We allocate one more entry than computed so
- far since we might need a new section for the copy relocations. */
- ld_state.allsections =
- (struct scnhead **) obstack_alloc (&ld_state.smem,
- (ld_state.nallsections + 1)
- * sizeof (struct scnhead *));
-
- /* Fill the array. We rely here on the hash table iterator to
- return the entries in the order they were added. */
- cnt = 0;
- p = NULL;
- while ((h = ld_section_tab_iterate (&ld_state.section_tab, &p)) != NULL)
- {
- struct scninfo *runp;
- bool used = false;
-
- if (h->kind == scn_normal)
- {
- runp = h->last;
- do
- {
- if (h->type == SHT_REL || h->type == SHT_RELA)
- {
- if (runp->used)
- /* This is a relocation section. If the section
- it is relocating is used in the result so must
- the relocation section. */
- runp->used
- = runp->fileinfo->scninfo[SCNINFO_SHDR (runp->shdr).sh_info].used;
- }
-
- /* Accumulate the result. */
- used |= runp->used;
-
- /* Next input section. */
- runp = runp->next;
- }
- while (runp != h->last);
-
- h->used = used;
- }
-
- ld_state.allsections[cnt++] = h;
- }
- ld_state.nusedsections = cnt;
-
- assert (cnt == ld_state.nallsections);
-}
-
-
-/* Add given path to the end of list. */
-static void
-add_rxxpath (struct pathelement **pathp, const char *str)
-{
- struct pathelement *newp;
-
- /* The path elements can in theory be freed after we read all the
- files. But the amount of memory we are talking about is small
- and the cost of free() calls is not neglectable. */
- newp = (struct pathelement *) obstack_alloc (&ld_state.smem, sizeof (*newp));
- newp->pname = str;
- newp->exist = 0;
-#ifndef NDEBUG
- newp->next = NULL;
-#endif
-
- CSNGL_LIST_ADD_REAR (*pathp, newp);
-}
-
-
-/* Convert lists of possibly colon-separated directory lists into lists
- where each entry is for a single directory. */
-static void
-normalize_dirlist (struct pathelement **pathp)
-{
- struct pathelement *firstp = *pathp;
-
- do
- {
- const char *pname = (*pathp)->pname;
- const char *colonp = strchrnul (pname, ':');
-
- if (colonp != NULL)
- {
- struct pathelement *lastp = *pathp;
- struct pathelement *newp;
-
- while (1)
- {
- if (colonp == pname)
- lastp->pname = ".";
- else
- lastp->pname = obstack_strndup (&ld_state.smem, pname,
- colonp - pname);
-
- if (*colonp == '\0')
- break;
- pname = colonp + 1;
-
- newp = (struct pathelement *) obstack_alloc (&ld_state.smem,
- sizeof (*newp));
- newp->next = lastp->next;
- newp->exist = 0;
- lastp = lastp->next = newp;
-
- colonp = strchrnul (pname, ':');
- }
-
- pathp = &lastp->next;
- }
- else
- pathp = &(*pathp)->next;
- }
- while (*pathp != firstp);
-}
-
-
-/* Called after all parameters are parsed to bring the runpath/rpath
- information into a usable form. */
-static void
-gen_rxxpath_data (void)
-{
- char *ld_library_path2;
-
- /* Convert the information in true single-linked lists for easy use.
- At this point we also discard the rpath information if runpath
- information is provided. rpath is deprecated and should not be
- used (or ever be invented for that matter). */
- if (ld_state.rpath != NULL)
- {
- struct pathelement *endp = ld_state.rpath;
- ld_state.rpath = ld_state.rpath->next;
- endp->next = NULL;
- }
- if (ld_state.rpath_link != NULL)
- {
- struct pathelement *endp = ld_state.rpath_link;
- ld_state.rpath_link = ld_state.rpath_link->next;
- endp->next = NULL;
- }
-
- if (ld_state.runpath != NULL)
- {
- struct pathelement *endp = ld_state.runpath;
- ld_state.runpath = ld_state.runpath->next;
- endp->next = NULL;
-
- /* If rpath information is also available discard it.
- XXX Should there be a possibility to avoid this? */
- while (ld_state.rpath != NULL)
- {
- struct pathelement *old = ld_state.rpath;
- ld_state.rpath = ld_state.rpath->next;
- free (old);
- }
- }
- if (ld_state.runpath_link != NULL)
- {
- struct pathelement *endp = ld_state.runpath_link;
- ld_state.runpath_link = ld_state.runpath_link->next;
- endp->next = NULL;
-
- /* If rpath information is also available discard it.
- XXX Should there be a possibility to avoid this? */
- while (ld_state.rpath_link != NULL)
- {
- struct pathelement *old = ld_state.rpath_link;
- ld_state.rpath_link = ld_state.rpath_link->next;
- free (old);
- }
-
- /* The information in the strings in the list can actually be
- directory lists themselves, with entries separated by colons.
- Convert the list now to a list with one list entry for each
- directory. */
- normalize_dirlist (&ld_state.runpath_link);
- }
- else if (ld_state.rpath_link != NULL)
- /* Same as for the runpath_link above. */
- normalize_dirlist (&ld_state.rpath_link);
-
-
- /* As a related task, handle the LD_LIBRARY_PATH value here. First
- we have to possibly split the value found (if it contains a
- semicolon). Then we have to split the value in list of
- directories, i.e., split at the colons. */
- if (ld_library_path1 != NULL)
- {
- ld_library_path2 = strchr (ld_library_path1, ';');
- if (ld_library_path2 == NULL)
- {
- /* If no semicolon is present the directories are looked at
- after the -L parameters (-> ld_library_path2). */
- ld_library_path2 = ld_library_path1;
- ld_library_path1 = NULL;
- }
- else
- {
- /* NUL terminate the first part. */
- *ld_library_path2++ = '\0';
-
- /* Convert the string value in a list. */
- add_rxxpath (&ld_state.ld_library_path1, ld_library_path1);
- normalize_dirlist (&ld_state.ld_library_path1);
- }
-
- add_rxxpath (&ld_state.ld_library_path2, ld_library_path2);
- normalize_dirlist (&ld_state.ld_library_path2);
- }
-}
-
-
-static void
-read_version_script (const char *fname)
-{
- /* Open the file. The name is supposed to be the complete (relative
- or absolute) path. No search along a path will be performed. */
- ldin = fopen (fname, "r");
- if (ldin == NULL)
- error (EXIT_FAILURE, errno, gettext ("cannot read version script \"%s\""),
- fname);
- /* No need for locking. */
- __fsetlocking (ldin, FSETLOCKING_BYCALLER);
-
- /* Tell the parser that this is a version script. */
- ld_scan_version_script = 1;
-
- ldlineno = 1;
- ldin_fname = fname;
- if (ldparse () != 0)
- /* Something went wrong during parsing. */
- exit (EXIT_FAILURE);
-
- fclose (ldin);
-}
-
-
-static void
-create_lscript_symbols (void)
-{
- /* Walk through the data from the linker script and generate all the
- symbols which are required to be present and and those marked
- with PROVIDE if there is a undefined reference. */
- if (ld_state.output_segments == NULL)
- return;
-
- struct output_segment *segment = ld_state.output_segments->next;
- do
- {
- struct output_rule *orule;
-
- for (orule = segment->output_rules; orule != NULL; orule = orule->next)
- if (orule->tag == output_assignment
- /* The assignments to "." (i.e., the PC) have to be
- ignored here. */
- && strcmp (orule->val.assignment->variable, ".") != 0)
- {
- struct symbol *s = ld_state.unresolved;
-
- /* Check whether the symbol is needed. */
- if (likely (s != NULL))
- {
- struct symbol *first = s;
- const char *providename = orule->val.assignment->variable;
-
- /* Determine whether the provided symbol is still
- undefined. */
- // XXX TODO Loop inside a loop. Gag! Must rewrite. */
- do
- if (strcmp (s->name, providename) == 0)
- {
- /* Not defined but referenced. */
- if (unlikely (!s->defined))
- {
- /* Put on the list of symbols. First remove it from
- whatever list it currently is on. */
- CDBL_LIST_DEL (ld_state.unresolved, s);
- --ld_state.nunresolved;
- goto use_it;
- }
-
- if (unlikely (!orule->val.assignment->provide_flag))
- {
- /* The symbol is already defined and now again
- in the linker script. This is an error. */
- error (0, 0, gettext ("\
-duplicate definition of '%s' in linker script"),
- providename);
- goto next_rule;
- }
- }
- while ((s = s->next) != first);
- }
-
- /* If the symbol only has to be provided if it is needed,
- ignore it here since it is not undefined. */
- if (orule->val.assignment->provide_flag)
- continue;
-
- /* Allocate memory for this new symbol. */
- s = (struct symbol *)
- obstack_calloc (&ld_state.smem, sizeof (struct symbol));
-
- /* Initialize it. */
- s->name = orule->val.assignment->variable;
-
- /* Insert it into the symbol hash table. */
- unsigned long int hval = elf_hash (s->name);
- if (unlikely (ld_symbol_tab_insert (&ld_state.symbol_tab,
- hval, s) != 0))
- {
- /* This means the symbol is defined somewhere else.
- Maybe it comes from a DSO or so. Get the
- definition. */
- free (s);
- struct symbol *old = ld_symbol_tab_find (&ld_state.symbol_tab,
- hval, s);
- assert (old != NULL);
- free (s);
-
- /* If this is a definition from the application itself
- this means a duplicate definition. */
- if (! old->in_dso)
- {
- error (0, 0, gettext ("\
-duplicate definition of '%s' in linker script"),
- s->name);
- goto next_rule;
- }
-
- /* We use the definition from the linker script. */
- s = old;
- }
-
- use_it:
- /* The symbol is (now) defined. */
- s->defined = 1;
- s->type = STT_NOTYPE;
-
- /* Add a reference to the symbol record. We will come
- across it when creating the output file. */
- orule->val.assignment->sym = s;
-
- SNGL_LIST_PUSH (ld_state.lscript_syms, s);
- ++ld_state.nlscript_syms;
-
- next_rule:
- ;
- }
-
- segment = segment->next;
- }
- while (segment != ld_state.output_segments->next);
-}
-
-
-/* Create creation of spection section symbols representing sections in the
- output file. This is done for symbols like _GLOBAL_OFFSET_TABLE_ and
- _DYNAMIC. */
-static void
-create_special_section_symbol (struct symbol **symp, const char *name)
-{
- if (*symp == NULL)
- {
- /* No symbol defined found yet. Create one. */
- struct symbol *newsym = (struct symbol *)
- obstack_calloc (&ld_state.smem, sizeof (*newsym));
-
- newsym->name = name;
- // XXX Should we mark the symbol hidden? They are hardly useful
- // used outside the current object.
-
- /* Add to the symbol table. */
- if (unlikely (ld_symbol_tab_insert (&ld_state.symbol_tab,
- elf_hash (name), newsym) != 0))
- abort ();
-
- *symp = newsym;
- }
- else if ((*symp)->defined)
- /* Cannot happen. We do use this symbol from any input file. */
- abort ();
-
- (*symp)->defined = 1;
- (*symp)->type = STT_OBJECT;
-
- ++ld_state.nsymtab;
-}
diff --git a/src/ld.h b/src/ld.h
deleted file mode 100644
index 760ff125..00000000
--- a/src/ld.h
+++ /dev/null
@@ -1,1073 +0,0 @@
-/* Copyright (C) 2001, 2002, 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef LD_H
-#define LD_H 1
-
-#include <dlfcn.h>
-#include <obstack.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include "xelf.h"
-
-
-/* Recommended size of the buffer passed to ld_strerror. */
-#define ERRBUFSIZE (512)
-
-/* Character used to introduce version name after symbol. */
-#define VER_CHR '@'
-
-
-/* Methods for handling archives. */
-enum extract_rule
- {
- defaultextract, /* Weak references don't cause archive member to
- be used. */
- weakextract, /* Weak references cause archive member to be
- extracted. */
- allextract /* Extract all archive members regardless of
- references (aka whole-archive). */
- };
-
-
-/* Type of output file. */
-enum file_type
- {
- no_file_type = 0, /* None selected so far. */
- executable_file_type, /* Executable. */
- dso_file_type, /* DSO. */
- dso_needed_file_type, /* DSO introduced by DT_NEEDED. */
- relocatable_file_type, /* Relocatable object file. */
- archive_file_type /* Archive (input only). */
- };
-
-
-struct usedfiles
-{
- /* The next file given at the command line. */
- struct usedfiles *next;
- /* Nonzero if this file is the beginning of a group. */
- bool group_start;
- /* Nonzero if this file is the end of a group. */
- bool group_end;
- /* Pointer to the beginning of the group. It is necessary to
- explain why we cannot simply use the 'next' pointer and have a
- circular single-linked list like in many cases. The problem is
- that the last archive of the group, if it is the last file of the
- group, contains the only existing pointer to the next file we
- have to look at. All files are initially connected via the
- 'next' pointer in a single-linked list. Therefore we cannot
- overwrite this value. It instead will be used once the group is
- handled and we go on processing the rest of the files. */
- struct usedfiles *group_backref;
-
- /* Name/path of the file. */
- const char *fname;
- /* Resolved file name. */
- const char *rfname;
- /* Name used as reference in DT_NEEDED entries. This is normally
- the SONAME. If it is missing it's normally the fname above. */
- const char *soname;
- /* Handle for the SONAME in the string table. */
- struct Ebl_Strent *sonameent;
-
- /* Help to identify duplicates. */
- dev_t dev;
- ino_t ino;
-
- enum
- {
- not_opened,
- opened,
- in_archive,
- closed
- } status;
-
- /* How to extract elements from archives. */
- enum extract_rule extract_rule;
-
- /* Lazy-loading rule. */
- bool lazyload;
-
- /* If this is a DSO the flag indicates whether the file is directly
- used in a reference. */
- bool used;
-
- /* If nonzero this is the archive sequence number which can be used to
- determine whether back refernces from -( -) or GROUP statements
- have to be followed. */
- int archive_seq;
-
- /* Pointer to the record for the archive containing this file. */
- struct usedfiles *archive_file;
-
- /* Type of file. We have to distinguish these types since they
- are searched for differently. */
- enum file_type file_type;
- /* This is the ELF library handle for this file. */
- Elf *elf;
-
- /* The ELF header. */
-#if NATIVE_ELF != 0
- XElf_Ehdr *ehdr;
-# define FILEINFO_EHDR(fi) (*(fi))
-#else
- XElf_Ehdr ehdr;
-# define FILEINFO_EHDR(fi) (fi)
-#endif
-
- /* Index of the section header string table section. We use a
- separate field and not the e_shstrndx field in the ELF header
- since in case of a file with more than 64000 sections the index
- might be stored in the section header of section zero. The
- elf_getshstrndx() function can find the value but it is too
- costly to repeat this call over and over. */
- size_t shstrndx;
-
- /* Info about the sections of the file. */
- struct scninfo
- {
- /* Handle for the section. Note that we can store a section
- handle here because the file is not changing. This together
- with the knowledge about the libelf library is enough for us to
- assume the section reference remains valid at all times. */
- Elf_Scn *scn;
- /* Section header. */
-#if NATIVE_ELF != 0
- XElf_Shdr *shdr;
-# define SCNINFO_SHDR(si) (*(si))
-#else
- XElf_Shdr shdr;
-# define SCNINFO_SHDR(si) (si)
-#endif
- /* Offset of this files section in the combined section. */
- XElf_Off offset;
- /* Index of the section in the output file. */
- Elf32_Word outscnndx;
- /* Index of the output section in the 'allsection' array. */
- Elf32_Word allsectionsidx;
- /* True if the section is used. */
- bool used;
- /* Section group number. This is the index of the SHT_GROUP section. */
- Elf32_Word grpid;
- /* Pointer back to the containing file information structure. */
- struct usedfiles *fileinfo;
- /* List of symbols in this section (set only for merge-able sections). */
- struct symbol *symbols;
- /* Size of relocations in this section. Only used for relocation
- sections. */
- size_t relsize;
- /* Pointer to next section which is put in the given output
- section. */
- struct scninfo *next;
- } *scninfo;
-
- /* List of section group sections. */
- struct scninfo *groups;
-
- /* The symbol table section.
-
- XXX Maybe support for more than one symbol table is needed. */
- Elf_Data *symtabdata;
- /* Extra section index table section. */
- Elf_Data *xndxdata;
- /* Dynamic symbol table section. */
- Elf_Data *dynsymtabdata;
- /* The version number section. */
- Elf_Data *versymdata;
- /* The defined versions. */
- Elf_Data *verdefdata;
- /* Number of versions defined. */
- size_t nverdef;
- /* True if the version with the given index number is used in the
- output. */
- XElf_Versym *verdefused;
- /* How many versions are used. */
- size_t nverdefused;
- /* Handle for name of the version. */
- struct Ebl_Strent **verdefent;
- /* The needed versions. */
- Elf_Data *verneeddata;
- /* String table section associated with the symbol table. */
- Elf32_Word symstridx;
- /* String table section associated with the dynamic symbol table. */
- Elf32_Word dynsymstridx;
- /* Number of entries in the symbol table. */
- size_t nsymtab;
- size_t nlocalsymbols;
- size_t ndynsymtab;
- /* Dynamic section. */
- Elf_Scn *dynscn;
-
- /* Indirection table for the symbols defined here. */
- Elf32_Word *symindirect;
- Elf32_Word *dynsymindirect;
- /* For undefined or common symbols we need a reference to the symbol
- record. */
- struct symbol **symref;
- struct symbol **dynsymref;
-
- /* This is the file descriptor. The value is -1 if the descriptor
- was already closed. This can happen if we needed file descriptors
- to open new files. */
- int fd;
- /* This flag is true if the descriptor was passed to the generic
- functions from somewhere else. This is an implementation detail;
- no machine-specific code must use this flag. */
- bool fd_passed;
-
- /* True if any of the sections is merge-able. */
- bool has_merge_sections;
-};
-
-
-/* Functions to test for the various types of files we handle. */
-static inline int
-ld_file_rel_p (struct usedfiles *file)
-{
- return (elf_kind (file->elf) == ELF_K_ELF
- && FILEINFO_EHDR (file->ehdr).e_type == ET_REL);
-}
-
-static inline int
-ld_file_dso_p (struct usedfiles *file)
-{
- return (elf_kind (file->elf) == ELF_K_ELF
- && FILEINFO_EHDR (file->ehdr).e_type == ET_DYN);
-}
-
-static inline int
-ld_file_ar_p (struct usedfiles *file)
-{
- return elf_kind (file->elf) == ELF_K_AR;
-}
-
-
-struct pathelement
-{
- /* The next path to search. */
- struct pathelement *next;
- /* The path name. */
- const char *pname;
- /* Larger than zero if the directory exists, smaller than zero if not,
- zero if it is not yet known. */
- int exist;
-};
-
-
-/* Forward declaration. */
-struct ld_state;
-
-
-/* Callback functions. */
-struct callbacks
-{
- /* Library names passed to the linker as -lXXX represent files named
- libXXX.YY. The YY part can have different forms, depending on the
- architecture. The generic set is .so and .a (in this order). */
- const char **(*lib_extensions) (struct ld_state *)
- __attribute__ ((__const__));
-#define LIB_EXTENSION(state) \
- DL_CALL_FCT ((state)->callbacks.lib_extensions, (state))
-
- /* Process the given file. If the file is not yet open, open it.
- The first parameter is a file descriptor for the file which can
- be -1 to indicate the file has not yet been found. The second
- parameter describes the file to be opened, the last one is the
- state of the linker which among other information contain the
- paths we look at.*/
- int (*file_process) (int fd, struct usedfiles *, struct ld_state *,
- struct usedfiles **);
-#define FILE_PROCESS(fd, file, state, nextp) \
- DL_CALL_FCT ((state)->callbacks.file_process, (fd, file, state, nextp))
-
- /* Close the given file. */
- int (*file_close) (struct usedfiles *, struct ld_state *);
-#define FILE_CLOSE(file, state) \
- DL_CALL_FCT ((state)->callbacks.file_close, (file, state))
-
- /* Create the output sections now. This requires knowledge about
- all the sections we will need. It may be necessary to sort the
- sections in the order they are supposed to appear in the
- executable. The sorting use many different kinds of information
- to optimize the resulting binary. Important is to respect
- segment boundaries and the needed alignment. The mode of the
- segments will be determined afterwards automatically by the
- output routines. */
- void (*create_sections) (struct ld_state *);
-#define CREATE_SECTIONS(state) \
- DL_CALL_FCT ((state)->callbacks.create_sections, (state))
-
- /* Determine whether we have any non-weak unresolved references left. */
- int (*flag_unresolved) (struct ld_state *);
-#define FLAG_UNRESOLVED(state) \
- DL_CALL_FCT ((state)->callbacks.flag_unresolved, (state))
-
- /* Create the sections which are generated by the linker and are not
- present in the input file. */
- void (*generate_sections) (struct ld_state *);
-#define GENERATE_SECTIONS(state) \
- DL_CALL_FCT ((state)->callbacks.generate_sections, (state))
-
- /* Open the output file. The file name is given or "a.out". We
- create as much of the ELF structure as possible. */
- int (*open_outfile) (struct ld_state *, int, int, int);
-#define OPEN_OUTFILE(state, machine, class, data) \
- DL_CALL_FCT ((state)->callbacks.open_outfile, (state, machine, class, data))
-
- /* Create the data for the output file. */
- int (*create_outfile) (struct ld_state *);
-#define CREATE_OUTFILE(state) \
- DL_CALL_FCT ((state)->callbacks.create_outfile, (state))
-
- /* Process a relocation section. */
- void (*relocate_section) (struct ld_state *, Elf_Scn *, struct scninfo *,
- const Elf32_Word *);
-#define RELOCATE_SECTION(state, outscn, first, dblindirect) \
- DL_CALL_FCT ((state)->callbacks.relocate_section, (state, outscn, first, \
- dblindirect))
-
- /* Allocate a data buffer for the relocations of the given output
- section. */
- void (*count_relocations) (struct ld_state *, struct scninfo *);
-#define COUNT_RELOCATIONS(state, scninfo) \
- DL_CALL_FCT ((state)->callbacks.count_relocations, (state, scninfo))
-
- /* Create relocations for executable or DSO. */
- void (*create_relocations) (struct ld_state *, const Elf32_Word *);
-#define CREATE_RELOCATIONS(state, dlbindirect) \
- DL_CALL_FCT ((state)->callbacks.create_relocations, (state, dblindirect))
-
- /* Finalize the output file. */
- int (*finalize) (struct ld_state *);
-#define FINALIZE(state) \
- DL_CALL_FCT ((state)->callbacks.finalize, (state))
-
- /* Check whether special section number is known. */
- bool (*special_section_number_p) (struct ld_state *, size_t);
-#define SPECIAL_SECTION_NUMBER_P(state, number) \
- DL_CALL_FCT ((state)->callbacks.special_section_number_p, (state, number))
-
- /* Check whether section type is known. */
- bool (*section_type_p) (struct ld_state *, XElf_Word);
-#define SECTION_TYPE_P(state, type) \
- DL_CALL_FCT ((state)->callbacks.section_type_p, (state, type))
-
- /* Return section flags for .dynamic section. */
- XElf_Xword (*dynamic_section_flags) (struct ld_state *);
-#define DYNAMIC_SECTION_FLAGS(state) \
- DL_CALL_FCT ((state)->callbacks.dynamic_section_flags, (state))
-
- /* Create the data structures for the .plt section and initialize it. */
- void (*initialize_plt) (struct ld_state *, Elf_Scn *scn);
-#define INITIALIZE_PLT(state, scn) \
- DL_CALL_FCT ((state)->callbacks.initialize_plt, (state, scn))
-
- /* Create the data structures for the .rel.plt section and initialize it. */
- void (*initialize_pltrel) (struct ld_state *, Elf_Scn *scn);
-#define INITIALIZE_PLTREL(state, scn) \
- DL_CALL_FCT ((state)->callbacks.initialize_pltrel, (state, scn))
-
- /* Finalize the .plt section the what belongs to them. */
- void (*finalize_plt) (struct ld_state *, size_t, size_t);
-#define FINALIZE_PLT(state, nsym, nsym_dyn) \
- DL_CALL_FCT ((state)->callbacks.finalize_plt, (state, nsym, nsym_dyn))
-
- /* Create the data structures for the .got section and initialize it. */
- void (*initialize_got) (struct ld_state *, Elf_Scn *scn);
-#define INITIALIZE_GOT(state, scn) \
- DL_CALL_FCT ((state)->callbacks.initialize_got, (state, scn))
-
- /* Return the tag corresponding to the native relocation type for
- the platform. */
- int (*rel_type) (struct ld_state *);
-#define REL_TYPE(state) \
- DL_CALL_FCT ((state)->callbacks.rel_type, (state))
-};
-
-
-/* Structure for symbol representation. This data structure is used a
- lot, so size is important. */
-struct symbol
-{
- /* Symbol name. */
- const char *name;
- /* Size of the object. */
- XElf_Xword size;
- /* Index of the symbol in the symbol table of the object. */
- size_t symidx;
- /* Index of the symbol in the symbol table of the output file. */
- size_t outsymidx;
-
- /* Description where the symbol is found/needed. */
- size_t scndx;
- struct usedfiles *file;
- /* Index of the symbol table. */
- Elf32_Word symscndx;
-
- /* Index of the symbol in the dynamic symbol table of the output
- file. Note that the value only needs to be 16 bit wide since
- there cannot be more sections in an executable or DSO. */
- unsigned int outdynsymidx:16;
-
- /* Type of the symbol. */
- unsigned int type:4;
- /* Various flags. */
- unsigned int defined:1;
- unsigned int common:1;
- unsigned int weak:1;
- unsigned int added:1;
- unsigned int merged:1;
- /* Nonzero if the symbol is on the from_dso list. */
- unsigned int on_dsolist:1;
- /* Nonzero if symbol needs copy relocation, reset when the
- relocation has been created. */
- unsigned int need_copy:1;
- unsigned int in_dso:1;
-
- union
- {
- /* Pointer to the handle created by the functions which create
- merged section contents. We use 'void *' because there are
- different implementations used. */
- void *handle;
- XElf_Addr value;
- } merge;
-
- /* Pointer to next/previous symbol on whatever list the symbol is. */
- struct symbol *next;
- struct symbol *previous;
- /* Pointer to next symbol of the same section (only set for merge-able
- sections). */
- struct symbol *next_in_scn;
-};
-
-
-/* Get the definition for the symbol table. */
-#include <symbolhash.h>
-
-/* Simple single linked list of file names. */
-struct filename_list
-{
- const char *name;
- struct usedfiles *real;
- struct filename_list *next;
- bool group_start;
- bool group_end;
-};
-
-
-/* Data structure to describe expression in linker script. */
-struct expression
-{
- enum expression_tag
- {
- exp_num,
- exp_sizeof_headers,
- exp_pagesize,
- exp_id,
- exp_mult,
- exp_div,
- exp_mod,
- exp_plus,
- exp_minus,
- exp_and,
- exp_or,
- exp_align
- } tag;
-
- union
- {
- uintmax_t num;
- struct expression *child;
- struct
- {
- struct expression *left;
- struct expression *right;
- } binary;
- const char *str;
- } val;
-};
-
-
-/* Data structure for section name with flags. */
-struct input_section_name
-{
- const char *name;
- bool sort_flag;
-};
-
-/* File name mask with section name. */
-struct filemask_section_name
-{
- const char *filemask;
- const char *excludemask;
- struct input_section_name *section_name;
- bool keep_flag;
-};
-
-/* Data structure for assignments. */
-struct assignment
-{
- const char *variable;
- struct expression *expression;
- struct symbol *sym;
- bool provide_flag;
-};
-
-
-/* Data structure describing input for an output section. */
-struct input_rule
-{
- enum
- {
- input_section,
- input_assignment
- } tag;
-
- union
- {
- struct assignment *assignment;
- struct filemask_section_name *section;
- } val;
-
- struct input_rule *next;
-};
-
-
-/* Data structure to describe output section. */
-struct output_section
-{
- const char *name;
- struct input_rule *input;
- XElf_Addr max_alignment;
- bool ignored;
-};
-
-
-/* Data structure to describe output file format. */
-struct output_rule
-{
- enum
- {
- output_section,
- output_assignment
- } tag;
-
- union
- {
- struct assignment *assignment;
- struct output_section section;
- } val;
-
- struct output_rule *next;
-};
-
-
-/* List of all the segments the linker script describes. */
-struct output_segment
-{
- int mode;
- struct output_rule *output_rules;
- struct output_segment *next;
-
- XElf_Off offset;
- XElf_Addr addr;
- XElf_Xword align;
-};
-
-
-/* List of identifiers. */
-struct id_list
-{
- union
- {
- enum id_type
- {
- id_str, /* Normal string. */
- id_all, /* "*", matches all. */
- id_wild /* Globbing wildcard string. */
- } id_type;
- struct
- {
- bool local;
- const char *versionname;
- } s;
- } u;
- const char *id;
- struct id_list *next;
-};
-
-
-/* Version information. */
-struct version
-{
- struct version *next;
- struct id_list *local_names;
- struct id_list *global_names;
- const char *versionname;
- const char *parentname;
-};
-
-
-/* Head for list of sections. */
-struct scnhead
-{
- /* Name of the sections. */
- const char *name;
-
- /* Accumulated flags for the sections. */
- XElf_Xword flags;
-
- /* Type of the sections. */
- XElf_Word type;
-
- /* Entry size. If there are differencs between the sections with
- the same name this field contains 1. */
- XElf_Word entsize;
-
- /* If non-NULL pointer to group signature. */
- const char *grp_signature;
-
- /* Maximum alignment for all sections. */
- XElf_Word align;
-
- /* Distinguish between normal sections coming from the input file
- and sections generated by the linker. */
- enum scn_kind
- {
- scn_normal, /* Section from the input file(s). */
- scn_dot_interp, /* Generated .interp section. */
- scn_dot_got, /* Generated .got section. */
- scn_dot_dynrel, /* Generated .rel.dyn section. */
- scn_dot_dynamic, /* Generated .dynamic section. */
- scn_dot_dynsym, /* Generated .dynsym section. */
- scn_dot_dynstr, /* Generated .dynstr section. */
- scn_dot_hash, /* Generated .hash section. */
- scn_dot_plt, /* Generated .plt section. */
- scn_dot_pltrel, /* Generated .rel.plt section. */
- scn_dot_version, /* Generated .gnu.version section. */
- scn_dot_version_r /* Generated .gnu.version_r section. */
- } kind;
-
- /* True is the section is used in the output. */
- bool used;
-
- /* Total size (only determined this way for relocation sections). */
- size_t relsize;
-
- /* Filled in by the section sorting to indicate which segment the
- section goes in. */
- int segment_nr;
-
- /* Index of the output section. We cannot store the section handle
- directly here since the handle is a pointer in a dynamically
- allocated table which might move if it becomes too small for all
- the sections. Using the index the correct value can be found at
- all times. */
- XElf_Word scnidx;
-
- /* Index of the STT_SECTION entry for this section in the symbol
- table. */
- XElf_Word scnsymidx;
-
- /* Address of the section in the output file. */
- XElf_Addr addr;
-
- /* Handle for the section name in the output file's section header
- string table. */
- struct Ebl_Strent *nameent;
-
- /* Tail of list of symbols for this section. Only set if the
- section is merge-able. */
- struct symbol *symbols;
-
- /* Pointer to last section. */
- struct scninfo *last;
-};
-
-
-/* Define hash table for sections. */
-#include <sectionhash.h>
-
-/* Define hash table for version symbols. */
-#include <versionhash.h>
-
-
-/* State of the linker. */
-struct ld_state
-{
- /* ELF backend library handle. */
- Ebl *ebl;
-
- /* List of all archives participating, in this order. */
- struct usedfiles *archives;
- /* End of the list. */
- struct usedfiles *tailarchives;
- /* If nonzero we are looking for the beginning of a group. */
- bool group_start_requested;
- /* Pointer to the archive starting the group. */
- struct usedfiles *group_start_archive;
-
- /* List of the DSOs we found. */
- struct usedfiles *dsofiles;
- /* Number of DSO files. */
- size_t ndsofiles;
- /* Ultimate list of object files which are linked in. */
- struct usedfiles *relfiles;
-
- /* List the DT_NEEDED DSOs. */
- struct usedfiles *needed;
-
- /* Temporary storage for the parser. */
- struct filename_list *srcfiles;
-
- /* List of all the paths to look at. */
- struct pathelement *paths;
- /* Tail of the list. */
- struct pathelement *tailpaths;
-
- /* User provided paths for lookup of DSOs. */
- struct pathelement *rpath;
- struct pathelement *rpath_link;
- struct pathelement *runpath;
- struct pathelement *runpath_link;
- struct Ebl_Strent *rxxpath_strent;
- int rxxpath_tag;
-
- /* From the environment variable LD_LIBRARY_PATH. */
- struct pathelement *ld_library_path1;
- struct pathelement *ld_library_path2;
-
- /* Name of the output file. */
- const char *outfname;
- /* Name of the temporary file we initially create. */
- const char *tempfname;
- /* File descriptor opened for the output file. */
- int outfd;
- /* The ELF descriptor for the output file. */
- Elf *outelf;
-
- /* Type of output file. */
- enum file_type file_type;
-
- /* Is this a system library or not. */
- bool is_system_library;
-
- /* Page size to be assumed for the binary. */
- size_t pagesize;
-
- /* Name of the interpreter for dynamically linked objects. */
- const char *interp;
- /* Index of the .interp section. */
- Elf32_Word interpscnidx;
-
- /* Optimization level. */
- unsigned long int optlevel;
-
- /* If true static linking is requested. */
- bool statically;
-
- /* How to extract elements from archives. */
- enum extract_rule extract_rule;
-
- /* Sequence number of the last archive we used. */
- int last_archive_used;
-
- /* If true print to stdout information about the files we are
- trying to open. */
- bool trace_files;
-
- /* If true multiple definitions are not considered an error; the
- first is used. */
- bool muldefs;
-
- /* If true undefined symbols when building DSOs are not fatal. */
- bool nodefs;
-
- /* If true add line indentifying link-editor to .comment section. */
- bool add_ld_comment;
-
- /* Stripping while linking. */
- enum
- {
- strip_none,
- strip_debug,
- strip_all,
- strip_everything
- } strip;
-
- /* The callback function vector. */
- struct callbacks callbacks;
-
- /* Name of the entry symbol. Can also be a numeric value. */
- const char *entry;
-
- /* The description of the segments in the output file. */
- struct output_segment *output_segments;
-
- /* List of the symbols we created from linker script definitions. */
- struct symbol *lscript_syms;
- size_t nlscript_syms;
-
- /* Table with known symbols. */
- ld_symbol_tab symbol_tab;
-
- /* Table with used sections. */
- ld_section_tab section_tab;
-
- /* The list of sections once we collected them. */
- struct scnhead **allsections;
- size_t nallsections;
- size_t nusedsections;
- size_t nnotesections;
-
- /* Beginning of the list of symbols which are still unresolved. */
- struct symbol *unresolved;
- /* Number of truely unresolved entries in the list. */
- size_t nunresolved;
- /* Number of truely unresolved, non-weak entries in the list. */
- size_t nunresolved_nonweak;
-
- /* List of common symbols. */
- struct symbol *common_syms;
- /* Section for the common symbols. */
- struct scninfo *common_section;
-
- /* List of symbols defined in DSOs and used in a relocatable file.
- DSO symbols not referenced in the relocatable files are not on
- the list. If a symbol is on the list the on_dsolist field in the
- 'struct symbol' is nonzero. */
- struct symbol *from_dso;
- /* Number of entries in from_dso. */
- size_t nfrom_dso;
- /* Number of entries in the dynamic symbol table. */
- size_t ndynsym;
- /* Number of PLT entries from DSO references. */
- size_t nplt;
- /* Number of PLT entries from DSO references. */
- size_t ngot;
- /* Number of copy relocations. */
- size_t ncopy;
- /* Section for copy relocations. */
- struct scninfo *copy_section;
-
- /* Keeping track of the number of symbols in the output file. */
- size_t nsymtab;
- size_t nlocalsymbols;
-
- /* Special symbols. */
- struct symbol *init_symbol;
- struct symbol *fini_symbol;
-
- /* The description of the segments in the output file as described
- in the default linker script. This information will be used in
- addition to the user-provided information. */
- struct output_segment *default_output_segments;
- /* Search paths added by the default linker script. */
- struct pathelement *default_paths;
-
-#ifndef BASE_ELF_NAME
- /* The handle of the ld backend library. */
- void *ldlib;
-#endif
-
- /* String table for the section headers. */
- struct Ebl_Strtab *shstrtab;
-
- /* True if output file should contain symbol table. */
- bool need_symtab;
- /* Symbol table section. */
- Elf32_Word symscnidx;
- /* Extended section table section. */
- Elf32_Word xndxscnidx;
- /* Symbol string table section. */
- Elf32_Word strscnidx;
-
- /* True if output file should contain dynamic symbol table. */
- bool need_dynsym;
- /* Dynamic symbol table section. */
- Elf32_Word dynsymscnidx;
- /* Dynamic symbol string table section. */
- Elf32_Word dynstrscnidx;
- /* Dynamic symbol hash table. */
- size_t hashscnidx;
-
- /* Procedure linkage table section. */
- Elf32_Word pltscnidx;
- /* Number of entries already in the PLT section. */
- size_t nplt_used;
- /* Relocation for procedure linkage table section. */
- Elf32_Word pltrelscnidx;
-
- /* Global offset table section. */
- Elf32_Word gotscnidx;
-
- /* This section will hole all non-PLT relocations. */
- Elf32_Word reldynscnidx;
-
- /* Index of the sections to handle versioning. */
- Elf32_Word versymscnidx;
- Elf32_Word verneedscnidx;
- /* XXX Should the following names be verneed...? */
- /* Number of version definitions in input DSOs used. */
- int nverdefused;
- /* Number of input DSOs using versioning. */
- int nverdeffile;
- /* Index of next version. */
- int nextveridx;
-
- /* Hash table for version symbol strings. Only strings without
- special characters are hashed here. */
- ld_version_str_tab version_str_tab;
- /* At most one of the following two variables is set to true if either
- global or local symbol binding is selected as the default. */
- bool default_bind_local;
- bool default_bind_global;
-
- /* True if only used sections are used. */
- bool gc_sections;
-
- /* Array to determine final index of symbol. */
- Elf32_Word *dblindirect;
-
- /* Section group handling. */
- struct scngroup
- {
- Elf32_Word outscnidx;
- int nscns;
- struct member
- {
- struct scnhead *scn;
- struct member *next;
- } *member;
- struct Ebl_Strent *nameent;
- struct symbol *symbol;
- struct scngroup *next;
- } *groups;
-
- /* True if the output file needs a .got section. */
- bool need_got;
- /* Number of relocations for GOT section caused. */
- size_t nrel_got;
-
- /* Number of entries needed in the .dynamic section. */
- int ndynamic;
- /* To keep track of added entries. */
- int ndynamic_filled;
- /* Index for the dynamic section. */
- Elf32_Word dynamicscnidx;
-
- /* Flags set in the DT_FLAGS word. */
- Elf32_Word dt_flags;
- /* Flags set in the DT_FLAGS_1 word. */
- Elf32_Word dt_flags_1;
- /* Flags set in the DT_FEATURE_1 word. */
- Elf32_Word dt_feature_1;
-
- /* Lazy-loading state for dependencies. */
- bool lazyload;
-
- /* True is DSOs which are not used in the linking process are not
- recorded. */
- bool ignore_unused_dsos;
-
-
- /* True if in executables all global symbols should be exported in
- the dynamic symbol table. */
- bool export_all_dynamic;
-
- /* If DSO is generated, this is the SONAME. */
- const char *soname;
-
- /* List of all relocation sections. */
- struct scninfo *rellist;
- /* Total size of non-PLT relocations. */
- size_t relsize_total;
-
- /* Record for the GOT symbol, if known. */
- struct symbol *got_symbol;
- /* Record for the dynamic section symbol, if known. */
- struct symbol *dyn_symbol;
-
- /* Obstack used for small objects which will not be deleted. */
- struct obstack smem;
-};
-
-
-/* The interface to the scanner. */
-
-/* Parser entry point. */
-extern int ldparse (void);
-
-/* The input file. */
-extern FILE *ldin;
-
-/* Name of the input file. */
-extern const char *ldin_fname;
-
-/* Current line number. Must be reset for a new file. */
-extern int ldlineno;
-
-/* If nonzero we are currently parsing a version script. */
-extern int ld_scan_version_script;
-
-/* Flags defined in ld.c. */
-extern int verbose;
-extern int conserve_memory;
-
-
-/* Linker state. This contains all global information. */
-extern struct ld_state ld_state;
-
-
-/* Generic ld helper functions. */
-
-/* Append a new directory to search libraries in. */
-extern void ld_new_searchdir (const char *dir);
-
-/* Append a new file to the list of input files. */
-extern struct usedfiles *ld_new_inputfile (const char *fname,
- enum file_type type);
-
-
-/* These are the generic implementations for the callbacks used by ld. */
-
-/* Initialize state object. This callback function is called after the
- parameters are parsed but before any file is searched for. */
-extern int ld_prepare_state (const char *emulation);
-
-
-/* Function to determine whether an object will be dynamically linked. */
-extern bool dynamically_linked_p (void);
-
-/* Helper functions for the architecture specific code. */
-
-/* Checked whether the symbol is undefined and referenced from a DSO. */
-extern bool linked_from_dso_p (struct scninfo *scninfo, int symidx);
-extern inline bool
-linked_from_dso_p (struct scninfo *scninfo, int symidx)
-{
- struct usedfiles *file = scninfo->fileinfo;
-
- /* If this symbol is not undefined in this file it cannot come from
- a DSO. */
- if (symidx < file->nlocalsymbols)
- return false;
-
- struct symbol *sym = file->symref[symidx];
-
- return sym->defined && sym->in_dso;
-}
-
-#endif /* ld.h */
diff --git a/src/ldgeneric.c b/src/ldgeneric.c
deleted file mode 100644
index a33e9fcc..00000000
--- a/src/ldgeneric.c
+++ /dev/null
@@ -1,6376 +0,0 @@
-/* Copyright (C) 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <dlfcn.h>
-#include <errno.h>
-#include <error.h>
-#include <fcntl.h>
-#include <fnmatch.h>
-#include <gelf.h>
-#include <inttypes.h>
-#include <libintl.h>
-#include <stdbool.h>
-#include <stdio_ext.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-
-#include <system.h>
-#include "ld.h"
-#include "list.h"
-
-
-/* Prototypes for local functions. */
-static const char **ld_generic_lib_extensions (struct ld_state *)
- __attribute__ ((__const__));
-static int ld_generic_file_close (struct usedfiles *fileinfo,
- struct ld_state *statep);
-static int ld_generic_file_process (int fd, struct usedfiles *fileinfo,
- struct ld_state *statep,
- struct usedfiles **nextp);
-static void ld_generic_generate_sections (struct ld_state *statep);
-static void ld_generic_create_sections (struct ld_state *statep);
-static int ld_generic_flag_unresolved (struct ld_state *statep);
-static int ld_generic_open_outfile (struct ld_state *statep, int machine,
- int class, int data);
-static int ld_generic_create_outfile (struct ld_state *statep);
-static void ld_generic_relocate_section (struct ld_state *statep,
- Elf_Scn *outscn,
- struct scninfo *firstp,
- const Elf32_Word *dblindirect);
-static int ld_generic_finalize (struct ld_state *statep);
-static bool ld_generic_special_section_number_p (struct ld_state *statep,
- size_t number);
-static bool ld_generic_section_type_p (struct ld_state *statep,
- XElf_Word type);
-static XElf_Xword ld_generic_dynamic_section_flags (struct ld_state *statep);
-static void ld_generic_initialize_plt (struct ld_state *statep, Elf_Scn *scn);
-static void ld_generic_initialize_pltrel (struct ld_state *statep,
- Elf_Scn *scn);
-static void ld_generic_initialize_got (struct ld_state *statep, Elf_Scn *scn);
-static void ld_generic_finalize_plt (struct ld_state *statep, size_t nsym,
- size_t nsym_dyn);
-static int ld_generic_rel_type (struct ld_state *statep);
-static void ld_generic_count_relocations (struct ld_state *statep,
- struct scninfo *scninfo);
-static void ld_generic_create_relocations (struct ld_state *statep,
- const Elf32_Word *dblindirect);
-
-static int file_process2 (struct usedfiles *fileinfo);
-static void mark_section_used (struct scninfo *scninfo, Elf32_Word shndx,
- struct scninfo **grpscnp);
-
-
-/* Map symbol index to struct symbol record. */
-static struct symbol **ndxtosym;
-
-/* String table reference to all symbols in the symbol table. */
-static struct Ebl_Strent **symstrent;
-
-
-/* Check whether file associated with FD is a DSO. */
-static bool
-is_dso_p (int fd)
-{
- /* We have to read the 'e_type' field. It has the same size (16
- bits) in 32- and 64-bit ELF. */
- XElf_Half e_type;
-
- return (pread (fd, &e_type, sizeof (e_type), offsetof (XElf_Ehdr, e_type))
- == sizeof (e_type)
- && e_type == ET_DYN);
-}
-
-
-/* Print the complete name of a file, including the archive it is
- contained in. */
-static int
-print_file_name (FILE *s, struct usedfiles *fileinfo, int first_level,
- int newline)
-{
- int npar = 0;
-
- if (fileinfo->archive_file != NULL)
- {
- npar = print_file_name (s, fileinfo->archive_file, 0, 0) + 1;
- fputc_unlocked ('(', s);
- fputs_unlocked (fileinfo->rfname, s);
-
- if (first_level)
- while (npar-- > 0)
- fputc_unlocked (')', s);
- }
- else
- fputs_unlocked (fileinfo->rfname, s);
-
- if (first_level && newline)
- fputc_unlocked ('\n', s);
-
- return npar;
-}
-
-
-/* Function to determine whether an object will be dynamically linked. */
-bool
-dynamically_linked_p (void)
-{
- return (ld_state.file_type == dso_file_type || ld_state.nplt > 0
- || ld_state.ngot > 0);
-}
-
-
-bool
-linked_from_dso_p (struct scninfo *scninfo, int symidx)
-{
- struct usedfiles *file = scninfo->fileinfo;
-
- /* If this symbol is not undefined in this file it cannot come from
- a DSO. */
- if (symidx < file->nlocalsymbols)
- return false;
-
- struct symbol *sym = file->symref[symidx];
-
- return sym->defined && sym->in_dso;
-}
-
-
-/* Initialize state object. This callback function is called after the
- parameters are parsed but before any file is searched for. */
-int
-ld_prepare_state (const char *emulation)
-{
- /* When generating DSO we normally allow undefined symbols. */
- ld_state.nodefs = true;
-
- /* To be able to detect problems we add a .comment section entry by
- default. */
- ld_state.add_ld_comment = true;
-
- /* XXX We probably should find a better place for this. The index
- of the first user-defined version is 2. */
- ld_state.nextveridx = 2;
-
- /* Pick an not too small number for the initial size of the tables. */
- ld_symbol_tab_init (&ld_state.symbol_tab, 1027);
- ld_section_tab_init (&ld_state.section_tab, 67);
- ld_version_str_tab_init (&ld_state.version_str_tab, 67);
-
- /* Initialize the section header string table. */
- ld_state.shstrtab = ebl_strtabinit (true);
- if (ld_state.shstrtab == NULL)
- error (EXIT_FAILURE, errno, gettext ("cannot create string table"));
-
- /* Initialize the callbacks. These are the defaults, the appropriate
- backend can later install its own callbacks. */
- ld_state.callbacks.lib_extensions = ld_generic_lib_extensions;
- ld_state.callbacks.file_process = ld_generic_file_process;
- ld_state.callbacks.file_close = ld_generic_file_close;
- ld_state.callbacks.generate_sections = ld_generic_generate_sections;
- ld_state.callbacks.create_sections = ld_generic_create_sections;
- ld_state.callbacks.flag_unresolved = ld_generic_flag_unresolved;
- ld_state.callbacks.open_outfile = ld_generic_open_outfile;
- ld_state.callbacks.create_outfile = ld_generic_create_outfile;
- ld_state.callbacks.relocate_section = ld_generic_relocate_section;
- ld_state.callbacks.finalize = ld_generic_finalize;
- ld_state.callbacks.special_section_number_p =
- ld_generic_special_section_number_p;
- ld_state.callbacks.section_type_p = ld_generic_section_type_p;
- ld_state.callbacks.dynamic_section_flags = ld_generic_dynamic_section_flags;
- ld_state.callbacks.initialize_plt = ld_generic_initialize_plt;
- ld_state.callbacks.initialize_pltrel = ld_generic_initialize_pltrel;
- ld_state.callbacks.initialize_got = ld_generic_initialize_got;
- ld_state.callbacks.finalize_plt = ld_generic_finalize_plt;
- ld_state.callbacks.rel_type = ld_generic_rel_type;
- ld_state.callbacks.count_relocations = ld_generic_count_relocations;
- ld_state.callbacks.create_relocations = ld_generic_create_relocations;
-
-#ifndef BASE_ELF_NAME
- /* Find the ld backend library. Use EBL to determine the name if
- the user hasn't provided one on the command line. */
- if (emulation == NULL)
- {
- emulation = ebl_backend_name (ld_state.ebl);
- assert (emulation != NULL);
- }
- size_t emulation_len = strlen (emulation);
-
- /* Construct the file name. */
- char *fname = (char *) alloca (sizeof "libld_" - 1 + emulation_len
- + sizeof ".so");
- strcpy (mempcpy (stpcpy (fname, "libld_"), emulation, emulation_len), ".so");
-
- /* Try loading. */
- void *h = dlopen (fname, RTLD_LAZY);
- if (h == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot load ld backend library '%s': %s"),
- fname, dlerror ());
-
- /* Find the initializer. It must be present. */
- char *initname = (char *) alloca (emulation_len + sizeof "_ld_init");
- strcpy (mempcpy (initname, emulation, emulation_len), "_ld_init");
- int (*initfct) (struct ld_state *)
- = (int (*) (struct ld_state *)) dlsym (h, initname);
-
- if (initfct == NULL)
- error (EXIT_FAILURE, 0, gettext ("\
-cannot find init function in ld backend library '%s': %s"),
- fname, dlerror ());
-
- /* Store the handle. */
- ld_state.ldlib = h;
-
- /* Call the init function. */
- return initfct (&ld_state);
-#else
-# define INIT_FCT_NAME(base) _INIT_FCT_NAME(base)
-# define _INIT_FCT_NAME(base) base##_ld_init
- /* Declare and call the initialization function. */
- extern int INIT_FCT_NAME(BASE_ELF_NAME) (struct ld_state *);
- return INIT_FCT_NAME(BASE_ELF_NAME) (&ld_state);
-#endif
-}
-
-
-static int
-check_for_duplicate2 (struct usedfiles *newp, struct usedfiles *list)
-{
- struct usedfiles *first;
- struct usedfiles *prevp;
-
- if (list == NULL)
- return 0;
-
- prevp = list;
- list = first = list->next;
- do
- {
- /* When searching the needed list we might come across entries
- for files which are not yet opened. Stop then, there is
- nothing more to test. */
- if (likely (list->status == not_opened))
- break;
-
- if (unlikely (list->ino == newp->ino)
- && unlikely (list->dev == newp->dev))
- {
- close (newp->fd);
- newp->fd = -1;
- newp->status = closed;
- if (newp->file_type == relocatable_file_type)
- error (0, 0, gettext ("%s listed more than once as input"),
- newp->rfname);
-
- return 1;
- }
- list = list->next;
- }
- while (likely (list != first));
-
- return 0;
-}
-
-
-static int
-check_for_duplicate (struct usedfiles *newp)
-{
- struct stat st;
-
- if (unlikely (fstat (newp->fd, &st) < 0))
- {
- close (newp->fd);
- return errno;
- }
-
- newp->dev = st.st_dev;
- newp->ino = st.st_ino;
-
- return (check_for_duplicate2 (newp, ld_state.relfiles)
- || check_for_duplicate2 (newp, ld_state.dsofiles)
- || check_for_duplicate2 (newp, ld_state.needed));
-}
-
-
-/* Find a file along the path described in the state. */
-static int
-open_along_path2 (struct usedfiles *fileinfo, struct pathelement *path)
-{
- const char *fname = fileinfo->fname;
- size_t fnamelen = strlen (fname);
- int err = ENOENT;
- struct pathelement *firstp = path;
-
- if (path == NULL)
- /* Cannot find anything since we have no path. */
- return ENOENT;
-
- do
- {
- if (likely (path->exist >= 0))
- {
- /* Create the file name. */
- char *rfname = NULL;
- size_t dirlen = strlen (path->pname);
- int fd = -1;
-
- if (fileinfo->file_type == archive_file_type)
- {
- const char **exts = (ld_state.statically
- ? (const char *[2]) { ".a", NULL }
- : LIB_EXTENSION (&ld_state));
-
- /* We have to create the actual file name. We prepend "lib"
- and add one of the extensions the platform has. */
- while (*exts != NULL)
- {
- size_t extlen = strlen (*exts);
- rfname = (char *) alloca (dirlen + 5 + fnamelen + extlen);
- memcpy (mempcpy (stpcpy (mempcpy (rfname, path->pname,
- dirlen),
- "/lib"),
- fname, fnamelen),
- *exts, extlen + 1);
-
- fd = open (rfname, O_RDONLY);
- if (likely (fd != -1) || errno != ENOENT)
- {
- err = fd == -1 ? errno : 0;
- break;
- }
-
- /* Next extension. */
- ++exts;
- }
- }
- else
- {
- assert (fileinfo->file_type == dso_file_type
- || fileinfo->file_type == dso_needed_file_type);
-
- rfname = (char *) alloca (dirlen + 1 + fnamelen + 1);
- memcpy (stpcpy (mempcpy (rfname, path->pname, dirlen), "/"),
- fname, fnamelen + 1);
-
- fd = open (rfname, O_RDONLY);
- if (unlikely (fd == -1))
- err = errno;
- }
-
- if (likely (fd != -1))
- {
- /* We found the file. This also means the directory
- exists. */
- fileinfo->fd = fd;
- path->exist = 1;
-
- /* Check whether we have this file already loaded. */
- if (unlikely (check_for_duplicate (fileinfo) != 0))
- return EAGAIN;
-
- /* Make a copy of the name. */
- fileinfo->rfname = obstack_strdup (&ld_state.smem, rfname);
-
- if (unlikely (ld_state.trace_files))
- printf (fileinfo->file_type == archive_file_type
- ? gettext ("%s (for -l%s)\n")
- : gettext ("%s (for DT_NEEDED %s)\n"),
- rfname, fname);
-
- return 0;
- }
-
- /* The file does not exist. Maybe the whole directory doesn't.
- Check it unless we know it exists. */
- if (unlikely (path->exist == 0))
- {
- struct stat st;
-
- /* Keep only the directory name. Note that the path
- might be relative. This doesn't matter here. We do
- the test in any case even if there is the chance that
- somebody wants to change the programs working
- directory at some point which would make the result
- of this test void. Since changing the working
- directory is completely wrong we are not taking this
- case into account. */
- rfname[dirlen] = '\0';
- if (unlikely (stat (rfname, &st) < 0) || ! S_ISDIR (st.st_mode))
- /* The directory does not exist or the named file is no
- directory. */
- path->exist = -1;
- else
- path->exist = 1;
- }
- }
-
- /* Next path element. */
- path = path->next;
- }
- while (likely (err == ENOENT && path != firstp));
-
- return err;
-}
-
-
-static int
-open_along_path (struct usedfiles *fileinfo)
-{
- const char *fname = fileinfo->fname;
- int err = ENOENT;
-
- if (fileinfo->file_type == relocatable_file_type)
- {
- /* Only libraries are searched along the path. */
- fileinfo->fd = open (fname, O_RDONLY);
-
- if (likely (fileinfo->fd != -1))
- {
- /* We found the file. */
- if (unlikely (ld_state.trace_files))
- print_file_name (stdout, fileinfo, 1, 1);
-
- return check_for_duplicate (fileinfo);
- }
-
- /* If the name is an absolute path we are done. */
- err = errno;
- }
- else
- {
- /* If the user specified two parts to the LD_LIBRARY_PATH variable
- try the first part now. */
- err = open_along_path2 (fileinfo, ld_state.ld_library_path1);
-
- /* Try the user-specified path next. */
- if (err == ENOENT)
- err = open_along_path2 (fileinfo,
- fileinfo->file_type == archive_file_type
- ? ld_state.paths : ld_state.rpath_link);
-
- /* Then the second part of the LD_LIBRARY_PATH value. */
- if (unlikely (err == ENOENT))
- {
- err = open_along_path2 (fileinfo, ld_state.ld_library_path2);
-
- /* In case we look for a DSO handle now the RUNPATH. */
- if (err == ENOENT)
- {
- if (fileinfo->file_type == dso_file_type)
- err = open_along_path2 (fileinfo, ld_state.runpath_link);
-
- /* Finally the path from the default linker script. */
- if (err == ENOENT)
- err = open_along_path2 (fileinfo, ld_state.default_paths);
- }
- }
- }
-
- if (unlikely (err != 0)
- && (err != EAGAIN || fileinfo->file_type == relocatable_file_type))
- error (0, err, gettext ("cannot open %s"), fileinfo->fname);
-
- return err;
-}
-
-
-static void
-check_type_and_size (const XElf_Sym *sym, struct usedfiles *fileinfo,
- struct symbol *oldp)
-{
- /* We check the type and size of the symbols. In both cases the
- information can be missing (size is zero, type is STT_NOTYPE) in
- which case we issue no warnings. Otherwise everything must
- match. If the type does not match there is no point in checking
- the size. */
-
- if (XELF_ST_TYPE (sym->st_info) != STT_NOTYPE && oldp->type != STT_NOTYPE
- && unlikely (oldp->type != XELF_ST_TYPE (sym->st_info)))
- {
- char buf1[64];
- char buf2[64];
-
- error (0, 0, gettext ("\
-Warning: type of `%s' changed from %s in %s to %s in %s"),
- oldp->name,
- ebl_symbol_type_name (ld_state.ebl, oldp->type,
- buf1, sizeof (buf1)),
- oldp->file->rfname,
- ebl_symbol_type_name (ld_state.ebl, XELF_ST_TYPE (sym->st_info),
- buf2, sizeof (buf2)),
- fileinfo->rfname);
- }
- else if (XELF_ST_TYPE (sym->st_info) == STT_OBJECT
- && oldp->size != 0
- && unlikely (oldp->size != sym->st_size))
- error (0, 0, gettext ("\
-Warning: size of `%s' changed from %" PRIu64 " in %s to %" PRIu64 " in %s"),
- oldp->name, (uint64_t) oldp->size, oldp->file->rfname,
- (uint64_t) sym->st_size, fileinfo->rfname);
-}
-
-
-static int
-check_definition (const XElf_Sym *sym, size_t symidx,
- struct usedfiles *fileinfo, struct symbol *oldp)
-{
- int result = 0;
- bool old_in_dso = FILEINFO_EHDR (oldp->file->ehdr).e_type == ET_DYN;
- bool new_in_dso = FILEINFO_EHDR (fileinfo->ehdr).e_type == ET_DYN;
- bool use_new_def = false;
-
- if (sym->st_shndx != SHN_UNDEF
- && (! oldp->defined
- || (sym->st_shndx != SHN_COMMON && oldp->common && ! new_in_dso)
- || (old_in_dso && ! new_in_dso)))
- {
- /* We found a definition for a previously undefined symbol or a
- real definition for a previous common-only definition or a
- redefinition of a symbol definition in an object file
- previously defined in a DSO. First perform some tests which
- will show whether the common is really matching the
- definition. */
- check_type_and_size (sym, fileinfo, oldp);
-
- /* We leave the next element intact to not interrupt the list
- with the unresolved symbols. Whoever walks the list will
- have to check the `defined' flag. But we remember that this
- list element is not unresolved anymore. */
- if (! oldp->defined)
- {
- /* Remove from the list. */
- --ld_state.nunresolved;
- if (! oldp->weak)
- --ld_state.nunresolved_nonweak;
- CDBL_LIST_DEL (ld_state.unresolved, oldp);
- }
- else if (oldp->common)
- /* Remove from the list. */
- CDBL_LIST_DEL (ld_state.common_syms, oldp);
-
- /* Use the values of the definition from now on. */
- use_new_def = true;
- }
- else if (sym->st_shndx != SHN_UNDEF
- && unlikely (! oldp->common)
- && oldp->defined
- && sym->st_shndx != SHN_COMMON
- /* Multiple definitions are no fatal errors if the -z muldefs flag
- is used. We don't warn about the multiple definition unless we
- are told to be verbose. */
- && (!ld_state.muldefs || verbose)
- && ! old_in_dso && fileinfo->file_type == relocatable_file_type)
- {
- /* We have a double definition. This is a problem. */
- char buf[64];
- XElf_Sym_vardef (oldsym);
- struct usedfiles *oldfile;
- const char *scnname;
- Elf32_Word xndx;
- size_t shndx;
- size_t shnum;
-
- if (elf_getshnum (fileinfo->elf, &shnum) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot determine number of sections: %s"),
- elf_errmsg (-1));
-
- /* XXX Use only ebl_section_name. */
- if (sym->st_shndx < SHN_LORESERVE // || sym->st_shndx > SHN_HIRESERVE
- && sym->st_shndx < shnum)
- scnname = elf_strptr (fileinfo->elf,
- fileinfo->shstrndx,
- SCNINFO_SHDR (fileinfo->scninfo[sym->st_shndx].shdr).sh_name);
- else
- // XXX extended section
- scnname = ebl_section_name (ld_state.ebl, sym->st_shndx, 0,
- buf, sizeof (buf), NULL, shnum);
-
- /* XXX Print source file and line number. */
- print_file_name (stderr, fileinfo, 1, 0);
- fprintf (stderr,
- gettext ("(%s+%#" PRIx64 "): multiple definition of %s `%s'\n"),
- scnname,
- (uint64_t) sym->st_value,
- ebl_symbol_type_name (ld_state.ebl, XELF_ST_TYPE (sym->st_info),
- buf, sizeof (buf)),
- oldp->name);
-
- oldfile = oldp->file;
- xelf_getsymshndx (oldfile->symtabdata, oldfile->xndxdata, oldp->symidx,
- oldsym, xndx);
- if (oldsym == NULL)
- /* This should never happen since the same call
- succeeded before. */
- abort ();
-
- shndx = oldsym->st_shndx;
- if (unlikely (oldsym->st_shndx == SHN_XINDEX))
- shndx = xndx;
-
- /* XXX Use only ebl_section_name. */
- if (shndx < SHN_LORESERVE || shndx > SHN_HIRESERVE)
- scnname = elf_strptr (oldfile->elf,
- oldfile->shstrndx,
- SCNINFO_SHDR (oldfile->scninfo[shndx].shdr).sh_name);
- else
- scnname = ebl_section_name (ld_state.ebl, oldsym->st_shndx, shndx, buf,
- sizeof (buf), NULL, shnum);
-
- /* XXX Print source file and line number. */
- print_file_name (stderr, oldfile, 1, 0);
- fprintf (stderr, gettext ("(%s+%#" PRIx64 "): first defined here\n"),
- scnname, (uint64_t) oldsym->st_value);
-
- if (likely (!ld_state.muldefs))
- result = 1;
- }
- else if (old_in_dso && fileinfo->file_type == relocatable_file_type
- && sym->st_shndx != SHN_UNDEF)
- /* We use the definition from a normal relocatable file over the
- definition in a DSO. This is what the dynamic linker would
- do, too. */
- use_new_def = true;
- else if (old_in_dso && !new_in_dso && oldp->defined && !oldp->on_dsolist)
- {
- CDBL_LIST_ADD_REAR (ld_state.from_dso, oldp);
- ++ld_state.nfrom_dso;
-
- /* If the object is a function we allocate a PLT entry,
- otherwise only a GOT entry. */
- if (oldp->type == STT_FUNC)
- ++ld_state.nplt;
- else
- ++ld_state.ngot;
-
- oldp->on_dsolist = 1;
- }
- else if (oldp->common && sym->st_shndx == SHN_COMMON)
- {
- /* The symbol size is the largest of all common definitions. */
- oldp->size = MAX (oldp->size, sym->st_size);
- /* Similarly for the alignment. */
- oldp->merge.value = MAX (oldp->merge.value, sym->st_value);
- }
-
- if (unlikely (use_new_def))
- {
- /* Adjust the symbol record appropriately and remove
- the symbol from the list of symbols which are taken from DSOs. */
- if (old_in_dso && fileinfo->file_type == relocatable_file_type)
- {
- CDBL_LIST_DEL (ld_state.from_dso, oldp);
- --ld_state.nfrom_dso;
-
- if (likely (oldp->type == STT_FUNC))
- --ld_state.nplt;
- else
- --ld_state.ngot;
-
- oldp->on_dsolist = 0;
- }
-
- /* Use the values of the definition from now on. */
- oldp->size = sym->st_size;
- oldp->type = XELF_ST_TYPE (sym->st_info);
- oldp->symidx = symidx;
- oldp->scndx = sym->st_shndx;
- //oldp->symscndx = THESYMSCNDX must be passed;
- oldp->file = fileinfo;
- oldp->defined = 1;
- oldp->in_dso = new_in_dso;
- oldp->common = sym->st_shndx == SHN_COMMON;
- if (likely (fileinfo->file_type == relocatable_file_type))
- {
- /* If the definition comes from a DSO we pertain the weak flag
- and it's indicating whether the reference is weak or not. */
- oldp->weak = XELF_ST_BIND (sym->st_info) == STB_WEAK;
-
- if (sym->st_shndx != SHN_COMMON)
- {
- struct scninfo *ignore;
- mark_section_used (&fileinfo->scninfo[sym->st_shndx],
- sym->st_shndx, &ignore);
- }
- }
-
- /* Add to the list of symbols used from DSOs if necessary. */
- if (new_in_dso && !old_in_dso)
- {
- CDBL_LIST_ADD_REAR (ld_state.from_dso, oldp);
- ++ld_state.nfrom_dso;
-
- /* If the object is a function we allocate a PLT entry,
- otherwise only a GOT entry. */
- if (oldp->type == STT_FUNC)
- ++ld_state.nplt;
- else
- ++ld_state.ngot;
-
- oldp->on_dsolist = 1;
- }
- else if (sym->st_shndx == SHN_COMMON)
- {
- /* Store the alignment. */
- oldp->merge.value = sym->st_value;
-
- CDBL_LIST_ADD_REAR (ld_state.common_syms, oldp);
- }
- }
-
- return result;
-}
-
-
-static struct scninfo *
-find_section_group (struct usedfiles *fileinfo, Elf32_Word shndx,
- Elf_Data **datap)
-{
- struct scninfo *runp;
-
- for (runp = fileinfo->groups; runp != NULL; runp = runp->next)
- if (!runp->used)
- {
- Elf32_Word *grpref;
- size_t cnt;
- Elf_Data *data;
-
- data = elf_getdata (runp->scn, NULL);
- if (data == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("%s: cannot get section group data: %s"),
- fileinfo->fname, elf_errmsg (-1));
-
- /* There cannot be another data block. */
- assert (elf_getdata (runp->scn, data) == NULL);
-
- grpref = (Elf32_Word *) data->d_buf;
- cnt = data->d_size / sizeof (Elf32_Word);
- /* Note that we stop after looking at index 1 since index 0
- contains the flags for the section group. */
- while (cnt > 1)
- if (grpref[--cnt] == shndx)
- {
- *datap = data;
- return runp;
- }
- }
-
- /* If we come here no section group contained the given section
- despite the SHF_GROUP flag. This is an error in the input
- file. */
- error (EXIT_FAILURE, 0, gettext ("\
-%s: section '%s' with group flag set does not belong to any group"),
- fileinfo->fname,
- elf_strptr (fileinfo->elf, fileinfo->shstrndx,
- SCNINFO_SHDR (fileinfo->scninfo[shndx].shdr).sh_name));
- return NULL;
-}
-
-
-/* Mark all sections which belong to the same group as section SHNDX
- as used. */
-static void
-mark_section_group (struct usedfiles *fileinfo, Elf32_Word shndx,
- struct scninfo **grpscnp)
-{
- /* First locate the section group. There can be several (many) of
- them. */
- size_t cnt;
- Elf32_Word *grpref;
- Elf_Data *data;
- struct scninfo *grpscn = find_section_group (fileinfo, shndx, &data);
- *grpscnp = grpscn;
-
- /* Mark all the sections as used.
-
- XXX Two possible problems here:
-
- - the gABI says "The section must be referenced by a section of type
- SHT_GROUP". I hope everybody reads this as "exactly one section".
-
- - section groups are also useful to mark the debugging section which
- belongs to a text section. Unconditionally adding debugging sections
- is therefore probably not what is wanted if stripping is required. */
-
- /* Mark the section group as handled. */
- grpscn->used = true;
-
- grpref = (Elf32_Word *) data->d_buf;
- cnt = data->d_size / sizeof (Elf32_Word);
- while (cnt > 1)
- {
- Elf32_Word idx = grpref[--cnt];
- XElf_Shdr *shdr = &SCNINFO_SHDR (fileinfo->scninfo[idx].shdr);
-
- if (fileinfo->scninfo[idx].grpid != 0)
- error (EXIT_FAILURE, 0, gettext ("\
-%s: section [%2d] '%s' is in more than one section group"),
- fileinfo->fname, (int) idx,
- elf_strptr (fileinfo->elf, fileinfo->shstrndx, shdr->sh_name));
-
- fileinfo->scninfo[idx].grpid = grpscn->grpid;
-
- if (ld_state.strip == strip_none
- /* If we are stripping, remove debug sections. */
- || (!ebl_debugscn_p (ld_state.ebl,
- elf_strptr (fileinfo->elf, fileinfo->shstrndx,
- shdr->sh_name))
- /* And the relocation sections for the debug sections. */
- && ((shdr->sh_type != SHT_RELA && shdr->sh_type != SHT_REL)
- || !ebl_debugscn_p (ld_state.ebl,
- elf_strptr (fileinfo->elf,
- fileinfo->shstrndx,
- SCNINFO_SHDR (fileinfo->scninfo[shdr->sh_info].shdr).sh_name)))))
- {
- struct scninfo *ignore;
-
- mark_section_used (&fileinfo->scninfo[idx], idx, &ignore);
- }
- }
-}
-
-
-static void
-mark_section_used (struct scninfo *scninfo, Elf32_Word shndx,
- struct scninfo **grpscnp)
-{
- if (likely (scninfo->used))
- /* Nothing to be done. */
- return;
-
- /* We need this section. */
- scninfo->used = true;
-
- /* Make sure the section header has been read from the file. */
- XElf_Shdr *shdr = &SCNINFO_SHDR (scninfo->shdr);
-#if NATIVE_ELF
- if (unlikely (scninfo->shdr == NULL))
-#else
- if (unlikely (scninfo->shdr.sh_type == SHT_NULL))
-#endif
- {
-#if NATIVE_ELF != 0
- shdr = xelf_getshdr (scninfo->scn, scninfo->shdr);
-#else
- xelf_getshdr_copy (scninfo->scn, shdr, scninfo->shdr);
-#endif
- if (unlikely (shdr == NULL))
- /* Something is very wrong. The calling code will notice it
- soon and print a message. */
- return;
- }
-
- /* Handle section linked by 'sh_link'. */
- if (unlikely (shdr->sh_link != 0))
- {
- struct scninfo *ignore;
- mark_section_used (&scninfo->fileinfo->scninfo[shdr->sh_link],
- shdr->sh_link, &ignore);
- }
-
- /* Handle section linked by 'sh_info'. */
- if (unlikely (shdr->sh_info != 0) && (shdr->sh_flags & SHF_INFO_LINK))
- {
- struct scninfo *ignore;
- mark_section_used (&scninfo->fileinfo->scninfo[shdr->sh_info],
- shdr->sh_info, &ignore);
- }
-
- if (unlikely (shdr->sh_flags & SHF_GROUP) && ld_state.gc_sections)
- /* Find the section group which contains this section. */
- mark_section_group (scninfo->fileinfo, shndx, grpscnp);
-}
-
-
-/* We collect all sections in a hashing table. All sections with the
- same name are collected in a list. Note that we do not determine
- which sections are finally collected in the same output section
- here. This would be terribly inefficient. It will be done later. */
-static void
-add_section (struct usedfiles *fileinfo, struct scninfo *scninfo)
-{
- struct scnhead *queued;
- struct scnhead search;
- unsigned long int hval;
- XElf_Shdr *shdr = &SCNINFO_SHDR (scninfo->shdr);
- struct scninfo *grpscn = NULL;
- Elf_Data *grpscndata = NULL;
-
- /* See whether we can determine right away whether we need this
- section in the output.
-
- XXX I assume here that --gc-sections only affects extraction
- from an archive. If it also affects objects files given on
- the command line then somebody must explain to me how the
- dependency analysis should work. Should the entry point be
- the root? What if it is a numeric value? */
- if (!scninfo->used
- && (ld_state.strip == strip_none
- || (shdr->sh_flags & SHF_ALLOC) != 0
- || shdr->sh_type == SHT_NOTE
- || (shdr->sh_type == SHT_PROGBITS
- && strcmp (elf_strptr (fileinfo->elf,
- fileinfo->shstrndx,
- shdr->sh_name), ".comment") == 0))
- && (fileinfo->status != in_archive || !ld_state.gc_sections))
- /* Mark as used and handle reference recursively if necessary. */
- mark_section_used (scninfo, elf_ndxscn (scninfo->scn), &grpscn);
-
- if ((shdr->sh_flags & SHF_GROUP) && grpscn == NULL)
- /* Determine the symbol which name constitutes the signature
- for the section group. */
- grpscn = find_section_group (fileinfo, elf_ndxscn (scninfo->scn),
- &grpscndata);
- assert (grpscn == NULL || grpscn->symbols->name != NULL);
-
- /* Determine the section name. */
- search.name = elf_strptr (fileinfo->elf, fileinfo->shstrndx, shdr->sh_name);
- search.type = shdr->sh_type;
- search.flags = shdr->sh_flags;
- search.entsize = shdr->sh_entsize;
- search.grp_signature = grpscn != NULL ? grpscn->symbols->name : NULL;
- search.kind = scn_normal;
- hval = elf_hash (search.name);
-
- /* Find already queued sections. */
- queued = ld_section_tab_find (&ld_state.section_tab, hval, &search);
- if (queued != NULL)
- {
- bool is_comdat = false;
-
- /* If this section is part of a COMDAT section group we simply
- ignore it since we already have a copy. */
- if (unlikely (shdr->sh_flags & SHF_GROUP))
- {
- /* Get the data of the section group section. */
- if (grpscndata == NULL)
- {
- grpscndata = elf_getdata (grpscn->scn, NULL);
- assert (grpscndata != NULL);
- }
-
- /* XXX Possibly unaligned memory access. */
- is_comdat = ((Elf32_Word *) grpscndata->d_buf)[0] & GRP_COMDAT;
- }
-
- if (!is_comdat)
- {
- /* No COMDAT section, we use the data. */
- scninfo->next = queued->last->next;
- queued->last = queued->last->next = scninfo;
-
- queued->flags = SH_FLAGS_COMBINE (queued->flags, shdr->sh_flags);
- queued->align = MAX (queued->align, shdr->sh_addralign);
- }
- }
- else
- {
- /* We do not use obstacks here since the memory might be
- deallocated. */
- queued = (struct scnhead *) xcalloc (sizeof (struct scnhead), 1);
- queued->kind = scn_normal;
- queued->name = search.name;
- queued->type = shdr->sh_type;
- queued->flags = shdr->sh_flags;
- queued->align = shdr->sh_addralign;
- queued->entsize = shdr->sh_entsize;
- queued->grp_signature = grpscn != NULL ? grpscn->symbols->name : NULL;
- queued->segment_nr = ~0;
- queued->last = scninfo->next = scninfo;
-
- /* Add to the hash table and possibly overwrite existing value. */
- ld_section_tab_insert (&ld_state.section_tab, hval, queued);
- }
-}
-
-
-static int
-add_relocatable_file (struct usedfiles *fileinfo, int secttype)
-{
- size_t scncnt;
- size_t cnt;
- Elf_Data *symtabdata = NULL;
- Elf_Data *xndxdata = NULL;
- Elf_Data *versymdata = NULL;
- Elf_Data *verdefdata = NULL;
- Elf_Data *verneeddata = NULL;
- size_t symstridx = 0;
- size_t nsymbols = 0;
- size_t nlocalsymbols = 0;
- bool has_merge_sections = false;
-
- /* Prerequisites. */
- assert (fileinfo->elf != NULL);
-
- /* Allocate memory for the sections. */
- if (unlikely (elf_getshnum (fileinfo->elf, &scncnt) < 0))
- error (EXIT_FAILURE, 0,
- gettext ("cannot determine number of sections: %s"),
- elf_errmsg (-1));
-
- fileinfo->scninfo = (struct scninfo *)
- obstack_calloc (&ld_state.smem, scncnt * sizeof (struct scninfo));
-
- /* Read all the section headers and find the symbol table. Note
- that we don't skip the section with index zero. Even though the
- section itself is always empty the section header contains
- informaton for the case when the section index for the section
- header string table is too large to fit in the ELF header. */
- for (cnt = 0; cnt < scncnt; ++cnt)
- {
- /* Store the handle for the section. */
- fileinfo->scninfo[cnt].scn = elf_getscn (fileinfo->elf, cnt);
-
- /* Get the ELF section header and data. */
- XElf_Shdr *shdr;
-#if NATIVE_ELF != 0
- if (fileinfo->scninfo[cnt].shdr == NULL)
-#else
- if (fileinfo->scninfo[cnt].shdr.sh_type == SHT_NULL)
-#endif
- {
-#if NATIVE_ELF != 0
- shdr = xelf_getshdr (fileinfo->scninfo[cnt].scn,
- fileinfo->scninfo[cnt].shdr);
-#else
- xelf_getshdr_copy (fileinfo->scninfo[cnt].scn, shdr,
- fileinfo->scninfo[cnt].shdr);
-#endif
- if (shdr == NULL)
- {
- /* This should never happen. */
- fprintf (stderr, gettext ("%s: invalid ELF file (%s:%d)\n"),
- fileinfo->rfname, __FILE__, __LINE__);
- return 1;
- }
- }
- else
- shdr = &SCNINFO_SHDR (fileinfo->scninfo[cnt].shdr);
-
- Elf_Data *data = elf_getdata (fileinfo->scninfo[cnt].scn, NULL);
-
- /* Check whether this section is marked as merge-able. */
- has_merge_sections |= (shdr->sh_flags & SHF_MERGE) != 0;
-
- /* Get the ELF section header and data. */
- /* Make the file structure available. */
- fileinfo->scninfo[cnt].fileinfo = fileinfo;
-
- if (unlikely (shdr->sh_type == SHT_SYMTAB)
- || unlikely (shdr->sh_type == SHT_DYNSYM))
- {
- if (shdr->sh_type == SHT_SYMTAB)
- {
- assert (fileinfo->symtabdata == NULL);
- fileinfo->symtabdata = data;
- fileinfo->nsymtab = shdr->sh_size / shdr->sh_entsize;
- fileinfo->nlocalsymbols = shdr->sh_info;
- fileinfo->symstridx = shdr->sh_link;
- }
- else
- {
- assert (fileinfo->dynsymtabdata == NULL);
- fileinfo->dynsymtabdata = data;
- fileinfo->ndynsymtab = shdr->sh_size / shdr->sh_entsize;
- fileinfo->dynsymstridx = shdr->sh_link;
- }
-
- /* If we are looking for the normal symbol table we just
- found it. */
- if (secttype == shdr->sh_type)
- {
- assert (symtabdata == NULL);
- symtabdata = data;
- symstridx = shdr->sh_link;
- nsymbols = shdr->sh_size / shdr->sh_entsize;
- nlocalsymbols = shdr->sh_info;
- }
- }
- else if (unlikely (shdr->sh_type == SHT_SYMTAB_SHNDX))
- {
- assert (xndxdata == NULL);
- fileinfo->xndxdata = xndxdata = data;
- }
- else if (unlikely (shdr->sh_type == SHT_GNU_versym))
- {
- assert (versymdata == 0);
- fileinfo->versymdata = versymdata = data;
- }
- else if (unlikely (shdr->sh_type == SHT_GNU_verdef))
- {
- size_t nversions;
-
- assert (verdefdata == 0);
- fileinfo->verdefdata = verdefdata = data;
-
- /* Allocate the arrays flagging the use of the version and
- to track of allocated names. */
- fileinfo->nverdef = nversions = shdr->sh_info;
- /* We have NVERSIONS + 1 because the indeces used to access the
- sectino start with one; zero represents local binding. */
- fileinfo->verdefused = (XElf_Versym *)
- obstack_calloc (&ld_state.smem,
- sizeof (XElf_Versym) * (nversions + 1));
- fileinfo->verdefent = (struct Ebl_Strent **)
- obstack_alloc (&ld_state.smem,
- sizeof (struct Ebl_Strent *) * (nversions + 1));
- }
- else if (unlikely (shdr->sh_type == SHT_GNU_verneed))
- {
- assert (verneeddata == 0);
- fileinfo->verneeddata = verneeddata = data;
- }
- else if (unlikely (shdr->sh_type == SHT_DYNAMIC))
- {
- assert (fileinfo->dynscn == NULL);
- fileinfo->dynscn = fileinfo->scninfo[cnt].scn;
- }
- else if (unlikely (shdr->sh_type == SHT_GROUP))
- {
- Elf_Scn *symscn;
- XElf_Shdr_vardef (symshdr);
- Elf_Data *symdata;
-
- if (FILEINFO_EHDR (fileinfo->ehdr).e_type != ET_REL)
- error (EXIT_FAILURE, 0, gettext ("\
-%s: only files of type ET_REL might contain section groups"),
- fileinfo->fname);
-
- fileinfo->scninfo[cnt].next = fileinfo->groups;
- fileinfo->scninfo[cnt].grpid = cnt;
- fileinfo->groups = &fileinfo->scninfo[cnt];
-
- /* Determine the signature. We create a symbol record for
- it. Only the name element is important. */
- fileinfo->scninfo[cnt].symbols = (struct symbol *)
- obstack_calloc (&ld_state.smem, sizeof (struct symbol));
-
- symscn = elf_getscn (fileinfo->elf, shdr->sh_link);
- xelf_getshdr (symscn, symshdr);
- symdata = elf_getdata (symscn, NULL);
- if (symshdr != NULL)
- {
- XElf_Sym_vardef (sym);
-
- /* We don't need the section index and therefore we don't
- have to use 'xelf_getsymshndx'. */
- xelf_getsym (symdata, shdr->sh_info, sym);
- if (sym != NULL)
- {
- struct symbol *symbol = fileinfo->scninfo[cnt].symbols;
-
- symbol->name = elf_strptr (fileinfo->elf, symshdr->sh_link,
- sym->st_name);
- symbol->symidx = shdr->sh_info;
- symbol->file = fileinfo;
- }
- }
- if (fileinfo->scninfo[cnt].symbols->name == NULL)
- error (EXIT_FAILURE, 0, gettext ("\
-%s: cannot determine signature of section group [%2zd] '%s': %s"),
- fileinfo->fname,
- elf_ndxscn (fileinfo->scninfo[cnt].scn),
- elf_strptr (fileinfo->elf, fileinfo->shstrndx,
- shdr->sh_name),
- elf_errmsg (-1));
-
- /* The 'used' flag is used to indicate when the information
- in the section group is used to mark all other sections
- as used. So it must not be true yet. */
- assert (fileinfo->scninfo[cnt].used == false);
- }
- else if (! SECTION_TYPE_P (&ld_state, shdr->sh_type)
- && unlikely ((shdr->sh_flags & SHF_OS_NONCONFORMING) != 0))
- /* According to the gABI it is a fatal error if the file contains
- a section with unknown type and the SHF_OS_NONCONFORMING flag
- set. */
- error (EXIT_FAILURE, 0,
- gettext ("%s: section '%s' has unknown type: %d"),
- fileinfo->fname,
- elf_strptr (fileinfo->elf, fileinfo->shstrndx,
- shdr->sh_name),
- (int) shdr->sh_type);
- /* We don't have to add a few section types here. These will be
- generated from scratch for the new output file. We also
- don't add the sections of DSOs here since these sections are
- not used in the resulting object file. */
- else if (likely (fileinfo->file_type == relocatable_file_type)
- && likely (cnt > 0)
- && likely (shdr->sh_type == SHT_PROGBITS
- || shdr->sh_type == SHT_RELA
- || shdr->sh_type == SHT_REL
- || shdr->sh_type == SHT_NOTE
- || shdr->sh_type == SHT_NOBITS
- || shdr->sh_type == SHT_INIT_ARRAY
- || shdr->sh_type == SHT_FINI_ARRAY
- || shdr->sh_type == SHT_PREINIT_ARRAY))
- add_section (fileinfo, &fileinfo->scninfo[cnt]);
- }
-
- /* Handle the symbols. Record defined and undefined symbols in the
- hash table. In theory there can be a file without any symbol
- table. */
- if (likely (symtabdata != NULL))
- {
- /* In case this file contains merge-able sections we have to
- locate the symbols which are in these sections. */
- fileinfo->has_merge_sections = has_merge_sections;
- if (likely (has_merge_sections))
- {
- fileinfo->symref = (struct symbol **)
- obstack_calloc (&ld_state.smem,
- nsymbols * sizeof (struct symbol *));
-
- /* Only handle the local symbols here. */
- for (cnt = 0; cnt < nlocalsymbols; ++cnt)
- {
- Elf32_Word shndx;
- XElf_Sym_vardef (sym);
-
- xelf_getsymshndx (symtabdata, xndxdata, cnt, sym, shndx);
- if (sym == NULL)
- {
- /* This should never happen. */
- fprintf (stderr, gettext ("%s: invalid ELF file (%s:%d)\n"),
- fileinfo->rfname, __FILE__, __LINE__);
- return 1;
- }
-
- if (likely (shndx != SHN_XINDEX))
- shndx = sym->st_shndx;
- else if (unlikely (shndx == 0))
- {
- fprintf (stderr, gettext ("%s: invalid ELF file (%s:%d)\n"),
- fileinfo->rfname, __FILE__, __LINE__);
- return 1;
- }
-
- if (XELF_ST_TYPE (sym->st_info) != STT_SECTION
- && (shndx < SHN_LORESERVE || shndx > SHN_HIRESERVE)
- && (SCNINFO_SHDR (fileinfo->scninfo[shndx].shdr).sh_flags
- & SHF_MERGE))
- {
- /* Create a symbol record for this symbol and add it
- to the list for this section. */
- struct symbol *newp;
-
- newp = (struct symbol *)
- obstack_calloc (&ld_state.smem, sizeof (struct symbol));
-
- newp->symidx = cnt;
- newp->scndx = shndx;
- newp->file = fileinfo;
- fileinfo->symref[cnt] = newp;
-
- if (fileinfo->scninfo[shndx].symbols == NULL)
- fileinfo->scninfo[shndx].symbols = newp->next_in_scn
- = newp;
- else
- {
- newp->next_in_scn
- = fileinfo->scninfo[shndx].symbols->next_in_scn;
- fileinfo->scninfo[shndx].symbols
- = fileinfo->scninfo[shndx].symbols->next_in_scn = newp;
- }
- }
- }
- }
- else
- /* Create array with pointers to the symbol definitions. Note
- that we only allocate memory for the non-local symbols
- since we have no merge-able sections. But we store the
- pointer as if it was for the whole symbol table. This
- saves some memory. */
- fileinfo->symref = (struct symbol **)
- obstack_calloc (&ld_state.smem, ((nsymbols - nlocalsymbols)
- * sizeof (struct symbol *)))
- - nlocalsymbols;
-
- /* Don't handle local symbols here. It's either not necessary
- at all or has already happened. */
- for (cnt = nlocalsymbols; cnt < nsymbols; ++cnt)
- {
- XElf_Sym_vardef (sym);
- Elf32_Word shndx;
- xelf_getsymshndx (symtabdata, xndxdata, cnt, sym, shndx);
-
- if (sym == NULL)
- {
- /* This should never happen. */
- fprintf (stderr, gettext ("%s: invalid ELF file (%s:%d)\n"),
- fileinfo->rfname, __FILE__, __LINE__);
- return 1;
- }
-
- if (likely (shndx != SHN_XINDEX))
- shndx = sym->st_shndx;
- else if (unlikely (shndx == 0))
- {
- fprintf (stderr, gettext ("%s: invalid ELF file (%s:%d)\n"),
- fileinfo->rfname, __FILE__, __LINE__);
- return 1;
- }
-
- /* We ignore ABS symbols from DSOs. */
- // XXX Is this correct?
- if (unlikely (shndx == SHN_ABS) && secttype == SHT_DYNSYM)
- continue;
-
- /* If the DSO uses symbols determine whether this is the default
- version. Otherwise we'll ignore the symbol. */
- if (versymdata != NULL)
- {
- XElf_Versym versym;
-
- if (xelf_getversym_copy (versymdata, cnt, versym) == NULL)
- /* XXX Should we handle faulty input files more graceful? */
- assert (! "xelf_getversym failed");
-
- if ((versym & 0x8000) != 0)
- /* Ignore the symbol, it's not the default version. */
- continue;
- }
-
- /* See whether we know anything about this symbol. */
- struct symbol search;
- search.name = elf_strptr (fileinfo->elf, symstridx, sym->st_name);
- unsigned long int hval = elf_hash (search.name);
-
- /* We ignore the symbols the linker generates. This are
- _GLOBAL_OFFSET_TABLE_, _DYNAMIC. */
- // XXX This loop is hot and the following tests hardly ever match.
- // XXX Maybe move the tests somewhere they are executed less often.
- if (((unlikely (hval == 165832675)
- && strcmp (search.name, "_DYNAMIC") == 0)
- || (unlikely (hval == 102264335)
- && strcmp (search.name, "_GLOBAL_OFFSET_TABLE_") == 0))
- && sym->st_shndx != SHN_UNDEF
- /* If somebody defines such a variable in a relocatable we
- don't ignore it. Let the user get what s/he deserves. */
- && fileinfo->file_type != relocatable_file_type)
- continue;
-
- struct symbol *oldp = ld_symbol_tab_find (&ld_state.symbol_tab,
- hval, &search);
- struct symbol *newp;
- if (likely (oldp == NULL))
- {
- /* No symbol of this name know. Add it. */
- newp = (struct symbol *) obstack_alloc (&ld_state.smem,
- sizeof (*newp));
- newp->name = search.name;
- newp->size = sym->st_size;
- newp->type = XELF_ST_TYPE (sym->st_info);
- newp->symidx = cnt;
- newp->outsymidx = 0;
- newp->outdynsymidx = 0;
- newp->scndx = shndx;
- newp->file = fileinfo;
- newp->defined = newp->scndx != SHN_UNDEF;
- newp->common = newp->scndx == SHN_COMMON;
- newp->weak = XELF_ST_BIND (sym->st_info) == STB_WEAK;
- newp->added = 0;
- newp->merged = 0;
- newp->need_copy = 0;
- newp->on_dsolist = 0;
- newp->in_dso = secttype == SHT_DYNSYM;
- newp->next_in_scn = NULL;
-#ifndef NDEBUG
- newp->next = NULL;
- newp->previous = NULL;
-#endif
-
- if (newp->scndx == SHN_UNDEF)
- {
- CDBL_LIST_ADD_REAR (ld_state.unresolved, newp);
- ++ld_state.nunresolved;
- if (! newp->weak)
- ++ld_state.nunresolved_nonweak;
- }
- else if (newp->scndx == SHN_COMMON)
- {
- /* Store the alignment requirement. */
- newp->merge.value = sym->st_value;
-
- CDBL_LIST_ADD_REAR (ld_state.common_syms, newp);
- }
-
- /* Insert the new symbol. */
- if (unlikely (ld_symbol_tab_insert (&ld_state.symbol_tab,
- hval, newp) != 0))
- /* This cannot happen. */
- abort ();
-
- fileinfo->symref[cnt] = newp;
-
- /* We have a few special symbols to recognize. The symbols
- _init and _fini are the initialization and finalization
- functions respectively. They have to be made known in
- the dynamic section and therefore we have to find out
- now whether these functions exist or not. */
- if (hval == 6685956 && strcmp (newp->name, "_init") == 0)
- ld_state.init_symbol = newp;
- else if (hval == 6672457 && strcmp (newp->name, "_fini") == 0)
- ld_state.fini_symbol = newp;
- }
- else if (unlikely (check_definition (sym, cnt, fileinfo, oldp) != 0))
- /* A fatal error (multiple definition of a symbol)
- occurred, no need to continue. */
- return 1;
- else
- /* Use the previously allocated symbol record. It has
- been updated in check_definition(), if necessary. */
- newp = fileinfo->symref[cnt] = oldp;
-
- /* Mark the section the symbol we need comes from as used. */
- if (shndx != SHN_UNDEF
- && (shndx < SHN_LORESERVE || shndx > SHN_HIRESERVE))
- {
- struct scninfo *ignore;
-
-#ifndef NDEBUG
- size_t shnum;
- assert (elf_getshnum (fileinfo->elf, &shnum) == 0);
- assert (shndx < shnum);
-#endif
-
- /* Mark section (and all dependencies) as used. */
- mark_section_used (&fileinfo->scninfo[shndx], shndx, &ignore);
-
- /* Check whether the section is merge-able. In this case we
- have to record the symbol. */
- if (SCNINFO_SHDR (fileinfo->scninfo[shndx].shdr).sh_flags
- & SHF_MERGE)
- {
- if (fileinfo->scninfo[shndx].symbols == NULL)
- fileinfo->scninfo[shndx].symbols = newp->next_in_scn
- = newp;
- else
- {
- newp->next_in_scn
- = fileinfo->scninfo[shndx].symbols->next_in_scn;
- fileinfo->scninfo[shndx].symbols
- = fileinfo->scninfo[shndx].symbols->next_in_scn = newp;
- }
- }
- }
- }
-
- /* This file is used. */
- if (likely (fileinfo->file_type == relocatable_file_type))
- {
- if (unlikely (ld_state.relfiles == NULL))
- ld_state.relfiles = fileinfo->next = fileinfo;
- else
- {
- fileinfo->next = ld_state.relfiles->next;
- ld_state.relfiles = ld_state.relfiles->next = fileinfo;
- }
-
- /* Update some summary information in the state structure. */
- ld_state.nsymtab += fileinfo->nsymtab;
- ld_state.nlocalsymbols += fileinfo->nlocalsymbols;
- }
- else if (likely (fileinfo->file_type == dso_file_type))
- {
- CSNGL_LIST_ADD_REAR (ld_state.dsofiles, fileinfo);
- ++ld_state.ndsofiles;
-
- if (fileinfo->lazyload)
- /* We have to create another dynamic section entry for the
- DT_POSFLAG_1 entry.
-
- XXX Once more functionality than the lazyloading flag
- are suppported the test must be extended. */
- ++ld_state.ndsofiles;
- }
- }
-
- return 0;
-}
-
-
-int
-ld_handle_filename_list (struct filename_list *fnames)
-{
- struct filename_list *runp;
- int res = 0;
-
- for (runp = fnames; runp != NULL; runp = runp->next)
- {
- struct usedfiles *curp;
-
- /* Create a record for the new file. */
- curp = runp->real = ld_new_inputfile (runp->name, relocatable_file_type);
-
- /* Set flags for group handling. */
- runp->real->group_start = runp->group_start;
- runp->real->group_end = runp->group_end;
-
- /* Read the file and everything else which comes up, including
- handling groups. */
- do
- res |= FILE_PROCESS (-1, curp, &ld_state, &curp);
- while (curp != NULL);
- }
-
- /* Free the list. */
- while (fnames != NULL)
- {
- runp = fnames;
- fnames = fnames->next;
- free (runp);
- }
-
- return res;
-}
-
-
-/* Handle opening of the given file with ELF descriptor. */
-static int
-open_elf (struct usedfiles *fileinfo, Elf *elf)
-{
- int res = 0;
-
- if (elf == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get descriptor for ELF file (%s:%d): %s\n"),
- __FILE__, __LINE__, elf_errmsg (-1));
-
- if (unlikely (elf_kind (elf) == ELF_K_NONE))
- {
- struct filename_list *fnames;
-
- /* We don't have to look at this file again. */
- fileinfo->status = closed;
-
- /* Let's see whether this is a linker script. */
- if (fileinfo->fd != -1)
- /* Create a stream from the file handle we know. */
- ldin = fdopen (fileinfo->fd, "r");
- else
- {
- /* Get the memory for the archive member. */
- char *content;
- size_t contentsize;
-
- /* Get the content of the file. */
- content = elf_rawfile (elf, &contentsize);
- if (content == NULL)
- {
- fprintf (stderr, gettext ("%s: invalid ELF file (%s:%d)\n"),
- fileinfo->rfname, __FILE__, __LINE__);
- return 1;
- }
-
- /* The content of the file is available in memory. Read the
- memory region as a stream. */
- ldin = fmemopen (content, contentsize, "r");
- }
-
- /* No need for locking. */
- __fsetlocking (ldin, FSETLOCKING_BYCALLER);
-
- if (ldin == NULL)
- error (EXIT_FAILURE, errno, gettext ("cannot open \"%s\""),
- fileinfo->rfname);
-
- /* Parse the file. If it is a linker script no problems will be
- reported. */
- ld_state.srcfiles = NULL;
- ldlineno = 1;
- ld_scan_version_script = 0;
- ldin_fname = fileinfo->rfname;
- res = ldparse ();
-
- fclose (ldin);
- if (fileinfo->fd != -1 && !fileinfo->fd_passed)
- {
- /* We won't need the file descriptor again. */
- close (fileinfo->fd);
- fileinfo->fd = -1;
- }
-
- elf_end (elf);
-
- if (unlikely (res != 0))
- /* Something went wrong during parsing. */
- return 1;
-
- /* This is no ELF file. */
- fileinfo->elf = NULL;
-
- /* Now we have to handle eventual INPUT and GROUP statements in
- the script. Read the files mentioned. */
- fnames = ld_state.srcfiles;
- if (fnames != NULL)
- {
- struct filename_list *oldp;
-
- /* Convert the list into a normal single-linked list. */
- oldp = fnames;
- fnames = fnames->next;
- oldp->next = NULL;
-
- /* Remove the list from the state structure. */
- ld_state.srcfiles = NULL;
-
- if (unlikely (ld_handle_filename_list (fnames) != 0))
- return 1;
- }
-
- return 0;
- }
-
- /* Store the file info. */
- fileinfo->elf = elf;
-
- /* The file is ready for action. */
- fileinfo->status = opened;
-
- return 0;
-}
-
-
-static int
-add_whole_archive (struct usedfiles *fileinfo)
-{
- Elf *arelf;
- Elf_Cmd cmd = ELF_C_READ_MMAP_PRIVATE;
- int res = 0;
-
- while ((arelf = elf_begin (fileinfo->fd, cmd, fileinfo->elf)) != NULL)
- {
- Elf_Arhdr *arhdr = elf_getarhdr (arelf);
- struct usedfiles *newp;
-
- if (arhdr == NULL)
- abort ();
-
- /* Just to be sure; since these are no files in the archive
- these names should never be returned. */
- assert (strcmp (arhdr->ar_name, "/") != 0);
- assert (strcmp (arhdr->ar_name, "//") != 0);
-
- newp = ld_new_inputfile (arhdr->ar_name, relocatable_file_type);
- newp->archive_file = fileinfo;
-
- if (unlikely (ld_state.trace_files))
- print_file_name (stdout, newp, 1, 1);
-
- /* This shows that this file is contained in an archive. */
- newp->fd = -1;
- /* Store the ELF descriptor. */
- newp->elf = arelf;
- /* Show that we are open for business. */
- newp->status = opened;
-
- /* Proces the file, add all the symbols etc. */
- res = file_process2 (newp);
- if (unlikely (res != 0))
- break;
-
- /* Advance to the next archive element. */
- cmd = elf_next (arelf);
- }
-
- return res;
-}
-
-
-static int
-extract_from_archive (struct usedfiles *fileinfo)
-{
- static int archive_seq;
- int res = 0;
-
- /* This is an archive we are not using completely. Give it a
- unique number. */
- fileinfo->archive_seq = ++archive_seq;
-
- /* If there are no unresolved symbols don't do anything. */
- if ((likely (ld_state.extract_rule == defaultextract)
- && ld_state.nunresolved_nonweak == 0)
- || (unlikely (ld_state.extract_rule == weakextract)
- && ld_state.nunresolved == 0))
- return 0;
-
- Elf_Arsym *syms;
- size_t nsyms;
-
- /* Get all the symbols. */
- syms = elf_getarsym (fileinfo->elf, &nsyms);
- if (syms == NULL)
- {
- cannot_read_archive:
- error (0, 0, gettext ("cannot read archive `%s': %s"),
- fileinfo->rfname, elf_errmsg (-1));
-
- /* We cannot use this archive anymore. */
- fileinfo->status = closed;
-
- return 1;
- }
-
- /* Now add all the symbols to the hash table. Note that there
- can potentially be duplicate definitions. We'll always use
- the first definition. */
- // XXX Is this a compatible behavior?
- bool any_used;
- int nround = 0;
- do
- {
- any_used = false;
-
- size_t cnt;
- for (cnt = 0; cnt < nsyms; ++cnt)
- {
- struct symbol search = { .name = syms[cnt].as_name };
- struct symbol *sym = ld_symbol_tab_find (&ld_state.symbol_tab,
- syms[cnt].as_hash, &search);
- if (sym != NULL && ! sym->defined)
- {
- /* The symbol is referenced and not defined. */
- Elf *arelf;
- Elf_Arhdr *arhdr;
- struct usedfiles *newp;
-
- /* Find the archive member for this symbol. */
- if (unlikely (elf_rand (fileinfo->elf, syms[cnt].as_off)
- != syms[cnt].as_off))
- goto cannot_read_archive;
-
- /* Note: no test of a failing 'elf_begin' call. That's fine
- since 'elf'getarhdr' will report the problem. */
- arelf = elf_begin (fileinfo->fd, ELF_C_READ_MMAP_PRIVATE,
- fileinfo->elf);
- arhdr = elf_getarhdr (arelf);
- if (arhdr == NULL)
- goto cannot_read_archive;
-
- /* We have all the information and an ELF handle for the
- archive member. Create the normal data structure for
- a file now. */
- newp = ld_new_inputfile (obstack_strdup (&ld_state.smem,
- arhdr->ar_name),
- relocatable_file_type);
- newp->archive_file = fileinfo;
-
- if (unlikely (ld_state.trace_files))
- print_file_name (stdout, newp, 1, 1);
-
- /* This shows that this file is contained in an archive. */
- newp->fd = -1;
- /* Store the ELF descriptor. */
- newp->elf = arelf;
- /* Show that we are open for business. */
- newp->status = in_archive;
-
- /* Now read the file and add all the symbols. */
- res = file_process2 (newp);
- if (unlikely (res != 0))
- return res;
-
- any_used = true;
- }
- }
-
- if (++nround == 1)
- {
- /* This is an archive therefore it must have a number. */
- assert (fileinfo->archive_seq != 0);
- ld_state.last_archive_used = fileinfo->archive_seq;
- }
- }
- while (any_used);
-
- return res;
-}
-
-
-static int
-file_process2 (struct usedfiles *fileinfo)
-{
- int res;
-
- if (likely (elf_kind (fileinfo->elf) == ELF_K_ELF))
- {
- /* The first time we get here we read the ELF header. */
-#if NATIVE_ELF != 0
- if (likely (fileinfo->ehdr == NULL))
-#else
- if (likely (FILEINFO_EHDR (fileinfo->ehdr).e_type == ET_NONE))
-#endif
- {
- XElf_Ehdr *ehdr;
-#if NATIVE_ELF != 0
- ehdr = xelf_getehdr (fileinfo->elf, fileinfo->ehdr);
-#else
- xelf_getehdr_copy (fileinfo->elf, ehdr, fileinfo->ehdr);
-#endif
- if (ehdr == NULL)
- {
- fprintf (stderr, gettext ("%s: invalid ELF file (%s:%d)\n"),
- fileinfo->rfname, __FILE__, __LINE__);
- fileinfo->status = closed;
- return 1;
- }
-
- if (FILEINFO_EHDR (fileinfo->ehdr).e_type != ET_REL
- && unlikely (FILEINFO_EHDR (fileinfo->ehdr).e_type != ET_DYN))
- /* XXX Add ebl* function to query types which are allowed
- to link in. */
- {
- char buf[64];
-
- print_file_name (stderr, fileinfo, 1, 0);
- fprintf (stderr,
- gettext ("file of type %s cannot be linked in\n"),
- ebl_object_type_name (ld_state.ebl,
- FILEINFO_EHDR (fileinfo->ehdr).e_type,
- buf, sizeof (buf)));
- fileinfo->status = closed;
- return 1;
- }
-
- /* Determine the section header string table section index. */
- if (unlikely (elf_getshstrndx (fileinfo->elf, &fileinfo->shstrndx)
- < 0))
- {
- fprintf (stderr, gettext ("\
-%s: cannot get section header string table index: %s\n"),
- fileinfo->rfname, elf_errmsg (-1));
- fileinfo->status = closed;
- return 1;
- }
- }
-
- /* Now handle the different types of files. */
- if (FILEINFO_EHDR (fileinfo->ehdr).e_type == ET_REL)
- {
- /* Add all the symbol. Relocatable files have symbol
- tables. */
- res = add_relocatable_file (fileinfo, SHT_SYMTAB);
- }
- else
- {
- bool has_l_name = fileinfo->file_type == archive_file_type;
-
- assert (FILEINFO_EHDR (fileinfo->ehdr).e_type == ET_DYN);
-
- /* If the file is a DT_NEEDED dependency then the type is
- already correctly specified. */
- if (fileinfo->file_type != dso_needed_file_type)
- fileinfo->file_type = dso_file_type;
-
- /* We cannot use DSOs when generating relocatable objects. */
- if (ld_state.file_type == relocatable_file_type)
- {
- error (0, 0, gettext ("\
-cannot use DSO '%s' when generating relocatable object file"),
- fileinfo->fname);
- return 1;
- }
-
- /* Add all the symbols. For DSOs we are looking at the
- dynamic symbol table. */
- res = add_relocatable_file (fileinfo, SHT_DYNSYM);
-
- /* We always have to have a dynamic section. */
- assert (fileinfo->dynscn != NULL);
-
- /* We have to remember the dependencies for this object. It
- is necessary to look them up. */
- XElf_Shdr_vardef (dynshdr);
- xelf_getshdr (fileinfo->dynscn, dynshdr);
-
- Elf_Data *dyndata = elf_getdata (fileinfo->dynscn, NULL);
- /* XXX Should we flag the failure to get the dynamic section? */
- if (dynshdr != NULL)
- {
- int cnt = dynshdr->sh_size / dynshdr->sh_entsize;
- XElf_Dyn_vardef (dyn);
-
- while (--cnt >= 0)
- {
- xelf_getdyn (dyndata, cnt, dyn);
- if (dyn != NULL)
- {
- if(dyn->d_tag == DT_NEEDED)
- {
- struct usedfiles *newp;
-
- newp = ld_new_inputfile (elf_strptr (fileinfo->elf,
- dynshdr->sh_link,
- dyn->d_un.d_val),
- dso_needed_file_type);
-
- /* Enqueue the newly found dependencies. */
- // XXX Check that there not already a file with the
- // same name.
- CSNGL_LIST_ADD_REAR (ld_state.needed, newp);
- }
- else if (dyn->d_tag == DT_SONAME)
- {
- /* We use the DT_SONAME (this is what's there
- for). */
- fileinfo->soname = elf_strptr (fileinfo->elf,
- dynshdr->sh_link,
- dyn->d_un.d_val);
- has_l_name = false;
- }
- }
- }
- }
-
- /* Construct the file name if the DSO has no SONAME and the
- file name comes from a -lXX parameter on the comment
- line. */
- if (unlikely (has_l_name))
- {
- /* The FNAME is the parameter the user specified on the
- command line. We prepend "lib" and append ".so". */
- size_t len = strlen (fileinfo->fname) + 7;
- char *newp;
-
- newp = (char *) obstack_alloc (&ld_state.smem, len);
- strcpy (stpcpy (stpcpy (newp, "lib"), fileinfo->fname), ".so");
-
- fileinfo->soname = newp;
- }
- }
- }
- else if (likely (elf_kind (fileinfo->elf) == ELF_K_AR))
- {
- if (unlikely (ld_state.extract_rule == allextract))
- /* Which this option enabled we have to add all the object
- files in the archive. */
- res = add_whole_archive (fileinfo);
- else if (ld_state.file_type == relocatable_file_type)
- {
- /* When generating a relocatable object we don't find files
- in archives. */
- if (verbose)
- error (0, 0, gettext ("input file '%s' ignored"), fileinfo->fname);
-
- res = 0;
- }
- else
- /* Extract only the members from the archive which are
- currently referenced by unresolved symbols. */
- res = extract_from_archive (fileinfo);
- }
- else
- /* This should never happen, we know about no other types. */
- abort ();
-
- return res;
-}
-
-
-/* Process a given file. The first parameter is a file descriptor for
- the file which can be -1 to indicate the file has not yet been
- found. The second parameter describes the file to be opened, the
- last one is the state of the linker which among other information
- contain the paths we look at. */
-static int
-ld_generic_file_process (int fd, struct usedfiles *fileinfo,
- struct ld_state *statep, struct usedfiles **nextp)
-{
- int res = 0;
-
- /* By default we go to the next file in the list. */
- *nextp = fileinfo->next;
-
- /* Set the flag to signal we are looking for a group start. */
- if (unlikely (fileinfo->group_start))
- {
- ld_state.group_start_requested = true;
- fileinfo->group_start = false;
- }
-
- /* If the file isn't open yet, open it now. */
- if (likely (fileinfo->status == not_opened))
- {
- bool fd_passed = true;
-
- if (likely (fd == -1))
- {
- /* Find the file ourselves. */
- int err = open_along_path (fileinfo);
- if (unlikely (err != 0))
- /* We allow libraries and DSOs to be named more than once.
- Don't report an error to the caller. */
- return err == EAGAIN ? 0 : err;
-
- fd_passed = false;
- }
- else
- fileinfo->fd = fd;
-
- /* Remember where we got the descriptor from. */
- fileinfo->fd_passed = fd_passed;
-
- /* We found the file. Now test whether it is a file type we can
- handle.
-
- XXX Do we have to have the ability to start from a given
- position in the search path again to look for another file if
- the one found has not the right type? */
- res = open_elf (fileinfo, elf_begin (fileinfo->fd,
- is_dso_p (fileinfo->fd)
- ? ELF_C_READ_MMAP
- : ELF_C_READ_MMAP_PRIVATE, NULL));
- if (unlikely (res != 0))
- return res;
- }
-
- /* Now that we have opened the file start processing it. */
- if (likely (fileinfo->status != closed))
- res = file_process2 (fileinfo);
-
- /* Determine which file to look at next. */
- if (unlikely (fileinfo->group_backref != NULL))
- {
- /* We only go back if an archive other than the one we would go
- back to has been used in the last round. */
- if (ld_state.last_archive_used > fileinfo->group_backref->archive_seq)
- {
- *nextp = fileinfo->group_backref;
- ld_state.last_archive_used = 0;
- }
- else
- {
- /* If we come here this means that the archives we read so
- far are not needed anymore. We can free some of the data
- now. */
- struct usedfiles *runp = ld_state.archives;
-
- do
- {
- /* We don't need the ELF descriptor anymore. Unless there
- are no files from the archive used this will not free
- the whole file but only some data structures. */
- elf_end (runp->elf);
- runp->elf = NULL;
-
- runp = runp->next;
- }
- while (runp != fileinfo->next);
- }
- }
- else if (unlikely (fileinfo->group_end))
- {
- /* This is the end of a group. We possibly of to go back.
- Determine which file we would go back to and see whether it
- makes sense. If there has not been an archive we don't have
- to do anything. */
- if (!ld_state.group_start_requested)
- {
- if (ld_state.group_start_archive != ld_state.tailarchives)
- /* The loop would include more than one archive, add the
- pointer. */
- {
- *nextp = ld_state.tailarchives->group_backref =
- ld_state.group_start_archive;
- ld_state.last_archive_used = 0;
- }
- else
- /* We might still have to go back to the beginning of the
- group if since the last archive other files have been
- added. But we go back exactly once. */
- if (ld_state.tailarchives != fileinfo)
- {
- *nextp = ld_state.group_start_archive;
- ld_state.last_archive_used = 0;
- }
- }
-
- /* Clear the flags. */
- ld_state.group_start_requested = false;
- fileinfo->group_end = false;
- }
-
- return res;
-}
-
-
-/* Library names passed to the linker as -lXX represent files named
- libXX.YY. The YY part can have different forms, depending on the
- platform. The generic set is .so and .a (in this order). */
-static const char **
-ld_generic_lib_extensions (struct ld_state *statep __attribute__ ((__unused__)))
-{
- static const char *exts[] =
- {
- ".so", ".a", NULL
- };
-
- return exts;
-}
-
-
-/* Flag unresolved symbols. */
-static int
-ld_generic_flag_unresolved (struct ld_state *statep)
-{
- int retval = 0;
-
- if (ld_state.nunresolved_nonweak > 0)
- {
- /* Go through the list and determine the unresolved symbols. */
- struct symbol *first;
- struct symbol *s;
-
- s = first = ld_state.unresolved->next;
- do
- {
- if (! s->defined && ! s->weak)
- {
- /* Two special symbol we recognize: the symbol for the
- GOT and the dynamic section. */
- if (strcmp (s->name, "_GLOBAL_OFFSET_TABLE_") == 0
- || strcmp (s->name, "_DYNAMIC") == 0)
- {
- /* We will have to fill in more information later. */
- ld_state.need_got = true;
-
- /* Remember that we found it. */
- if (s->name[1] == 'G')
- ld_state.got_symbol = s;
- else
- ld_state.dyn_symbol = s;
- }
- else if (ld_state.file_type != dso_file_type || !ld_state.nodefs)
- {
- /* XXX The error message should get better. It should use
- the debugging information if present to tell where in the
- sources the undefined reference is. */
- error (0, 0, gettext ("undefined symbol `%s' in %s"),
- s->name, s->file->fname);
-
- retval = 1;
- }
- }
-
- /* We cannot decide here what to do with undefined
- references which will come from DSO since we do not know
- what kind of symbol we expect. Only when looking at the
- relocations we can see whether we need a PLT entry or
- only a GOT entry. */
-
- s = s->next;
- }
- while (s != first);
- }
-
- return retval;
-}
-
-
-/* Close the given file. */
-static int
-ld_generic_file_close (struct usedfiles *fileinfo, struct ld_state *statep)
-{
- /* Close the ELF descriptor. */
- elf_end (fileinfo->elf);
-
- /* If we have opened the file descriptor close it. But we might
- have done this already in which case FD is -1. */
- if (!fileinfo->fd_passed && fileinfo->fd != -1)
- close (fileinfo->fd);
-
- /* We allocated the resolved file name. */
- if (fileinfo->fname != fileinfo->rfname)
- free ((char *) fileinfo->rfname);
-
- return 0;
-}
-
-
-static void
-new_generated_scn (enum scn_kind kind, const char *name, int type, int flags,
- int entsize, int align)
-{
- struct scnhead *newp;
-
- newp = (struct scnhead *) obstack_calloc (&ld_state.smem,
- sizeof (struct scnhead));
- newp->kind = kind;
- newp->name = name;
- newp->nameent = ebl_strtabadd (ld_state.shstrtab, name, 0);
- newp->type = type;
- newp->flags = flags;
- newp->entsize = entsize;
- newp->align = align;
- newp->grp_signature = NULL;
- newp->used = true;
-
- /* All is well. Create now the data for the section and insert it
- into the section table. */
- ld_section_tab_insert (&ld_state.section_tab, elf_hash (name), newp);
-}
-
-
-/* Create the sections which are generated by the linker and are not
- present in the input file. */
-static void
-ld_generic_generate_sections (struct ld_state *statep)
-{
- /* The relocation section type. */
- int rel_type = REL_TYPE (&ld_state) == DT_REL ? SHT_REL : SHT_RELA;
-
- /* When building dynamically linked object we have to include a
- section containing a string describing the interpreter. This
- should be at the very beginning of the file together with the
- other information the ELF loader (kernel or wherever) has to look
- at. We put it as the first section in the file.
-
- We also have to create the dynamic segment which is a special
- section the dynamic linker locates through an entry in the
- program header. */
- if (dynamically_linked_p ())
- {
- int ndt_needed;
- /* Use any versioning (defined or required)? */
- bool use_versioning = false;
- /* Use version requirements? */
- bool need_version = false;
-
- /* First the .interp section. */
- new_generated_scn (scn_dot_interp, ".interp", SHT_PROGBITS, SHF_ALLOC,
- 0, 1);
-
- /* Now the .dynamic section. */
- new_generated_scn (scn_dot_dynamic, ".dynamic", SHT_DYNAMIC,
- DYNAMIC_SECTION_FLAGS (&ld_state),
- xelf_fsize (ld_state.outelf, ELF_T_DYN, 1),
- xelf_fsize (ld_state.outelf, ELF_T_ADDR, 1));
-
- /* We will need in any case the dynamic symbol table (even in
- the unlikely case that no symbol is exported or referenced
- from a DSO). */
- ld_state.need_dynsym = true;
- new_generated_scn (scn_dot_dynsym, ".dynsym", SHT_DYNSYM, SHF_ALLOC,
- xelf_fsize (ld_state.outelf, ELF_T_SYM, 1),
- xelf_fsize (ld_state.outelf, ELF_T_ADDR, 1));
- /* It comes with a string table. */
- new_generated_scn (scn_dot_dynstr, ".dynstr", SHT_STRTAB, SHF_ALLOC,
- 0, 1);
- /* And a hashing table. */
- // XXX For Linux/Alpha we need other sizes unless they change...
- new_generated_scn (scn_dot_hash, ".hash", SHT_HASH, SHF_ALLOC,
- sizeof (Elf32_Word), sizeof (Elf32_Word));
-
- /* By default we add all DSOs provided on the command line. If
- the user added '-z ignore' to the command line we only add
- those which are actually used. */
- ndt_needed = ld_state.ignore_unused_dsos ? 0 : ld_state.ndsofiles;
-
- /* Create the section associated with the PLT if necessary. */
- if (ld_state.nplt > 0)
- {
- /* Create the .plt section. */
- /* XXX We might need a function which returns the section flags. */
- new_generated_scn (scn_dot_plt, ".plt", SHT_PROGBITS,
- SHF_ALLOC | SHF_EXECINSTR,
- /* XXX Is the size correct? */
- xelf_fsize (ld_state.outelf, ELF_T_ADDR, 1),
- xelf_fsize (ld_state.outelf, ELF_T_ADDR, 1));
-
- /* Create the relocation section for the .plt. This is always
- separate even if the other relocation sections are combined. */
- new_generated_scn (scn_dot_pltrel, ".rel.plt", rel_type, SHF_ALLOC,
- rel_type == SHT_REL
- ? xelf_fsize (ld_state.outelf, ELF_T_REL, 1)
- : xelf_fsize (ld_state.outelf, ELF_T_RELA, 1),
- xelf_fsize (ld_state.outelf, ELF_T_ADDR, 1));
-
- /* This means we will also need the .got section. */
- ld_state.need_got = true;
-
- /* Mark all used DSOs as used. Determine whether any referenced
- object uses symbol versioning. */
- if (ld_state.from_dso != NULL)
- {
- struct symbol *srunp = ld_state.from_dso;
-
- do
- {
- srunp->file->used = true;
-
- if (srunp->file->verdefdata != NULL)
- {
- XElf_Versym versym;
-
- /* The input DSO uses versioning. */
- use_versioning = true;
- /* We reference versions. */
- need_version = true;
-
- if (xelf_getversym_copy (srunp->file->versymdata,
- srunp->symidx, versym) == NULL)
- assert (! "xelf_getversym failed");
-
- /* We cannot link explicitly with an older
- version of a symbol. */
- assert ((versym & 0x8000) == 0);
- /* We cannot reference local (index 0) or plain
- global (index 1) versions. */
- assert (versym > 1);
-
- /* Check whether we have already seen the
- version and if not add it to the referenced
- versions in the output file. */
- if (! srunp->file->verdefused[versym])
- {
- srunp->file->verdefused[versym] = 1;
-
- if (++srunp->file->nverdefused == 1)
- /* Count the file if it is using versioning. */
- ++ld_state.nverdeffile;
- ++ld_state.nverdefused;
- }
- }
- }
- while ((srunp = srunp->next) != ld_state.from_dso);
- }
-
- /* Create the sections used to record version dependencies. */
- if (need_version)
- new_generated_scn (scn_dot_version_r, ".gnu.version_r",
- SHT_GNU_verneed, SHF_ALLOC, 0,
- xelf_fsize (ld_state.outelf, ELF_T_WORD, 1));
-
- /* Now count the used DSOs since this is what the user
- wants. */
- ndt_needed = 0;
- if (ld_state.ndsofiles > 0)
- {
- struct usedfiles *frunp = ld_state.dsofiles;
-
- do
- if (! ld_state.ignore_unused_dsos || frunp->used)
- {
- ++ndt_needed;
- if (frunp->lazyload)
- /* We have to create another dynamic section
- entry for the DT_POSFLAG_1 entry.
-
- XXX Once more functionality than the
- lazyloading flag are suppported the test
- must be extended. */
- ++ndt_needed;
- }
- while ((frunp = frunp->next) != ld_state.dsofiles);
- }
- }
-
- if (use_versioning)
- new_generated_scn (scn_dot_version, ".gnu.version", SHT_GNU_versym,
- SHF_ALLOC,
- xelf_fsize (ld_state.outelf, ELF_T_HALF, 1),
- xelf_fsize (ld_state.outelf, ELF_T_HALF, 1));
-
- /* We need some entries all the time. */
- ld_state.ndynamic = (7 + (ld_state.runpath != NULL
- || ld_state.rpath != NULL)
- + ndt_needed
- + (ld_state.init_symbol != NULL ? 1 : 0)
- + (ld_state.fini_symbol != NULL ? 1 : 0)
- + (use_versioning ? 1 : 0)
- + (need_version ? 2 : 0)
- + (ld_state.nplt > 0 ? 4 : 0)
- + (ld_state.relsize_total > 0 ? 3 : 0));
- }
-
- /* When creating a relocatable file or when we are not stripping the
- output file we create a symbol table. */
- ld_state.need_symtab = (ld_state.file_type == relocatable_file_type
- || ld_state.strip == strip_none);
-
- /* Add the .got section if needed. */
- if (ld_state.need_got)
- /* XXX We might need a function which returns the section flags. */
- new_generated_scn (scn_dot_got, ".got", SHT_PROGBITS,
- SHF_ALLOC | SHF_WRITE,
- xelf_fsize (ld_state.outelf, ELF_T_ADDR, 1),
- xelf_fsize (ld_state.outelf, ELF_T_ADDR, 1));
-
- /* Add the .rel.dyn section. */
- if (ld_state.relsize_total > 0)
- new_generated_scn (scn_dot_dynrel, ".rel.dyn", rel_type, SHF_ALLOC,
- rel_type == SHT_REL
- ? xelf_fsize (ld_state.outelf, ELF_T_REL, 1)
- : xelf_fsize (ld_state.outelf, ELF_T_RELA, 1),
- xelf_fsize (ld_state.outelf, ELF_T_ADDR, 1));
-}
-
-
-/* Callback function registered with on_exit to make sure the temporary
- files gets removed if something goes wrong. */
-static void
-remove_tempfile (int status, void *arg)
-{
- if (status != 0 && ld_state.tempfname != NULL)
- unlink (ld_state.tempfname);
-}
-
-
-/* Create the output file. The file name is given or "a.out". We
- create as much of the ELF structure as possible. */
-static int
-ld_generic_open_outfile (struct ld_state *statep, int machine, int klass,
- int data)
-{
- /* We do not create the new file right away with the final name.
- This would destroy an existing file with this name before a
- replacement is finalized. We create instead a temporary file in
- the same directory. */
- if (ld_state.outfname == NULL)
- ld_state.outfname = "a.out";
-
- size_t outfname_len = strlen (ld_state.outfname);
- char *tempfname = (char *) obstack_alloc (&ld_state.smem,
- outfname_len + sizeof (".XXXXXX"));
- ld_state.tempfname = tempfname;
-
- int fd;
- int try = 0;
- while (1)
- {
- strcpy (mempcpy (tempfname, ld_state.outfname, outfname_len), ".XXXXXX");
-
- /* The useof mktemp() here is fine. We do not want to use
- mkstemp() since then the umask isn't used. And the output
- file will have these permissions anyhow. Any intruder could
- change the file later if it would be possible now. */
- if (mktemp (tempfname) != NULL
- && (fd = open (tempfname, O_RDWR | O_EXCL | O_CREAT | O_NOFOLLOW,
- ld_state.file_type == relocatable_file_type
- ? DEFFILEMODE : ACCESSPERMS)) != -1)
- break;
-
- /* Failed this round. We keep trying a number of times. */
- if (++try >= 10)
- error (EXIT_FAILURE, errno, gettext ("cannot create output file"));
- }
- ld_state.outfd = fd;
-
- /* Make sure we remove the temporary file in case something goes
- wrong. */
- on_exit (remove_tempfile, NULL);
-
- /* Create the ELF file data for the output file. */
- Elf *elf = ld_state.outelf = elf_begin (fd,
- conserve_memory
- ? ELF_C_WRITE : ELF_C_WRITE_MMAP,
- NULL);
- if (elf == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create ELF descriptor for output file: %s"),
- elf_errmsg (-1));
-
- /* Create the basic data structures. */
- if (! xelf_newehdr (elf, klass))
- /* Couldn't create the ELF header. Very bad. */
- error (EXIT_FAILURE, 0,
- gettext ("could not create ELF header for output file: %s"),
- elf_errmsg (-1));
-
- /* And get the current header so that we can modify it. */
- XElf_Ehdr_vardef (ehdr);
- xelf_getehdr (elf, ehdr);
- assert (ehdr != NULL);
-
- /* Set the machine type. */
- ehdr->e_machine = machine;
-
- /* Modify it according to the info we have here and now. */
- if (ld_state.file_type == executable_file_type)
- ehdr->e_type = ET_EXEC;
- else if (ld_state.file_type == dso_file_type)
- ehdr->e_type = ET_DYN;
- else
- {
- assert (ld_state.file_type == relocatable_file_type);
- ehdr->e_type = ET_REL;
- }
-
- /* Set the ELF version. */
- ehdr->e_version = EV_CURRENT;
-
- /* Set the endianness. */
- ehdr->e_ident[EI_DATA] = data;
-
- /* Write the ELF header information back. */
- (void) xelf_update_ehdr (elf, ehdr);
-
- return 0;
-}
-
-
-/* We compute the offsets of the various copied objects and the total
- size of the memory needed. */
-// XXX The method used here is simple: go from front to back and pack
-// the objects in this order. A more space efficient way would
-// actually trying to pack the objects as dense as possible. But this
-// is more expensive.
-static void
-compute_copy_reloc_offset (XElf_Shdr *shdr)
-{
- struct symbol *runp = ld_state.from_dso;
- assert (runp != NULL);
-
- XElf_Off maxalign = 1;
- XElf_Off offset = 0;
-
- do
- if (runp->need_copy)
- {
- /* Determine alignment for the symbol. */
- // XXX The question is how? The symbol record itself does not
- // have the information. So we have to be conservative and
- // assume the alignment of the section the symbol is in.
-
- // XXX We can be more precise. Use the offset from the beginning
- // of the section and determine the largest power of two with
- // module zero.
- XElf_Off symalign = MAX (SCNINFO_SHDR (runp->file->scninfo[runp->scndx].shdr).sh_addralign, 1);
- /* Keep track of the maximum alignment requirement. */
- maxalign = MAX (maxalign, symalign);
-
- /* Align current position. */
- offset = (offset + symalign - 1) & ~(symalign - 1);
-
- runp->merge.value = offset;
-
- offset += runp->size;
- }
- while ((runp = runp->next) != ld_state.from_dso);
-
- shdr->sh_type = SHT_NOBITS;
- shdr->sh_size = offset;
- shdr->sh_addralign = maxalign;
-}
-
-
-static void
-compute_common_symbol_offset (XElf_Shdr *shdr)
-{
- struct symbol *runp = ld_state.common_syms;
- assert (runp != NULL);
-
- XElf_Off maxalign = 1;
- XElf_Off offset = 0;
-
- do
- {
- /* Determine alignment for the symbol. */
- XElf_Off symalign = runp->merge.value;
-
- /* Keep track of the maximum alignment requirement. */
- maxalign = MAX (maxalign, symalign);
-
- /* Align current position. */
- offset = (offset + symalign - 1) & ~(symalign - 1);
-
- runp->merge.value = offset;
-
- offset += runp->size;
- }
- while ((runp = runp->next) != ld_state.common_syms);
-
- shdr->sh_type = SHT_NOBITS;
- shdr->sh_size = offset;
- shdr->sh_addralign = maxalign;
-}
-
-
-static void
-sort_sections_generic (void)
-{
- /* XXX TBI */
- abort ();
-}
-
-
-static int
-match_section (const char *osectname, struct filemask_section_name *sectmask,
- struct scnhead **scnhead, bool new_section, size_t segment_nr)
-{
- struct scninfo *prevp;
- struct scninfo *runp;
- struct scninfo *notused;
-
- if (fnmatch (sectmask->section_name->name, (*scnhead)->name, 0) != 0)
- /* The section name does not match. */
- return new_section;
-
- /* If this is a section generated by the linker it doesn't contain
- the regular information (i.e., input section data etc) and must
- be handle special. */
- if ((*scnhead)->kind != scn_normal)
- {
- (*scnhead)->name = osectname;
- (*scnhead)->segment_nr = segment_nr;
-
- /* We have to count note section since they get their own
- program header entry. */
- if ((*scnhead)->type == SHT_NOTE)
- ++ld_state.nnotesections;
-
- ld_state.allsections[ld_state.nallsections++] = (*scnhead);
- return true;
- }
-
- /* Now we have to match the file names of the input files. Some of
- the sections here might not match. */
- runp = (*scnhead)->last->next;
- prevp = (*scnhead)->last;
- notused = NULL;
-
- do
- {
- /* Base of the file name the section comes from. */
- const char *brfname = basename (runp->fileinfo->rfname);
-
- /* If the section isn't used, the name doesn't match the positive
- inclusion list or the name does match the negative inclusion
- list, ignore the section. */
- if (!runp->used
- || (sectmask->filemask != NULL
- && fnmatch (sectmask->filemask, brfname, 0) != 0)
- || (sectmask->excludemask != NULL
- && fnmatch (sectmask->excludemask, brfname, 0) == 0))
- {
- /* This file does not match the file name masks. */
- if (notused == NULL)
- notused = runp;
-
- prevp = runp;
- runp = runp->next;
- if (runp == notused)
- runp = NULL;
- }
- /* The section fulfills all requirements, add it to the output
- file with the correct section name etc. */
- else
- {
- struct scninfo *found = runp;
-
- /* Remove this input section data buffer from the list. */
- if (prevp != runp)
- runp = prevp->next = runp->next;
- else
- {
- free (*scnhead);
- *scnhead = NULL;
- runp = NULL;
- }
-
- /* Create a new section for the output file if the 'new_section'
- flag says so. Otherwise append the buffer to the last
- section which we created in one of the last calls. */
- if (new_section)
- {
- struct scnhead *newp;
-
- newp = (struct scnhead *) obstack_calloc (&ld_state.smem,
- sizeof (*newp));
- newp->kind = scn_normal;
- newp->name = osectname;
- newp->type = SCNINFO_SHDR (found->shdr).sh_type;
- newp->flags = SCNINFO_SHDR (found->shdr).sh_flags;
- newp->segment_nr = segment_nr;
- newp->last = found->next = found;
- newp->used = true;
- newp->relsize = found->relsize;
- newp->entsize = SCNINFO_SHDR (found->shdr).sh_entsize;
-
- /* We have to count note section since they get their own
- program header entry. */
- if (newp->type == SHT_NOTE)
- ++ld_state.nnotesections;
-
- ld_state.allsections[ld_state.nallsections++] = newp;
- new_section = false;
- }
- else
- {
- struct scnhead *queued;
-
- queued = ld_state.allsections[ld_state.nallsections - 1];
-
- found->next = queued->last->next;
- queued->last = queued->last->next = found;
-
- /* If the linker script forces us to add incompatible
- sections together do so. But reflect this in the
- type and flags of the resulting file. */
- if (queued->type != SCNINFO_SHDR (found->shdr).sh_type)
- /* XXX Any better choice? */
- queued->type = SHT_PROGBITS;
- if (queued->flags != SCNINFO_SHDR (found->shdr).sh_flags)
- queued->flags = ebl_sh_flags_combine (ld_state.ebl,
- queued->flags,
- SCNINFO_SHDR (found->shdr).sh_flags);
-
- /* Accumulate the relocation section size. */
- queued->relsize += found->relsize;
- }
- }
- }
- while (runp != NULL);
-
- return new_section;
-}
-
-
-static void
-sort_sections_lscript (void)
-{
- struct scnhead *temp[ld_state.nallsections];
-
- /* Make a copy of the section head pointer array. */
- memcpy (temp, ld_state.allsections,
- ld_state.nallsections * sizeof (temp[0]));
- size_t nallsections = ld_state.nallsections;
-
- /* Convert the output segment list in a single-linked list. */
- struct output_segment *segment = ld_state.output_segments->next;
- ld_state.output_segments->next = NULL;
- ld_state.output_segments = segment;
-
- /* Put the sections in the correct order in the array in the state
- structure. This might involve merging of sections and also
- renaming the containing section in the output file. */
- ld_state.nallsections = 0;
- size_t segment_nr;
- size_t last_writable = ~0;
- for (segment_nr = 0; segment != NULL; segment = segment->next, ++segment_nr)
- {
- struct output_rule *orule;
-
- for (orule = segment->output_rules; orule != NULL; orule = orule->next)
- if (orule->tag == output_section)
- {
- struct input_rule *irule;
- bool new_section = true;
-
- for (irule = orule->val.section.input; irule != NULL;
- irule = irule->next)
- if (irule->tag == input_section)
- {
- size_t cnt;
-
- for (cnt = 0; cnt < nallsections; ++cnt)
- if (temp[cnt] != NULL)
- new_section =
- match_section (orule->val.section.name,
- irule->val.section, &temp[cnt],
- new_section, segment_nr);
- }
- }
-
- if ((segment->mode & PF_W) != 0)
- last_writable = ld_state.nallsections - 1;
- }
-
- /* In case we have to create copy relocations or we have common
- symbols, find the last writable segment and add one more data
- block. It will be a NOBITS block and take up no disk space.
- This is why it is important to get the last block. */
- if (ld_state.ncopy > 0 || ld_state.common_syms != NULL)
- {
- if (last_writable == ~0)
- error (EXIT_FAILURE, 0, "no writable segment");
-
- if (ld_state.allsections[last_writable]->type != SHT_NOBITS)
- {
- /* Make room in the ALLSECTIONS array for a new section.
- There is guaranteed room in the array. We add the new
- entry after the last writable section. */
- ++last_writable;
- memmove (&ld_state.allsections[last_writable + 1],
- &ld_state.allsections[last_writable],
- (ld_state.nallsections - last_writable)
- * sizeof (ld_state.allsections[0]));
-
- ld_state.allsections[last_writable] = (struct scnhead *)
- obstack_calloc (&ld_state.smem, sizeof (struct scnhead));
-
- /* Name for the new section. */
- ld_state.allsections[last_writable]->name = ".bss";
- /* Type: NOBITS. */
- ld_state.allsections[last_writable]->type = SHT_NOBITS;
- /* Same segment as the last writable section. */
- ld_state.allsections[last_writable]->segment_nr
- = ld_state.allsections[last_writable - 1]->segment_nr;
- }
- }
-
- /* Create common symbol data block. */
- if (ld_state.ncopy > 0)
- {
-#if NATIVE_ELF
- struct scninfo *si = (struct scninfo *)
- obstack_calloc (&ld_state.smem, sizeof (*si) + sizeof (XElf_Shdr));
- si->shdr = (XElf_Shdr *) (si + 1);
-#else
- struct scninfo *si = (struct scninfo *) obstack_calloc (&ld_state.smem,
- sizeof (*si));
-#endif
-
- /* Get the information regarding the symbols with copy relocations. */
- compute_copy_reloc_offset (&SCNINFO_SHDR (si->shdr));
-
- /* This section is needed. */
- si->used = true;
- /* Remember for later the section data structure. */
- ld_state.copy_section = si;
-
- if (likely (ld_state.allsections[last_writable]->last != NULL))
- {
- si->next = ld_state.allsections[last_writable]->last->next;
- ld_state.allsections[last_writable]->last->next = si;
- ld_state.allsections[last_writable]->last = si;
- }
- else
- ld_state.allsections[last_writable]->last = si->next = si;
- }
-
- /* Create common symbol data block. */
- if (ld_state.common_syms != NULL)
- {
-#if NATIVE_ELF
- struct scninfo *si = (struct scninfo *)
- obstack_calloc (&ld_state.smem, sizeof (*si) + sizeof (XElf_Shdr));
- si->shdr = (XElf_Shdr *) (si + 1);
-#else
- struct scninfo *si = (struct scninfo *) obstack_calloc (&ld_state.smem,
- sizeof (*si));
-#endif
-
- /* Get the information regarding the symbols with copy relocations. */
- compute_common_symbol_offset (&SCNINFO_SHDR (si->shdr));
-
- /* This section is needed. */
- si->used = true;
- /* Remember for later the section data structure. */
- ld_state.common_section = si;
-
- if (likely (ld_state.allsections[last_writable]->last != NULL))
- {
- si->next = ld_state.allsections[last_writable]->last->next;
- ld_state.allsections[last_writable]->last->next = si;
- ld_state.allsections[last_writable]->last = si;
- }
- else
- ld_state.allsections[last_writable]->last = si->next = si;
- }
-}
-
-
-/* Create the output sections now. This requires knowledge about all
- the sections we will need. It may be necessary to sort sections in
- the order they are supposed to appear in the executable. The
- sorting use many different kinds of information to optimize the
- resulting binary. Important is to respect segment boundaries and
- the needed alignment. The mode of the segments will be determined
- afterwards automatically by the output routines.
-
- The generic sorting routines work in one of two possible ways:
-
- - if a linker script specifies the sections to be used in the
- output and assigns them to a segment this information is used;
-
- - otherwise the linker will order the sections based on permissions
- and some special knowledge about section names.*/
-static void
-ld_generic_create_sections (struct ld_state *statep)
-{
- struct scngroup *groups;
- size_t cnt;
-
- /* For relocatable object we don't have to bother sorting the
- sections and we do want to preserve the relocation sections as
- they appear in the input files. */
- if (ld_state.file_type != relocatable_file_type)
- {
- /* Collect all the relocation sections. They are handled
- separately. */
- struct scninfo *list = NULL;
- for (cnt = 0; cnt < ld_state.nallsections; ++cnt)
- if ((ld_state.allsections[cnt]->type == SHT_REL
- || ld_state.allsections[cnt]->type == SHT_RELA)
- /* The generated relocation sections are not of any
- interest here. */
- && ld_state.allsections[cnt]->last != NULL)
- {
- if (list == NULL)
- list = ld_state.allsections[cnt]->last;
- else
- {
- /* Merge the sections list. */
- struct scninfo *first = list->next;
- list->next = ld_state.allsections[cnt]->last->next;
- ld_state.allsections[cnt]->last->next = first;
- list = ld_state.allsections[cnt]->last;
- }
-
- /* Remove the entry from the section list. */
- ld_state.allsections[cnt] = NULL;
- }
- ld_state.rellist = list;
-
- if (ld_state.output_segments == NULL)
- /* Sort using builtin rules. */
- sort_sections_generic ();
- else
- sort_sections_lscript ();
- }
-
- /* Now iterate over the input sections and create the sections in the
- order they are required in the output file. */
- for (cnt = 0; cnt < ld_state.nallsections; ++cnt)
- {
- struct scnhead *head = ld_state.allsections[cnt];
- Elf_Scn *scn;
- XElf_Shdr_vardef (shdr);
-
- /* Don't handle unused sections. */
- if (!head->used)
- continue;
-
- /* We first have to create the section group if necessary.
- Section group sections must come (in section index order)
- before any of the section contained. This all is necessary
- only for relocatable object as other object types are not
- allowed to contain section groups. */
- if (ld_state.file_type == relocatable_file_type
- && unlikely (head->flags & SHF_GROUP))
- {
- /* There is at least one section which is contained in a
- section group in the input file. This means we must
- create a section group here as well. The only problem is
- that not all input files have to have to same kind of
- partitioning of the sections. I.e., sections A and B in
- one input file and sections B and C in another input file
- can be in one group. That will result in a group
- containing the sections A, B, and C in the output
- file. */
- struct scninfo *runp;
- Elf32_Word here_groupidx = 0;
- struct scngroup *here_group;
- struct member *newp;
-
- /* First check whether any section is already in a group.
- In this case we have to add this output section, too. */
- runp = head->last;
- do
- {
- assert (runp->grpid != 0);
-
- here_groupidx = runp->fileinfo->scninfo[runp->grpid].outscnndx;
- if (here_groupidx != 0)
- break;
- }
- while ((runp = runp->next) != head->last);
-
- if (here_groupidx == 0)
- {
- /* We need a new section group section. */
- scn = elf_newscn (ld_state.outelf);
- xelf_getshdr (scn, shdr);
- if (shdr == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section for output file: %s"),
- elf_errmsg (-1));
-
- here_group = (struct scngroup *) xmalloc (sizeof (*here_group));
- here_group->outscnidx = here_groupidx = elf_ndxscn (scn);
- here_group->nscns = 0;
- here_group->member = NULL;
- here_group->next = ld_state.groups;
- /* Pick a name for the section. To keep it meaningful
- we use a name used in the input files. If the
- section group in the output file should contain
- section which were in section groups of different
- names in the input files this is the users
- problem. */
- here_group->nameent
- = ebl_strtabadd (ld_state.shstrtab,
- elf_strptr (runp->fileinfo->elf,
- runp->fileinfo->shstrndx,
- SCNINFO_SHDR (runp->shdr).sh_name),
- 0);
- /* Signature symbol. */
- here_group->symbol
- = runp->fileinfo->scninfo[runp->grpid].symbols;
-
- ld_state.groups = here_group;
- }
- else
- {
- /* Search for the group with this index. */
- here_group = ld_state.groups;
- while (here_group->outscnidx != here_groupidx)
- here_group = here_group->next;
- }
-
- /* Add the new output section. */
- newp = (struct member *) alloca (sizeof (*newp));
- newp->scn = head;
-#ifndef NDT_NEEDED
- newp->next = NULL;
-#endif
- CSNGL_LIST_ADD_REAR (here_group->member, newp);
- ++here_group->nscns;
-
- /* Store the section group index in all input files. */
- runp = head->last;
- do
- {
- assert (runp->grpid != 0);
-
- if (runp->fileinfo->scninfo[runp->grpid].outscnndx == 0)
- runp->fileinfo->scninfo[runp->grpid].outscnndx = here_groupidx;
- else
- assert (runp->fileinfo->scninfo[runp->grpid].outscnndx
- == here_groupidx);
- }
- while ((runp = runp->next) != head->last);
- }
-
- /* We'll use this section so get it's name in the section header
- string table. */
- if (head->kind == scn_normal)
- head->nameent = ebl_strtabadd (ld_state.shstrtab, head->name, 0);
-
- /* Create a new section in the output file and add all data
- from all the sections we read. */
- scn = elf_newscn (ld_state.outelf);
- head->scnidx = elf_ndxscn (scn);
- xelf_getshdr (scn, shdr);
- if (shdr == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section for output file: %s"),
- elf_errmsg (-1));
-
- assert (head->type != SHT_NULL);
- assert (head->type != SHT_SYMTAB);
- assert (head->type != SHT_DYNSYM || head->kind != scn_normal);
- assert (head->type != SHT_STRTAB || head->kind != scn_normal);
- assert (head->type != SHT_GROUP);
- shdr->sh_type = head->type;
- shdr->sh_flags = head->flags;
- shdr->sh_addralign = head->align;
- shdr->sh_entsize = head->entsize;
- assert (shdr->sh_entsize != 0 || (shdr->sh_flags & SHF_MERGE) == 0);
- (void) xelf_update_shdr (scn, shdr);
-
- /* We have to know the section index of the dynamic symbol table
- right away. */
- if (head->kind == scn_dot_dynsym)
- ld_state.dynsymscnidx = elf_ndxscn (scn);
- }
-
- /* Actually create the section group sections. */
- groups = ld_state.groups;
- while (groups != NULL)
- {
- Elf_Scn *scn;
- Elf_Data *data;
- Elf32_Word *grpdata;
- struct member *runp;
-
- scn = elf_getscn (ld_state.outelf, groups->outscnidx);
- assert (scn != NULL);
-
- data = elf_newdata (scn);
- if (data == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section for output file: %s"),
- elf_errmsg (-1));
-
- data->d_size = (groups->nscns + 1) * sizeof (Elf32_Word);
- data->d_buf = grpdata = (Elf32_Word *) xmalloc (data->d_size);
- data->d_type = ELF_T_WORD;
- data->d_version = EV_CURRENT;
- data->d_off = 0;
- /* XXX What better to use? */
- data->d_align = sizeof (Elf32_Word);
-
- /* The first word in the section is the flag word. */
- /* XXX Set COMDATA flag is necessary. */
- grpdata[0] = 0;
-
- runp = groups->member->next;
- cnt = 1;
- do
- /* Fill in the index of the section. */
- grpdata[cnt++] = runp->scn->scnidx;
- while ((runp = runp->next) != groups->member->next);
-
- groups = groups->next;
- }
-}
-
-
-static bool
-reduce_symbol_p (XElf_Sym *sym, struct Ebl_Strent *strent)
-{
- const char *str;
- const char *version;
- struct id_list search;
- struct id_list *verp;
- bool result = ld_state.default_bind_local;
-
- if (XELF_ST_BIND (sym->st_info) == STB_LOCAL || sym->st_shndx == SHN_UNDEF)
- /* We don't have to do anything to local symbols here. */
- /* XXX Any section value in [SHN_LORESERVER,SHN_XINDEX) need
- special treatment? */
- return false;
-
- /* XXX Handle other symbol bindings. */
- assert (XELF_ST_BIND (sym->st_info) == STB_GLOBAL
- || XELF_ST_BIND (sym->st_info) == STB_WEAK);
-
- str = ebl_string (strent);
- version = strchr (str, VER_CHR);
- if (version != NULL)
- {
- search.id = strndupa (str, version - str);
- if (*++version == VER_CHR)
- /* Skip the second '@' signalling a default definition. */
- ++version;
- }
- else
- {
- search.id = str;
- version = "";
- }
-
- verp = ld_version_str_tab_find (&ld_state.version_str_tab,
- elf_hash (search.id), &search);
- while (verp != NULL)
- {
- /* We have this symbol in the version hash table. Now match the
- version name. */
- if (strcmp (verp->u.s.versionname, version) == 0)
- /* Match! */
- return verp->u.s.local;
-
- verp = verp->next;
- }
-
- /* XXX Add test for wildcard version symbols. */
-
- return result;
-}
-
-
-static XElf_Addr
-eval_expression (struct expression *expr, XElf_Addr addr)
-{
- XElf_Addr val = ~((XElf_Addr) 0);
-
- switch (expr->tag)
- {
- case exp_num:
- val = expr->val.num;
- break;
-
- case exp_sizeof_headers:
- {
- /* The 'elf_update' call determine the offset of the first
- section. The the size of the header. */
- XElf_Shdr_vardef (shdr);
-
- xelf_getshdr (elf_getscn (ld_state.outelf, 1), shdr);
- assert (shdr != NULL);
-
- val = shdr->sh_offset;
- }
- break;
-
- case exp_pagesize:
- val = ld_state.pagesize;
- break;
-
- case exp_id:
- /* We are here computing only address expressions. It seems not
- to be necessary to handle any variable but ".". Let's avoid
- the complication. If it turns up to be needed we can add
- it. */
- if (strcmp (expr->val.str, ".") != 0)
- error (EXIT_FAILURE, 0, gettext ("\
-address computation expression contains variable '%s'"),
- expr->val.str);
-
- val = addr;
- break;
-
- case exp_mult:
- val = (eval_expression (expr->val.binary.left, addr)
- * eval_expression (expr->val.binary.right, addr));
- break;
-
- case exp_div:
- val = (eval_expression (expr->val.binary.left, addr)
- / eval_expression (expr->val.binary.right, addr));
- break;
-
- case exp_mod:
- val = (eval_expression (expr->val.binary.left, addr)
- % eval_expression (expr->val.binary.right, addr));
- break;
-
- case exp_plus:
- val = (eval_expression (expr->val.binary.left, addr)
- + eval_expression (expr->val.binary.right, addr));
- break;
-
- case exp_minus:
- val = (eval_expression (expr->val.binary.left, addr)
- - eval_expression (expr->val.binary.right, addr));
- break;
-
- case exp_and:
- val = (eval_expression (expr->val.binary.left, addr)
- & eval_expression (expr->val.binary.right, addr));
- break;
-
- case exp_or:
- val = (eval_expression (expr->val.binary.left, addr)
- | eval_expression (expr->val.binary.right, addr));
- break;
-
- case exp_align:
- val = eval_expression (expr->val.child, addr);
- if ((val & (val - 1)) != 0)
- error (EXIT_FAILURE, 0, gettext ("argument '%" PRIuMAX "' of ALIGN in address computation expression is no power of two"),
- (uintmax_t) val);
- val = (addr + val - 1) & ~(val - 1);
- break;
- }
-
- return val;
-}
-
-
-/* Find a good as possible size for the hash table so that all the
- non-zero entries in HASHCODES don't collide too much and the table
- isn't too large. There is no exact formular for this so we use a
- heuristic. Depending on the optimization level the search is
- longer or shorter. */
-static size_t
-optimal_bucket_size (Elf32_Word *hashcodes, size_t maxcnt, int optlevel)
-{
- size_t minsize;
- size_t maxsize;
- size_t bestsize;
- uint64_t bestcost;
- size_t size;
- uint32_t *counts;
- uint32_t *lengths;
-
- if (maxcnt == 0)
- return 0;
-
- /* When we are not optimizing we run only very few tests. */
- if (optlevel <= 0)
- {
- minsize = maxcnt;
- maxsize = maxcnt + 10000 / maxcnt;
- }
- else
- {
- /* Does not make much sense to start with a smaller table than
- one which has at least four collisions. */
- minsize = MAX (1, maxcnt / 4);
- /* We look for a best fit in the range of up to eigth times the
- number of elements. */
- maxsize = 2 * maxcnt + (6 * MIN (optlevel, 100) * maxcnt) / 100;
- }
- bestsize = maxcnt;
- bestcost = UINT_MAX;
-
- /* Array for counting the collisions and chain lengths. */
- counts = (uint32_t *) xmalloc ((maxcnt + 1 + maxsize) * sizeof (uint32_t));
- lengths = &counts[maxcnt + 1];
-
- for (size = minsize; size <= maxsize; ++size)
- {
- size_t inner;
- uint64_t cost;
- uint32_t maxlength;
- uint64_t success;
- uint32_t acc;
- double factor;
-
- memset (lengths, '\0', size * sizeof (uint32_t));
- memset (counts, '\0', (maxcnt + 1) * sizeof (uint32_t));
-
- /* Determine how often each hash bucket is used. */
- for (inner = 0; inner < maxcnt; ++inner)
- ++lengths[hashcodes[inner] % size];
-
- /* Determine the lengths. */
- maxlength = 0;
- for (inner = 0; inner < size; ++inner)
- {
- ++counts[lengths[inner]];
-
- if (lengths[inner] > maxlength)
- maxlength = lengths[inner];
- }
-
- /* Determine successful lookup length. */
- acc = 0;
- success = 0;
- for (inner = 0; inner <= maxlength; ++inner)
- {
- acc += inner;
- success += counts[inner] * acc;
- }
-
- /* We can compute two factors now: the average length of a
- positive search and the average length of a negative search.
- We count the number of comparisons which have to look at the
- names themselves. Recognizing that the chain ended is not
- accounted for since it's almost for free.
-
- Which lookup is more important depends on the kind of DSO.
- If it is a system DSO like libc it is expected that most
- lookups succeed. Otherwise most lookups fail. */
- if (ld_state.is_system_library)
- factor = (1.0 * (double) success / (double) maxcnt
- + 0.3 * (double) maxcnt / (double) size);
- else
- factor = (0.3 * (double) success / (double) maxcnt
- + 1.0 * (double) maxcnt / (double) size);
-
- /* Combine the lookup cost factor. The 1/16th addend adds
- penalties for too large table sizes. */
- cost = (2 + maxcnt + size) * (factor + 1.0 / 16.0);
-
-#if 0
- printf ("maxcnt = %d, size = %d, cost = %Ld, success = %g, fail = %g, factor = %g\n",
- maxcnt, size, cost, (double) success / (double) maxcnt, (double) maxcnt / (double) size, factor);
-#endif
-
- /* Compare with current best results. */
- if (cost < bestcost)
- {
- bestcost = cost;
- bestsize = size;
- }
- }
-
- free (counts);
-
- return bestsize;
-}
-
-
-static XElf_Addr
-find_entry_point (void)
-{
- XElf_Addr result;
-
- if (ld_state.entry != NULL)
- {
- struct symbol search = { .name = ld_state.entry };
- struct symbol *syment;
-
- syment = ld_symbol_tab_find (&ld_state.symbol_tab,
- elf_hash (ld_state.entry), &search);
- if (syment != NULL && syment->defined)
- {
- /* We found the symbol. */
- Elf_Data *data = elf_getdata (elf_getscn (ld_state.outelf,
- ld_state.symscnidx), NULL);
-
- XElf_Sym_vardef (sym);
-
- sym = NULL;
- if (data != NULL)
- xelf_getsym (data, ld_state.dblindirect[syment->outsymidx], sym);
-
- if (sym == NULL && ld_state.need_dynsym && syment->outdynsymidx != 0)
- {
- /* Use the dynamic symbol table if available. */
- data = elf_getdata (elf_getscn (ld_state.outelf,
- ld_state.dynsymscnidx), NULL);
-
- sym = NULL;
- if (data != NULL)
- xelf_getsym (data, syment->outdynsymidx, sym);
- }
-
- if (sym != NULL)
- return sym->st_value;
-
- /* XXX What to do if the output has no non-dynamic symbol
- table and the dynamic symbol table does not contain the
- symbol? */
- assert (ld_state.need_symtab);
- assert (ld_state.symscnidx != 0);
- }
- }
-
- /* We couldn't find the symbol or none was given. Use the first
- address of the ".text" section then. */
-
-
- result = 0;
-
- /* In DSOs this is no fatal error. They usually have no entry
- points. In this case we set the entry point to zero, which makes
- sure it will always fail. */
- if (ld_state.file_type == executable_file_type)
- {
- if (ld_state.entry != NULL)
- error (0, 0, gettext ("\
-cannot find entry symbol \"%s\": defaulting to %#0*" PRIx64),
- ld_state.entry,
- xelf_getclass (ld_state.outelf) == ELFCLASS32 ? 10 : 18,
- (uint64_t) result);
- else
- error (0, 0, gettext ("\
-no entry symbol specified: defaulting to %#0*" PRIx64),
- xelf_getclass (ld_state.outelf) == ELFCLASS32 ? 10 : 18,
- (uint64_t) result);
- }
-
- return result;
-}
-
-
-static void
-fillin_special_symbol (struct symbol *symst, size_t scnidx, size_t nsym,
- Elf_Data *symdata, struct Ebl_Strtab *strtab)
-{
- assert (ld_state.file_type != relocatable_file_type);
-
- XElf_Sym_vardef (sym);
- xelf_getsym_ptr (symdata, nsym, sym);
-
- /* The name offset will be filled in later. */
- sym->st_name = 0;
- /* Traditionally: globally visible. */
- sym->st_info = XELF_ST_INFO (STB_GLOBAL, symst->type);
- /* No special visibility or so. */
- sym->st_other = 0;
- /* Reference to the GOT or dynamic section. Since the GOT and
- dynamic section are only created for executables and DSOs it
- cannot be that the section index is too large. */
- assert (scnidx != 0);
- assert (scnidx < SHN_LORESERVE || scnidx == SHN_ABS);
- sym->st_shndx = scnidx;
- /* We want the beginning of the section. */
- sym->st_value = 0;
-
- /* Determine the size of the section. */
- if (scnidx != SHN_ABS)
- {
- Elf_Data *data = elf_getdata (elf_getscn (ld_state.outelf, scnidx),
- NULL);
- assert (data != NULL);
- sym->st_size = data->d_size;
- /* Make sure there is no second data block. */
- assert (elf_getdata (elf_getscn (ld_state.outelf, scnidx), data)
- == NULL);
- }
-
- /* Insert symbol into the symbol table. Note that we do not have to
- use xelf_update_symshdx. */
- (void) xelf_update_sym (symdata, nsym, sym);
-
- /* Cross-references. */
- ndxtosym[nsym] = symst;
- symst->outsymidx = nsym;
-
- /* Add the name to the string table. */
- symstrent[nsym] = ebl_strtabadd (strtab, symst->name, 0);
-}
-
-
-static void
-new_dynamic_entry (Elf_Data *data, int idx, XElf_Sxword tag, XElf_Addr val)
-{
- XElf_Dyn_vardef (dyn);
- xelf_getdyn_ptr (data, idx, dyn);
- dyn->d_tag = tag;
- dyn->d_un.d_ptr = val;
- (void) xelf_update_dyn (data, idx, dyn);
-}
-
-
-static void
-allocate_version_names (struct usedfiles *runp, struct Ebl_Strtab *dynstrtab)
-{
- /* If this DSO has no versions skip it. */
- if (runp->status != opened || runp->verdefdata == NULL)
- return;
-
- /* Add the object name. */
- int offset = 0;
- while (1)
- {
- XElf_Verdef_vardef (def);
- XElf_Verdaux_vardef (aux);
-
- /* Get data at the next offset. */
- xelf_getverdef (runp->verdefdata, offset, def);
- assert (def != NULL);
- xelf_getverdaux (runp->verdefdata, offset + def->vd_aux, aux);
- assert (aux != NULL);
-
- assert (def->vd_ndx <= runp->nverdef);
- if (def->vd_ndx == 1 || runp->verdefused[def->vd_ndx] != 0)
- {
- runp->verdefent[def->vd_ndx]
- = ebl_strtabadd (dynstrtab, elf_strptr (runp->elf,
- runp->dynsymstridx,
- aux->vda_name), 0);
-
- if (def->vd_ndx > 1)
- runp->verdefused[def->vd_ndx] = ld_state.nextveridx++;
- }
-
- if (def->vd_next == 0)
- /* That were all versions. */
- break;
-
- offset += def->vd_next;
- }
-}
-
-
-XElf_Off
-create_verneed_data (XElf_Off offset, Elf_Data *verneeddata,
- struct usedfiles *runp, int *ntotal)
-{
- size_t verneed_size = xelf_fsize (ld_state.outelf, ELF_T_VNEED, 1);
- size_t vernaux_size = xelf_fsize (ld_state.outelf, ELF_T_VNAUX, 1);
- int need_offset;
- bool filled = false;
- GElf_Verneed verneed;
- GElf_Vernaux vernaux;
- int ndef = 0;
-size_t cnt;
-
- /* If this DSO has no versions skip it. */
- if (runp->nverdefused == 0)
- return offset;
-
- /* We fill in the Verneed record last. Remember the
- offset. */
- need_offset = offset;
- offset += verneed_size;
-
- for (cnt = 2; cnt <= runp->nverdef; ++cnt)
- if (runp->verdefused[cnt] != 0)
- {
- assert (runp->verdefent[cnt] != NULL);
-
- if (filled)
- {
- vernaux.vna_next = vernaux_size;
- (void) gelf_update_vernaux (verneeddata, offset,
- &vernaux);
- offset += vernaux_size;
- }
-
- vernaux.vna_hash
- = elf_hash (ebl_string (runp->verdefent[cnt]));
- vernaux.vna_flags = 0;
- vernaux.vna_other = runp->verdefused[cnt];
- vernaux.vna_name = ebl_strtaboffset (runp->verdefent[cnt]);
- filled = true;
- ++ndef;
- }
-
- assert (filled);
- vernaux.vna_next = 0;
- (void) gelf_update_vernaux (verneeddata, offset, &vernaux);
- offset += vernaux_size;
-
- verneed.vn_version = VER_NEED_CURRENT;
- verneed.vn_cnt = ndef;
- verneed.vn_file = ebl_strtaboffset (runp->verdefent[1]);
- /* The first auxiliary entry is always found directly
- after the verneed entry. */
- verneed.vn_aux = verneed_size;
- verneed.vn_next = --*ntotal > 0 ? offset - need_offset : 0;
- (void) gelf_update_verneed (verneeddata, need_offset,
- &verneed);
-
- return offset;
-}
-
-
-/* Create the output file.
-
- For relocatable files what basically has to happen is that all
- sections from all input files are written into the output file.
- Sections with the same name are combined (offsets adjusted
- accordingly). The symbol tables are combined in one single table.
- When stripping certain symbol table entries are omitted.
-
- For executables (shared or not) we have to create the program header,
- additional sections like the .interp, eventually (in addition) create
- a dynamic symbol table and a dynamic section. Also the relocations
-have to be processed differently. */
-static int
-ld_generic_create_outfile (struct ld_state *statep)
-{
- struct scnlist
- {
- size_t scnidx;
- struct scninfo *scninfo;
- struct scnlist *next;
- };
- struct scnlist *rellist = NULL;
- size_t cnt;
- Elf_Scn *symscn = NULL;
- Elf_Scn *xndxscn = NULL;
- Elf_Scn *strscn = NULL;
- struct Ebl_Strtab *strtab = NULL;
- struct Ebl_Strtab *dynstrtab = NULL;
- XElf_Shdr_vardef (shdr);
- Elf_Data *data;
- Elf_Data *symdata = NULL;
- Elf_Data *xndxdata = NULL;
- struct usedfiles *file;
- size_t nsym;
- size_t nsym_local;
- size_t nsym_allocated;
- size_t nsym_dyn = 0;
- Elf32_Word *dblindirect = NULL;
-#ifndef NDEBUG
- bool need_xndx;
-#endif
- Elf_Scn *shstrtab_scn;
- size_t shstrtab_ndx;
- XElf_Ehdr_vardef (ehdr);
- struct Ebl_Strent *symtab_ent = NULL;
- struct Ebl_Strent *xndx_ent = NULL;
- struct Ebl_Strent *strtab_ent = NULL;
- struct Ebl_Strent *shstrtab_ent;
- struct scngroup *groups;
- Elf_Scn *dynsymscn = NULL;
- Elf_Data *dynsymdata = NULL;
- Elf_Data *dynstrdata = NULL;
- Elf32_Word *hashcodes = NULL;
- size_t nsym_dyn_allocated = 0;
- Elf_Scn *versymscn = NULL;
- Elf_Data *versymdata = NULL;
-
- if (ld_state.need_symtab)
- {
- /* First create the symbol table. We need the symbol section itself
- and the string table for it. */
- symscn = elf_newscn (ld_state.outelf);
- ld_state.symscnidx = elf_ndxscn (symscn);
- symdata = elf_newdata (symscn);
- if (symdata == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create symbol table for output file: %s"),
- elf_errmsg (-1));
-
- symdata->d_type = ELF_T_SYM;
- /* This is an estimated size, but it will definitely cap the real value.
- We might have to adjust the number later. */
- nsym_allocated = (1 + ld_state.nsymtab + ld_state.nplt + ld_state.ngot
- + ld_state.nusedsections + ld_state.nlscript_syms);
- symdata->d_size = xelf_fsize (ld_state.outelf, ELF_T_SYM,
- nsym_allocated);
-
- /* Optionally the extended section table. */
- /* XXX Is SHN_LORESERVE correct? Do we need some other sections? */
- if (unlikely (ld_state.nusedsections >= SHN_LORESERVE))
- {
- xndxscn = elf_newscn (ld_state.outelf);
- ld_state.xndxscnidx = elf_ndxscn (xndxscn);
-
- xndxdata = elf_newdata (xndxscn);
- if (xndxdata == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create symbol table for output file: %s"),
- elf_errmsg (-1));
-
- /* The following relies on the fact that Elf32_Word and Elf64_Word
- have the same size. */
- xndxdata->d_type = ELF_T_WORD;
- /* This is an estimated size, but it will definitely cap the
- real value. we might have to adjust the number later. */
- xndxdata->d_size = xelf_fsize (ld_state.outelf, ELF_T_WORD,
- nsym_allocated);
- /* The first entry is left empty, clear it here and now. */
- xndxdata->d_buf = memset (xmalloc (xndxdata->d_size), '\0',
- xelf_fsize (ld_state.outelf, ELF_T_WORD,
- 1));
- xndxdata->d_off = 0;
- /* XXX Should use an ebl function. */
- xndxdata->d_align = sizeof (Elf32_Word);
- }
- }
- else
- {
- assert (ld_state.need_dynsym);
-
- /* First create the symbol table. We need the symbol section itself
- and the string table for it. */
- symscn = elf_getscn (ld_state.outelf, ld_state.dynsymscnidx);
- symdata = elf_newdata (symscn);
- if (symdata == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create symbol table for output file: %s"),
- elf_errmsg (-1));
-
- symdata->d_version = EV_CURRENT;
- symdata->d_type = ELF_T_SYM;
- /* This is an estimated size, but it will definitely cap the real value.
- We might have to adjust the number later. */
- nsym_allocated = (1 + ld_state.nsymtab + ld_state.nplt + ld_state.ngot
- - ld_state.nlocalsymbols + ld_state.nlscript_syms);
- symdata->d_size = xelf_fsize (ld_state.outelf, ELF_T_SYM,
- nsym_allocated);
- }
-
- /* The first entry is left empty, clear it here and now. */
- symdata->d_buf = memset (xmalloc (symdata->d_size), '\0',
- xelf_fsize (ld_state.outelf, ELF_T_SYM, 1));
- symdata->d_off = 0;
- /* XXX This is ugly but how else can it be done. */
- symdata->d_align = xelf_fsize (ld_state.outelf, ELF_T_ADDR, 1);
-
- /* Allocate another array to keep track of the handles for the symbol
- names. */
- symstrent = (struct Ebl_Strent **) xcalloc (nsym_allocated,
- sizeof (struct Ebl_Strent *));
-
- /* By starting at 1 we effectively add a null entry. */
- nsym = 1;
-
- /* Iteration over all sections. */
- for (cnt = 0; cnt < ld_state.nallsections; ++cnt)
- {
- struct scnhead *head = ld_state.allsections[cnt];
- Elf_Scn *scn;
- struct scninfo *runp;
- XElf_Off offset;
- Elf32_Word xndx;
-
- /* Don't handle unused sections at all. */
- if (!head->used)
- continue;
-
- /* Get the section handle. */
- scn = elf_getscn (ld_state.outelf, head->scnidx);
-
- if (unlikely (head->kind == scn_dot_interp))
- {
- Elf_Data *outdata = elf_newdata (scn);
- if (outdata == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section for output file: %s"),
- elf_errmsg (-1));
-
- /* This is the string we'll put in the section. */
- const char *interp = ld_state.interp ?: "/lib/ld.so.1";
-
- /* Create the section data. */
- outdata->d_buf = (void *) interp;
- outdata->d_size = strlen (interp) + 1;
- outdata->d_type = ELF_T_BYTE;
- outdata->d_off = 0;
- outdata->d_align = 1;
- outdata->d_version = EV_CURRENT;
-
- /* Remember the index of this section. */
- ld_state.interpscnidx = head->scnidx;
-
- continue;
- }
-
- if (unlikely (head->kind == scn_dot_got))
- {
- /* Remember the index of this section. */
- ld_state.gotscnidx = elf_ndxscn (scn);
-
- /* Give the backend the change to initialize the section. */
- INITIALIZE_GOT (&ld_state, scn);
-
- continue;
- }
-
- if (unlikely (head->kind == scn_dot_dynrel))
- {
- Elf_Data *outdata;
-
- outdata = elf_newdata (scn);
- if (outdata == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section for output file: %s"),
- elf_errmsg (-1));
-
- outdata->d_size = ld_state.relsize_total;
- outdata->d_buf = xmalloc (outdata->d_size);
- outdata->d_type = (REL_TYPE (&ld_state) == DT_REL
- ? ELF_T_REL : ELF_T_RELA);
- outdata->d_off = 0;
- outdata->d_align = xelf_fsize (ld_state.outelf, ELF_T_ADDR, 1);
-
- /* Remember the index of this section. */
- ld_state.reldynscnidx = elf_ndxscn (scn);
-
- continue;
- }
-
- if (unlikely (head->kind == scn_dot_dynamic))
- {
- /* Only create the data for now. */
- Elf_Data *outdata;
-
- /* Account for a few more entries we have to add. */
- if (ld_state.dt_flags != 0)
- ++ld_state.ndynamic;
- if (ld_state.dt_flags_1 != 0)
- ++ld_state.ndynamic;
- if (ld_state.dt_feature_1 != 0)
- ++ld_state.ndynamic;
-
- outdata = elf_newdata (scn);
- if (outdata == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section for output file: %s"),
- elf_errmsg (-1));
-
- /* Create the section data. */
- outdata->d_size = xelf_fsize (ld_state.outelf, ELF_T_DYN,
- ld_state.ndynamic);
- outdata->d_buf = xcalloc (1, outdata->d_size);
- outdata->d_type = ELF_T_DYN;
- outdata->d_off = 0;
- outdata->d_align = xelf_fsize (ld_state.outelf, ELF_T_ADDR, 1);
-
- /* Remember the index of this section. */
- ld_state.dynamicscnidx = elf_ndxscn (scn);
-
- continue;
- }
-
- if (unlikely (head->kind == scn_dot_dynsym))
- {
- /* We already know the section index. */
- assert (ld_state.dynsymscnidx == elf_ndxscn (scn));
-
- continue;
- }
-
- if (unlikely (head->kind == scn_dot_dynstr))
- {
- /* Remember the index of this section. */
- ld_state.dynstrscnidx = elf_ndxscn (scn);
-
- /* Create the string table. */
- dynstrtab = ebl_strtabinit (true);
-
- /* XXX TBI
- We have to add all the strings which are needed in the
- dynamic section here. This means DT_FILTER,
- DT_AUXILIARY, ... entries. */
- if (ld_state.ndsofiles > 0)
- {
- struct usedfiles *frunp = ld_state.dsofiles;
-
- do
- if (! ld_state.ignore_unused_dsos || frunp->used)
- frunp->sonameent = ebl_strtabadd (dynstrtab, frunp->soname,
- 0);
- while ((frunp = frunp->next) != ld_state.dsofiles);
- }
-
-
- /* Add the runtime path information. The strings are stored
- in the .dynstr section. If both rpath and runpath are defined
- the runpath information is used. */
- if (ld_state.runpath != NULL || ld_state.rpath != NULL)
- {
- struct pathelement *startp;
- struct pathelement *prunp;
- int tag;
- size_t len;
- char *str;
- char *cp;
-
- if (ld_state.runpath != NULL)
- {
- startp = ld_state.runpath;
- tag = DT_RUNPATH;
- }
- else
- {
- startp = ld_state.rpath;
- tag = DT_RPATH;
- }
-
- /* Determine how long the string will be. */
- for (len = 0, prunp = startp; prunp != NULL; prunp = prunp->next)
- len += strlen (prunp->pname) + 1;
-
- cp = str = (char *) obstack_alloc (&ld_state.smem, len);
- /* Copy the string. */
- for (prunp = startp; prunp != NULL; prunp = prunp->next)
- {
- cp = stpcpy (cp, prunp->pname);
- *cp++ = ':';
- }
- /* Remove the last colon. */
- cp[-1] = '\0';
-
- /* Remember the values until we can generate the dynamic
- section. */
- ld_state.rxxpath_strent = ebl_strtabadd (dynstrtab, str, len);
- ld_state.rxxpath_tag = tag;
- }
-
- continue;
- }
-
- if (unlikely (head->kind == scn_dot_hash))
- {
- /* Remember the index of this section. */
- ld_state.hashscnidx = elf_ndxscn (scn);
-
- continue;
- }
-
- if (unlikely (head->kind == scn_dot_plt))
- {
- /* Remember the index of this section. */
- ld_state.pltscnidx = elf_ndxscn (scn);
-
- /* Give the backend the change to initialize the section. */
- INITIALIZE_PLT (&ld_state, scn);
-
- continue;
- }
-
- if (unlikely (head->kind == scn_dot_pltrel))
- {
- /* Remember the index of this section. */
- ld_state.pltrelscnidx = elf_ndxscn (scn);
-
- /* Give the backend the change to initialize the section. */
- INITIALIZE_PLTREL (&ld_state, scn);
-
- continue;
- }
-
- if (unlikely (head->kind == scn_dot_version))
- {
- /* Remember the index of this section. */
- ld_state.versymscnidx = elf_ndxscn (scn);
-
- continue;
- }
-
- if (unlikely (head->kind == scn_dot_version_r))
- {
- /* Remember the index of this section. */
- ld_state.verneedscnidx = elf_ndxscn (scn);
-
- continue;
- }
-
- /* If we come here we must be handling a normal section. */
- assert (head->kind == scn_normal);
-
- /* Create an STT_SECTION entry in the symbol table. But not for
- the symbolic symbol table. */
- if (ld_state.need_symtab)
- {
- /* XXX Can we be cleverer and do this only if needed? */
- XElf_Sym_vardef (sym);
-
- /* Optimization ahead: in the native linker we get a pointer
- to the final location so that the following code writes
- directly in the correct place. Otherwise we write into
- the local variable first. */
- xelf_getsym_ptr (symdata, nsym, sym);
-
- /* Usual section symbol: local, no specific information,
- except the section index. The offset here is zero, the
- start address will later be added. */
- sym->st_name = 0;
- sym->st_info = XELF_ST_INFO (STB_LOCAL, STT_SECTION);
- sym->st_other = 0;
- sym->st_value = 0;
- sym->st_size = 0;
- /* In relocatable files the section index can be too big for
- the ElfXX_Sym struct. we have to deal with the extended
- symbol table. */
- if (likely (head->scnidx < SHN_LORESERVE))
- {
- sym->st_shndx = head->scnidx;
- xndx = 0;
- }
- else
- {
- sym->st_shndx = SHN_XINDEX;
- xndx = head->scnidx;
- }
- /* Commit the change. See the optimization above, this does
- not change the symbol table entry. But the extended
- section index table entry is always written, if there is
- such a table. */
- assert (nsym < nsym_allocated);
- xelf_update_symshndx (symdata, xndxdata, nsym, sym, xndx, 0);
-
- /* Remember the symbol's index in the symbol table. */
- head->scnsymidx = nsym++;
- }
-
- if (head->type == SHT_REL || head->type == SHT_RELA)
- {
- /* Remember that we have to fill in the symbol table section
- index. */
- if (ld_state.file_type == relocatable_file_type)
- {
- struct scnlist *newp;
-
- newp = (struct scnlist *) alloca (sizeof (*newp));
- newp->scnidx = head->scnidx;
- newp->scninfo = head->last->next;
-#ifndef NDEBUG
- newp->next = NULL;
-#endif
- SNGL_LIST_PUSH (rellist, newp);
- }
- else
- {
- /* When we create an executable or a DSO we don't simply
- copy the existing relocations. Instead many will be
- resolved, others will be converted. Create a data buffer
- large enough to contain the contents which we will fill
- in later. */
- int type = head->type == SHT_REL ? ELF_T_REL : ELF_T_RELA;
-
- data = elf_newdata (scn);
- if (data == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section for output file: %s"),
- elf_errmsg (-1));
-
- data->d_size = xelf_fsize (ld_state.outelf, type, head->relsize);
- data->d_buf = xcalloc (data->d_size, 1);
- data->d_type = type;
- data->d_align = xelf_fsize (ld_state.outelf, ELF_T_ADDR, 1);
- data->d_off = 0;
-
- continue;
- }
- }
-
- /* Recognize string and merge flag and handle them. */
- if (head->flags & SHF_MERGE)
- {
- /* We merge the contents of the sections. For this we do
- not look at the contents of section directly. Instead we
- look at the symbols of the section. */
- Elf_Data *outdata;
-
- /* Concatenate the lists of symbols for all sections.
-
- XXX In case any input section has no symbols associated
- (this happens for debug sections) we cannot use this
- method. Implement parsing the other debug sections and
- find the string pointers. For now we don't merge. */
- runp = head->last->next;
- if (runp->symbols == NULL)
- {
- head->flags &= ~SHF_MERGE;
- goto no_merge;
- }
- head->symbols = runp->symbols;
-
- while ((runp = runp->next) != head->last->next)
- {
- if (runp->symbols == NULL)
- {
- head->flags &= ~SHF_MERGE;
- head->symbols = NULL;
- goto no_merge;
- }
-
- struct symbol *oldhead = head->symbols->next_in_scn;
-
- head->symbols->next_in_scn = runp->symbols->next_in_scn;
- runp->symbols->next_in_scn = oldhead;
- head->symbols = runp->symbols;
- }
-
- /* Create the output section. */
- outdata = elf_newdata (scn);
- if (outdata == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section for output file: %s"),
- elf_errmsg (-1));
-
- /* We use different merging algorithms for performance
- reasons. We can easily handle single-byte and
- wchar_t-wide character strings. All other cases (which
- really should happen in real life) are handled by the
- generic code. */
- if (SCNINFO_SHDR (head->last->shdr).sh_entsize == 1
- && (head->flags & SHF_STRINGS))
- {
- /* Simple, single-byte string matching. */
- struct Ebl_Strtab *mergestrtab;
- struct symbol *symrunp;
- Elf_Data *locsymdata = NULL;
- Elf_Data *locdata = NULL;
-
- mergestrtab = ebl_strtabinit (false);
-
- symrunp = head->symbols->next_in_scn;
- file = NULL;
- do
- {
- /* Accelarate the loop. We cache the file
- information since it might very well be the case
- that the previous entry was from the same
- file. */
- if (symrunp->file != file)
- {
- /* Remember the file. */
- file = symrunp->file;
- /* Symbol table data from that file. */
- locsymdata = file->symtabdata;
- /* String section data. */
- locdata = elf_rawdata (file->scninfo[symrunp->scndx].scn,
- NULL);
- assert (locdata != NULL);
- /* While we are at it, remember the output
- section. If we don't access the string data
- section the section won't be in the output
- file. So it is sufficient to do the work
- here. */
- file->scninfo[symrunp->scndx].outscnndx = head->scnidx;
- }
-
- /* Get the symbol information. This provides us the
- offset into the string data section. */
- XElf_Sym_vardef (sym);
- xelf_getsym (locsymdata, symrunp->symidx, sym);
- assert (sym != NULL);
-
- /* Get the data from the file. Note that we access
- the raw section data; no endian-ness issues with
- single-byte strings. */
- symrunp->merge.handle
- = ebl_strtabadd (mergestrtab,
- (char *) locdata->d_buf + sym->st_value,
- 0);
- }
- while ((symrunp = symrunp->next_in_scn)
- != head->symbols->next_in_scn);
-
- /* All strings have been added. Create the final table. */
- ebl_strtabfinalize (mergestrtab, outdata);
-
- /* Compute the final offsets in the section. */
- symrunp = runp->symbols;
- do
- {
- symrunp->merge.value
- = ebl_strtaboffset (symrunp->merge.handle);
- symrunp->merged = 1;
- }
- while ((symrunp = symrunp->next_in_scn) != runp->symbols);
-
- /* We don't need the string table anymore. */
- ebl_strtabfree (mergestrtab);
- }
- else if (likely (SCNINFO_SHDR (head->last->shdr).sh_entsize
- == sizeof (wchar_t))
- && likely (head->flags & SHF_STRINGS))
- {
- /* Simple, wchar_t string merging. */
- struct Ebl_WStrtab *mergestrtab;
- struct symbol *symrunp;
- Elf_Data *locsymdata = NULL;
- Elf_Data *locdata = NULL;
-
- mergestrtab = ebl_wstrtabinit (false);
-
- symrunp = runp->symbols;
- file = NULL;
- do
- {
- /* Accelarate the loop. We cache the file
- information since it might very well be the case
- that the previous entry was from the same
- file. */
- if (symrunp->file != file)
- {
- /* Remember the file. */
- file = symrunp->file;
- /* Symbol table data from that file. */
- locsymdata = file->symtabdata;
- /* String section data. */
- locdata = elf_rawdata (file->scninfo[symrunp->scndx].scn,
- NULL);
- assert (locdata != NULL);
-
- /* While we are at it, remember the output
- section. If we don't access the string data
- section the section won't be in the output
- file. So it is sufficient to do the work
- here. */
- file->scninfo[symrunp->scndx].outscnndx = head->scnidx;
- }
-
- /* Get the symbol information. This provides us the
- offset into the string data section. */
- XElf_Sym_vardef (sym);
- xelf_getsym (locsymdata, symrunp->symidx, sym);
- assert (sym != NULL);
-
- /* Get the data from the file. Using the raw
- section data here is possible since we don't
- interpret the string themselves except for
- looking for the wide NUL character. The NUL
- character has fortunately the same representation
- regardless of the byte order. */
- symrunp->merge.handle
- = ebl_wstrtabadd (mergestrtab,
- (wchar_t *) ((char *) locdata->d_buf
- + sym->st_value), 0);
- }
- while ((symrunp = symrunp->next_in_scn) != runp->symbols);
-
- /* All strings have been added. Create the final table. */
- ebl_wstrtabfinalize (mergestrtab, outdata);
-
- /* Compute the final offsets in the section. */
- symrunp = runp->symbols;
- do
- {
- symrunp->merge.value
- = ebl_wstrtaboffset (symrunp->merge.handle);
- symrunp->merged = 1;
- }
- while ((symrunp = symrunp->next_in_scn) != runp->symbols);
-
- /* We don't need the string table anymore. */
- ebl_wstrtabfree (mergestrtab);
- }
- else
- {
- /* Non-standard merging. */
- struct Ebl_GStrtab *mergestrtab;
- struct symbol *symrunp;
- Elf_Data *locsymdata = NULL;
- Elf_Data *locdata = NULL;
- /* If this is no string section the length of each "string"
- is always one. */
- unsigned int len = (head->flags & SHF_STRINGS) ? 0 : 1;
-
- /* This is the generic string table functionality. Much
- slower than the specialized code. */
- mergestrtab
- = ebl_gstrtabinit (SCNINFO_SHDR (head->last->shdr).sh_entsize,
- false);
-
- symrunp = runp->symbols;
- file = NULL;
- do
- {
- /* Accelarate the loop. We cache the file
- information since it might very well be the case
- that the previous entry was from the same
- file. */
- if (symrunp->file != file)
- {
- /* Remember the file. */
- file = symrunp->file;
- /* Symbol table data from that file. */
- locsymdata = file->symtabdata;
- /* String section data. */
- locdata = elf_rawdata (file->scninfo[symrunp->scndx].scn,
- NULL);
- assert (locdata != NULL);
-
- /* While we are at it, remember the output
- section. If we don't access the string data
- section the section won't be in the output
- file. So it is sufficient to do the work
- here. */
- file->scninfo[symrunp->scndx].outscnndx = head->scnidx;
- }
-
- /* Get the symbol information. This provides us the
- offset into the string data section. */
- XElf_Sym_vardef (sym);
- xelf_getsym (locsymdata, symrunp->symidx, sym);
- assert (sym != NULL);
-
- /* Get the data from the file. Using the raw
- section data here is possible since we don't
- interpret the string themselves except for
- looking for the wide NUL character. The NUL
- character has fortunately the same representation
- regardless of the byte order. */
- symrunp->merge.handle
- = ebl_gstrtabadd (mergestrtab,
- (char *) locdata->d_buf + sym->st_value,
- len);
- }
- while ((symrunp = symrunp->next_in_scn) != runp->symbols);
-
- /* Create the final table. */
- ebl_gstrtabfinalize (mergestrtab, outdata);
-
- /* Compute the final offsets in the section. */
- symrunp = runp->symbols;
- do
- {
- symrunp->merge.value
- = ebl_gstrtaboffset (symrunp->merge.handle);
- symrunp->merged = 1;
- }
- while ((symrunp = symrunp->next_in_scn) != runp->symbols);
-
- /* We don't need the string table anymore. */
- ebl_gstrtabfree (mergestrtab);
- }
- }
- else
- {
- no_merge:
- assert (head->scnidx == elf_ndxscn (scn));
-
- /* It is important to start with the first list entry (and
- not just any one) to add the sections in the correct
- order. */
- runp = head->last->next;
- offset = 0;
- do
- {
- Elf_Data *outdata = elf_newdata (scn);
- if (outdata == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section for output file: %s"),
- elf_errmsg (-1));
-
- /* Exceptional case: if we synthesize a data block SCN
- is NULL and the sectio header info must be for a
- SHT_NOBITS block and the size and alignment are
- filled in. */
- if (likely (runp->scn != NULL))
- {
- data = elf_getdata (runp->scn, NULL);
- assert (data != NULL);
-
- /* We reuse the data buffer in the input file. */
- *outdata = *data;
-
- /* Given that we read the input file from disk we know there
- cannot be another data part. */
- assert (elf_getdata (runp->scn, data) == NULL);
- }
- else
- {
- /* Must be a NOBITS section. */
- assert (SCNINFO_SHDR (runp->shdr).sh_type == SHT_NOBITS);
-
- outdata->d_buf = NULL; /* Not needed. */
- outdata->d_type = ELF_T_BYTE;
- outdata->d_version = EV_CURRENT;
- outdata->d_size = SCNINFO_SHDR (runp->shdr).sh_size;
- outdata->d_align = SCNINFO_SHDR (runp->shdr).sh_addralign;
- }
-
- XElf_Off align = MAX (1, outdata->d_align);
- assert (powerof2 (align));
- offset = ((offset + align - 1) & ~(align - 1));
-
- runp->offset = offset;
- runp->outscnndx = head->scnidx;
- runp->allsectionsidx = cnt;
-
- outdata->d_off = offset;
-
- offset += outdata->d_size;
- }
- while ((runp = runp->next) != head->last->next);
-
- /* If necessary add the additional line to the .comment section. */
- if (ld_state.add_ld_comment
- && head->flags == 0
- && head->type == SHT_PROGBITS
- && strcmp (head->name, ".comment") == 0
- && head->entsize == 0)
- {
- Elf_Data *outdata = elf_newdata (scn);
-
- if (outdata == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section for output file: %s"),
- elf_errmsg (-1));
-
- outdata->d_buf = (void *) "\0ld (Red Hat " PACKAGE ") " VERSION;
- outdata->d_size = strlen ((char *) outdata->d_buf + 1) + 2;
- outdata->d_off = offset;
- outdata->d_type = ELF_T_BYTE;
- outdata->d_align = 1;
- }
- /* XXX We should create a .comment section if none exists.
- This requires that we early on detect that no such
- section exists. This should probably be implemented
- together with some merging of the section contents.
- Currently identical entries are not merged. */
- }
- }
-
- /* The table we collect the strings in. */
- strtab = ebl_strtabinit (true);
- if (strtab == NULL)
- error (EXIT_FAILURE, errno, gettext ("cannot create string table"));
-
-
-#ifndef NDEBUG
- /* Keep track of the use of the XINDEX. */
- need_xndx = false;
-#endif
-
- /* We we generate a normal symbol table for an executable and the
- --export-dynamic option is not given, we need an extra table
- which keeps track of the symbol entry belonging to the symbol
- table entry. Note that EXPORT_ALL_DYNAMIC is always set if we
- generate a DSO so we do not have to test this separately. */
- ndxtosym = (struct symbol **) xcalloc (nsym_allocated,
- sizeof (struct symbol));
-
- /* Create the special symbol for the GOT section. */
- if (ld_state.got_symbol != NULL)
- {
- assert (nsym < nsym_allocated);
- fillin_special_symbol (ld_state.got_symbol, ld_state.gotscnidx,
- nsym++, symdata, strtab);
- }
-
- /* Similarly for the dynamic section symbol. */
- if (ld_state.dyn_symbol != NULL)
- {
- assert (nsym < nsym_allocated);
- fillin_special_symbol (ld_state.dyn_symbol, ld_state.dynamicscnidx,
- nsym++, symdata, strtab);
- }
-
- /* Create symbol table entries for the symbols defined in the linker
- script. */
- if (ld_state.lscript_syms != NULL)
- {
- struct symbol *rsym = ld_state.lscript_syms;
- do
- {
- assert (nsym < nsym_allocated);
- fillin_special_symbol (rsym, SHN_ABS, nsym++, symdata, strtab);
- }
- while ((rsym = rsym->next) != NULL);
- }
-
- /* Iterate over all input files to collect the symbols. */
- file = ld_state.relfiles->next;
- symdata = elf_getdata (elf_getscn (ld_state.outelf, ld_state.symscnidx),
- NULL);
- do
- {
- size_t maxcnt;
- Elf_Data *insymdata;
- Elf_Data *inxndxdata;
-
- /* There must be no dynamic symbol table when creating
- relocatable files. */
- assert (ld_state.file_type != relocatable_file_type
- || file->dynsymtabdata == NULL);
-
- insymdata = file->symtabdata;
- assert (insymdata != NULL);
- inxndxdata = file->xndxdata;
-
- maxcnt = file->nsymtab;
-
- file->symindirect = (Elf32_Word *) xcalloc (maxcnt, sizeof (Elf32_Word));
-
- /* The dynamic symbol table does not contain local symbols. So
- we skip those entries. */
- for (cnt = ld_state.need_symtab ? 1 : file->nlocalsymbols; cnt < maxcnt;
- ++cnt)
- {
- XElf_Sym_vardef (sym);
- Elf32_Word xndx;
- struct symbol *defp = NULL;
-
- xelf_getsymshndx (insymdata, inxndxdata, cnt, sym, xndx);
- assert (sym != NULL);
-
- if (unlikely (XELF_ST_TYPE (sym->st_info) == STT_SECTION))
- {
- /* Section symbols should always be local but who knows... */
- if (ld_state.need_symtab)
- {
- /* Determine the real section index in the source file.
- Use the XINDEX section content if necessary. We don't
- add this information to the dynamic symbol table. */
- if (sym->st_shndx != SHN_XINDEX)
- xndx = sym->st_shndx;
-
- assert (file->scninfo[xndx].allsectionsidx
- < ld_state.nallsections);
- file->symindirect[cnt] = ld_state.allsections[file->scninfo[xndx].allsectionsidx]->scnsymidx;
- /* Note that the resulting index can be zero here. There is
- no guarantee that the output file will contain all the
- sections the input file did. */
- }
- continue;
- }
-
- if ((ld_state.strip >= strip_all || !ld_state.need_symtab)
- /* XXX Do we need these entries? */
- && XELF_ST_TYPE (sym->st_info) == STT_FILE)
- continue;
-
-#if NATIVE_ELF != 0
- /* Copy old data. */
- XElf_Sym *sym2 = sym;
- assert (nsym < nsym_allocated);
- xelf_getsym (symdata, nsym, sym);
- *sym = *sym2;
-#endif
-
- if (sym->st_shndx != SHN_UNDEF
- && (sym->st_shndx < SHN_LORESERVE
- || sym->st_shndx == SHN_XINDEX))
- {
- /* If we are creating an executable with no normal
- symbol table and we do not export all symbols and
- this symbol is not defined in a DSO as well, ignore
- it. */
- if (!ld_state.export_all_dynamic && !ld_state.need_symtab)
- {
- assert (cnt >= file->nlocalsymbols);
- defp = file->symref[cnt];
- assert (defp != NULL);
-
- if (!defp->in_dso)
- /* Ignore it. */
- continue;
- }
-
- /* Determine the real section index in the source file. Use
- the XINDEX section content if necessary. */
- if (sym->st_shndx != SHN_XINDEX)
- xndx = sym->st_shndx;
-
- sym->st_value += file->scninfo[xndx].offset;
-
- assert (file->scninfo[xndx].outscnndx < SHN_LORESERVE
- || file->scninfo[xndx].outscnndx > SHN_HIRESERVE);
- if (unlikely (file->scninfo[xndx].outscnndx > SHN_LORESERVE))
- {
- /* It is not possible to have an extended section index
- table for the dynamic symbol table. */
- if (!ld_state.need_symtab)
- error (EXIT_FAILURE, 0, gettext ("\
-section index too large in dynamic symbol table"));
-
- assert (xndxdata != NULL);
- sym->st_shndx = SHN_XINDEX;
- xndx = file->scninfo[xndx].outscnndx;
-#ifndef NDEBUG
- need_xndx = true;
-#endif
- }
- else
- {
- sym->st_shndx = file->scninfo[xndx].outscnndx;
- xndx = 0;
- }
- }
- else if (sym->st_shndx == SHN_COMMON || sym->st_shndx == SHN_UNDEF)
- {
- /* Check whether we have a (real) definition for this
- symbol. If this is the case we skip this symbol
- table entry. */
- assert (cnt >= file->nlocalsymbols);
- defp = file->symref[cnt];
- assert (defp != NULL);
-
- assert (sym->st_shndx != SHN_COMMON || defp->defined);
-
- if ((sym->st_shndx == SHN_COMMON && !defp->common)
- || (sym->st_shndx == SHN_UNDEF && defp->defined)
- || defp->added)
- /* Ignore this symbol table entry, there is a
- "better" one or we already added it. */
- continue;
-
- /* Remember that we already added this symbol. */
- defp->added = 1;
-
- /* Adjust the section number for common symbols. */
- if (sym->st_shndx == SHN_COMMON)
- {
- sym->st_value = (ld_state.common_section->offset
- + file->symref[cnt]->merge.value);
- assert (ld_state.common_section->outscnndx < SHN_LORESERVE);
- sym->st_shndx = ld_state.common_section->outscnndx;
- xndx = 0;
- }
- }
- else if (unlikely (sym->st_shndx != SHN_ABS))
- {
- if (SPECIAL_SECTION_NUMBER_P (&ld_state, sym->st_shndx))
- /* XXX Add code to handle machine specific special
- sections. */
- abort ();
- }
-
- /* Add the symbol name to the string table. If the user
- chooses the highest level of stripping avoid adding names
- for local symbols in the string table. */
- if (sym->st_name != 0
- && (ld_state.strip < strip_everything
- || XELF_ST_BIND (sym->st_info) != STB_LOCAL))
- symstrent[nsym] = ebl_strtabadd (strtab,
- elf_strptr (file->elf,
- file->symstridx,
- sym->st_name), 0);
-
- /* Once we know the name this field will get the correct
- offset. For now set it to zero which means no name
- associated. */
- sym->st_name = 0;
-
- /* If we had to merge sections we have a completely new
- offset for the symbol. */
- if (file->has_merge_sections && file->symref[cnt] != NULL
- && file->symref[cnt]->merged)
- sym->st_value = file->symref[cnt]->merge.value;
-
- /* Create the record in the output sections. */
- assert (nsym < nsym_allocated);
- xelf_update_symshndx (symdata, xndxdata, nsym, sym, xndx, 0);
-
- /* Add the reference to the symbol record in case we need it.
- Find the symbol if this has not happened yet. We do
- not need the information for local symbols. */
- if (defp == NULL && cnt >= file->nlocalsymbols)
- {
- defp = file->symref[cnt];
- assert (defp != NULL);
- }
-
- /* Store the reference to the symbol record. The
- sorting code will have to keep this array in the
- correct order, too. */
- ndxtosym[nsym] = defp;
-
- /* One more entry finished. */
- if (cnt >= file->nlocalsymbols)
- {
- assert (file->symref[cnt]->outsymidx == 0);
- file->symref[cnt]->outsymidx = nsym;
- }
- file->symindirect[cnt] = nsym++;
- }
- }
- while ((file = file->next) != ld_state.relfiles->next);
- /* Make sure we didn't create the extended section index table for
- nothing. */
- assert (xndxdata == NULL || need_xndx);
-
-
- /* Create the version related sections. */
- if (ld_state.verneedscnidx != 0)
- {
- /* We know the number of input files and total number of
- referenced versions. This allows us to allocate the memory
- and then we iterate over the DSOs to get the version
- information. */
- struct usedfiles *runp;
-
- runp = ld_state.dsofiles->next;
- do
- allocate_version_names (runp, dynstrtab);
- while ((runp = runp->next) != ld_state.dsofiles->next);
-
- if (ld_state.needed != NULL)
- {
- runp = ld_state.needed->next;
- do
- allocate_version_names (runp, dynstrtab);
- while ((runp = runp->next) != ld_state.needed->next);
- }
- }
-
- /* At this point we should hide symbols and so on. */
- if (ld_state.default_bind_local || ld_state.version_str_tab.filled > 0)
- /* XXX Add one more test when handling of wildcard symbol names
- is supported. */
- {
- /* Check all non-local symbols whether they are on the export list. */
- bool any_reduced = false;
-
- for (cnt = 1; cnt < nsym; ++cnt)
- {
- XElf_Sym_vardef (sym);
-
- /* Note that we don't have to use 'xelf_getsymshndx' since we
- only need the binding and the symbol name. */
- xelf_getsym (symdata, cnt, sym);
- assert (sym != NULL);
-
- if (reduce_symbol_p (sym, symstrent[cnt]))
- {
- sym->st_info = XELF_ST_INFO (STB_LOCAL,
- XELF_ST_TYPE (sym->st_info));
- (void) xelf_update_sym (symdata, cnt, sym);
-
- /* Show that we don't need this string anymore. */
- if (ld_state.strip == strip_everything)
- {
- symstrent[cnt] = NULL;
- any_reduced = true;
- }
- }
- }
-
- if (unlikely (any_reduced))
- {
- /* Since we will not write names of local symbols in the
- output file and we have reduced the binding of some
- symbols the string table previously constructed contains
- too many string. Correct it. */
- struct Ebl_Strtab *newp = ebl_strtabinit (true);
-
- for (cnt = 1; cnt < nsym; ++cnt)
- if (symstrent[cnt] != NULL)
- symstrent[cnt] = ebl_strtabadd (newp,
- ebl_string (symstrent[cnt]), 0);
-
- ebl_strtabfree (strtab);
- strtab = newp;
- }
- }
-
- /* Add the references to DSOs. We can add these entries this late
- (after sorting out versioning) because references to DSOs are not
- effected. */
- if (ld_state.from_dso != NULL)
- {
- struct symbol *runp;
- size_t plt_base = nsym + ld_state.nfrom_dso - ld_state.nplt;
- size_t plt_idx = 0;
- size_t obj_idx = 0;
-
- assert (ld_state.nfrom_dso >= ld_state.nplt);
- runp = ld_state.from_dso;
- do
- {
- // XXX What about functions which are only referenced via
- // pointers and not PLT entries? Can we distinguish such uses?
- size_t idx;
- if (runp->type == STT_FUNC)
- {
- /* Store the PLT entry number. */
- runp->merge.value = plt_idx + 1;
- idx = plt_base + plt_idx++;
- }
- else
- idx = nsym + obj_idx++;
-
- XElf_Sym_vardef (sym);
- xelf_getsym_ptr (symdata, idx, sym);
-
- sym->st_value = 0;
- sym->st_size = runp->size;
- sym->st_info = XELF_ST_INFO (runp->weak ? STB_WEAK : STB_GLOBAL,
- runp->type);
- sym->st_other = STV_DEFAULT;
- sym->st_shndx = SHN_UNDEF;
-
- /* Create the record in the output sections. */
- xelf_update_symshndx (symdata, xndxdata, idx, sym, 0, 0);
-
- const char *name = runp->name;
- size_t namelen = 0;
-
- if (runp->file->verdefdata != NULL)
- {
- // XXX Is it useful to add the versym value to struct symbol?
- XElf_Versym versym;
-
- (void) xelf_getversym_copy (runp->file->versymdata, runp->symidx,
- versym);
-
- /* One can only link with the default version. */
- assert ((versym & 0x8000) == 0);
-
- const char *versname
- = ebl_string (runp->file->verdefent[versym]);
-
- size_t versname_len = strlen (versname) + 1;
- namelen = strlen (name) + versname_len + 2;
- char *newp = (char *) obstack_alloc (&ld_state.smem, namelen);
- memcpy (stpcpy (stpcpy (newp, name), "@@"),
- versname, versname_len);
- name = newp;
- }
-
- symstrent[idx] = ebl_strtabadd (strtab, name, namelen);
-
- /* Record the initial index in the symbol table. */
- runp->outsymidx = idx;
-
- /* Remember the symbol record this ELF symbol came from. */
- ndxtosym[idx] = runp;
- }
- while ((runp = runp->next) != ld_state.from_dso);
-
- assert (nsym + obj_idx == plt_base);
- assert (plt_idx == ld_state.nplt);
- nsym = plt_base + plt_idx;
- }
-
- /* Now we know how many symbols will be in the output file. Adjust
- the count in the section data. */
- symdata->d_size = xelf_fsize (ld_state.outelf, ELF_T_SYM, nsym);
- if (unlikely (xndxdata != NULL))
- xndxdata->d_size = xelf_fsize (ld_state.outelf, ELF_T_WORD, nsym);
-
- /* Create the symbol string table section. */
- strscn = elf_newscn (ld_state.outelf);
- ld_state.strscnidx = elf_ndxscn (strscn);
- data = elf_newdata (strscn);
- xelf_getshdr (strscn, shdr);
- if (data == NULL || shdr == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section for output file: %s"),
- elf_errmsg (-1));
-
- /* Create a compact string table, allocate the memory for it, and
- fill in the section data information. */
- ebl_strtabfinalize (strtab, data);
-
- shdr->sh_type = SHT_STRTAB;
- assert (shdr->sh_entsize == 0);
-
- if (unlikely (xelf_update_shdr (strscn, shdr) == 0))
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section for output file: %s"),
- elf_errmsg (-1));
-
- /* Fill in the offsets of the symbol names. */
- for (cnt = 1; cnt < nsym; ++cnt)
- if (symstrent[cnt] != NULL)
- {
- XElf_Sym_vardef (sym);
-
- /* Note that we don't have to use 'xelf_getsymshndx' since we don't
- modify the section index. */
- xelf_getsym (symdata, cnt, sym);
- /* This better worked, we did it before. */
- assert (sym != NULL);
- sym->st_name = ebl_strtaboffset (symstrent[cnt]);
- (void) xelf_update_sym (symdata, cnt, sym);
- }
-
- /* Since we are going to reorder the symbol table but still have to
- be able to find the new position based on the old one (since the
- latter is stored in 'symindirect' information of the input file
- data structure) we have to create yet another indirection
- table. */
- ld_state.dblindirect = dblindirect
- = (Elf32_Word *) xmalloc (nsym * sizeof (Elf32_Word));
-
- /* Sort the symbol table so that the local symbols come first. */
- /* XXX We don't use stable sorting here. It seems not necessary and
- would be more expensive. If it turns out to be necessary this can
- be fixed easily. */
- nsym_local = 1;
- cnt = nsym - 1;
- while (nsym_local < cnt)
- {
- XElf_Sym_vardef (locsym);
- Elf32_Word locxndx;
- XElf_Sym_vardef (globsym);
- Elf32_Word globxndx;
-
- do
- {
- xelf_getsymshndx (symdata, xndxdata, nsym_local, locsym, locxndx);
- /* This better works. */
- assert (locsym != NULL);
-
- if (XELF_ST_BIND (locsym->st_info) != STB_LOCAL
- && (ld_state.need_symtab || ld_state.export_all_dynamic))
- {
- do
- {
- xelf_getsymshndx (symdata, xndxdata, cnt, globsym, globxndx);
- /* This better works. */
- assert (globsym != NULL);
-
- if (unlikely (XELF_ST_BIND (globsym->st_info) == STB_LOCAL))
- {
- /* We swap the two entries. */
-#if NATIVE_ELF != 0
- /* Since we directly modify the data in the ELF
- data structure we have to make a copy of one
- of the entries. */
- XElf_Sym locsym_copy = *locsym;
- locsym = &locsym_copy;
-#endif
- xelf_update_symshndx (symdata, xndxdata, nsym_local,
- globsym, globxndx, 1);
- xelf_update_symshndx (symdata, xndxdata, cnt,
- locsym, locxndx, 1);
-
- /* Also swap the cross references. */
- dblindirect[nsym_local] = cnt;
- dblindirect[cnt] = nsym_local;
-
- /* And the entries for the symbol names. */
- struct Ebl_Strent *strtmp = symstrent[nsym_local];
- symstrent[nsym_local] = symstrent[cnt];
- symstrent[cnt] = strtmp;
-
- /* And the mapping from symbol table entry to
- struct symbol record. */
- struct symbol *symtmp = ndxtosym[nsym_local];
- ndxtosym[nsym_local] = ndxtosym[cnt];
- ndxtosym[cnt] = symtmp;
-
- /* Go to the next entry. */
- ++nsym_local;
- --cnt;
-
- break;
- }
-
- dblindirect[cnt] = cnt;
- }
- while (nsym_local < --cnt);
-
- break;
- }
-
- dblindirect[nsym_local] = nsym_local;
- }
- while (++nsym_local < cnt);
- }
-
- /* The symbol 'nsym_local' is currently pointing to might be local,
- too. Check and increment the variable if this is the case. */
- if (likely (nsym_local < nsym))
- {
- XElf_Sym_vardef (locsym);
-
- /* This entry isn't moved. */
- dblindirect[nsym_local] = nsym_local;
-
- /* Note that it is OK to not use 'xelf_getsymshndx' here. */
- xelf_getsym (symdata, nsym_local, locsym);
- /* This better works. */
- assert (locsym != NULL);
-
- if (XELF_ST_BIND (locsym->st_info) == STB_LOCAL)
- ++nsym_local;
- }
-
-
- /* We need the versym array right away to keep track of the version
- symbols. */
- if (ld_state.versymscnidx != 0)
- {
- /* We allocate more memory than we need since the array is morroring
- the dynamic symbol table and not the normal symbol table. I.e.,
- no local symbols are present. */
- versymscn = elf_getscn (ld_state.outelf, ld_state.versymscnidx);
- versymdata = elf_newdata (versymscn);
- if (versymdata == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create versioning section: %s"),
- elf_errmsg (-1));
-
- versymdata->d_size = xelf_fsize (ld_state.outelf, ELF_T_HALF,
- nsym - nsym_local + 1);
- versymdata->d_buf = xcalloc (1, versymdata->d_size);
- versymdata->d_align = xelf_fsize (ld_state.outelf, ELF_T_HALF, 1);
- versymdata->d_off = 0;
- versymdata->d_type = ELF_T_HALF;
- }
-
-
- /* If we have to construct the dynamic symbol table we must not include
- the local symbols. If the normal symbol has to be emitted as well
- we haven't done anything else yet and we can construct it from
- scratch now. */
- if (unlikely (!ld_state.need_symtab))
- {
- /* Note that the following code works even if there is no entry
- to remove since the zeroth entry is always local. */
- size_t reduce = xelf_fsize (ld_state.outelf, ELF_T_SYM, nsym_local - 1);
-
- XElf_Sym_vardef (nullsym);
- xelf_getsym_ptr (symdata, nsym_local - 1, nullsym);
-
- /* Note that we don't have to use 'xelf_update_symshndx' since
- this is the dynamic symbol table we write. */
- (void) xelf_update_sym (symdata, nsym_local - 1,
- memset (nullsym, '\0', sizeof (*nullsym)));
-
- /* Update the buffer pointer and size in the output data. */
- symdata->d_buf = (char *) symdata->d_buf + reduce;
- symdata->d_size -= reduce;
-
- /* Add the version symbol information. */
- if (versymdata != NULL)
- {
- nsym_dyn = 1;
- for (cnt = nsym_local; cnt < nsym; ++cnt, ++nsym_dyn)
- {
- struct symbol *symp = ndxtosym[cnt];
-
- if (symp->file->versymdata != NULL)
- {
- GElf_Versym versym;
-
- gelf_getversym (symp->file->versymdata, symp->symidx,
- &versym);
-
- (void) gelf_update_versym (versymdata, nsym_dyn,
- &symp->file->verdefused[versym]);
- }
- }
- }
-
- /* Since we only created the dynamic symbol table the number of
- dynamic symbols is the total number of symbols. */
- nsym_dyn = nsym - nsym_local + 1;
-
- /* XXX TBI. Create whatever data structure is missing. */
- abort ();
- }
- else if (ld_state.need_dynsym)
- {
- /* Create the dynamic symbol table section data along with the
- string table. We look at all non-local symbols we found for
- the normal symbol table and add those. */
- dynsymscn = elf_getscn (ld_state.outelf, ld_state.dynsymscnidx);
- dynsymdata = elf_newdata (dynsymscn);
-
- dynstrdata = elf_newdata (elf_getscn (ld_state.outelf,
- ld_state.dynstrscnidx));
- if (dynsymdata == NULL || dynstrdata == NULL)
- error (EXIT_FAILURE, 0, gettext ("\
-cannot create dynamic symbol table for output file: %s"),
- elf_errmsg (-1));
-
- nsym_dyn_allocated = nsym - nsym_local + 1;
- dynsymdata->d_size = xelf_fsize (ld_state.outelf, ELF_T_SYM,
- nsym_dyn_allocated);
- dynsymdata->d_buf = memset (xmalloc (dynsymdata->d_size), '\0',
- xelf_fsize (ld_state.outelf, ELF_T_SYM, 1));
- dynsymdata->d_type = ELF_T_SYM;
- dynsymdata->d_off = 0;
- dynsymdata->d_align = xelf_fsize (ld_state.outelf, ELF_T_ADDR, 1);
-
- /* We need one more array which contains the hash codes of the
- symbol names. */
- hashcodes = (Elf32_Word *) xcalloc (nsym_dyn_allocated,
- sizeof (Elf32_Word));
-
- /* We have and empty entry at the beginning. */
- nsym_dyn = 1;
-
- /* We don't mix PLT symbols and others. */
- size_t plt_idx = 1;
- size_t obj_idx = 1 + ld_state.nplt;
-
- /* Populate the table. */
- for (cnt = nsym_local; cnt < nsym; ++cnt)
- {
- XElf_Sym_vardef (sym);
-
- xelf_getsym (symdata, cnt, sym);
- assert (sym != NULL);
-
- if (sym->st_shndx == SHN_XINDEX)
- error (EXIT_FAILURE, 0, gettext ("\
-section index too large in dynamic symbol table"));
-
- /* We do not add the symbol to the dynamic symbol table if
-
- - the symbol is for a file
- - it is not externally visible (internal, hidden)
- - if export_all_dynamic is not set and is only defined in
- the executable (i.e., it is defined, but not (also) in
- in DSO)
-
- Set symstrent[cnt] to NULL in case an entry is ignored. */
- if (XELF_ST_TYPE (sym->st_info) == STT_FILE
- || XELF_ST_VISIBILITY (sym->st_other) == STV_INTERNAL
- || XELF_ST_VISIBILITY (sym->st_other) == STV_HIDDEN
- || (!ndxtosym[cnt]->in_dso && ndxtosym[cnt]->defined))
- {
- symstrent[cnt] = NULL;
- continue;
- }
-
- size_t idx;
- if (ndxtosym[cnt]->in_dso && ndxtosym[cnt]->type == STT_FUNC)
- {
- idx = plt_idx++;
- assert (idx < 1 + ld_state.nplt);
- }
- else
- {
- idx = obj_idx++;
- assert (idx < nsym_dyn_allocated);
- }
-
- /* Add the version information. */
- if (versymdata != NULL)
- {
- struct symbol *symp = ndxtosym[cnt];
-
- if (symp->file->verdefdata != NULL)
- {
- GElf_Versym versym;
-
- gelf_getversym (symp->file->versymdata, symp->symidx,
- &versym);
-
- (void) gelf_update_versym (versymdata, idx,
- &symp->file->verdefused[versym]);
- }
- else
- {
- /* XXX Add support for version definitions. */
- GElf_Versym global = VER_NDX_GLOBAL;
- (void) gelf_update_versym (versymdata, idx, &global);
- }
- }
-
- /* Store the index of the symbol in the dynamic symbol table. */
- ndxtosym[cnt]->outdynsymidx = idx;
-
- /* Create a new string table entry. */
- const char *str = ndxtosym[cnt]->name;
- symstrent[cnt] = ebl_strtabadd (dynstrtab, str, 0);
- hashcodes[idx] = elf_hash (str);
- ++nsym_dyn;
- }
- assert (nsym_dyn == obj_idx);
- assert (ld_state.nplt + 1 == plt_idx);
-
- /* Update the information about the symbol section. */
- if (versymdata != NULL)
- {
- /* Correct the size now that we know how many entries the
- dynamic symbol table has. */
- versymdata->d_size = xelf_fsize (ld_state.outelf, ELF_T_HALF,
- nsym_dyn);
-
- /* Add the reference to the symbol table. */
- xelf_getshdr (versymscn, shdr);
- assert (shdr != NULL);
-
- shdr->sh_link = ld_state.dynsymscnidx;
-
- (void) xelf_update_shdr (versymscn, shdr);
- }
- }
-
- if (ld_state.file_type != relocatable_file_type)
- {
- size_t nbucket;
- Elf32_Word *bucket;
- Elf32_Word *chain;
- size_t nchain;
- Elf_Scn *hashscn;
- Elf_Data *hashdata;
-
- /* Finalize the dynamic string table. */
- ebl_strtabfinalize (dynstrtab, dynstrdata);
-
- /* Determine the "optimal" bucket size. */
- nbucket = optimal_bucket_size (hashcodes, nsym_dyn, ld_state.optlevel);
-
- /* Create the .hash section data structures. */
- assert (ld_state.hashscnidx != 0);
- hashscn = elf_getscn (ld_state.outelf, ld_state.hashscnidx);
- xelf_getshdr (hashscn, shdr);
- hashdata = elf_newdata (hashscn);
- if (shdr == NULL || hashdata == NULL)
- error (EXIT_FAILURE, 0, gettext ("\
-cannot create hash table section for output file: %s"),
- elf_errmsg (-1));
-
- shdr->sh_link = ld_state.dynsymscnidx;
- (void) xelf_update_shdr (hashscn, shdr);
-
- hashdata->d_size = (2 + nsym_dyn + nbucket) * sizeof (Elf32_Word);
- hashdata->d_buf = xcalloc (1, hashdata->d_size);
- hashdata->d_align = sizeof (Elf32_Word);
- hashdata->d_type = ELF_T_WORD;
- hashdata->d_off = 0;
-
- ((Elf32_Word *) hashdata->d_buf)[0] = nbucket;
- ((Elf32_Word *) hashdata->d_buf)[1] = nsym_dyn;
- bucket = &((Elf32_Word *) hashdata->d_buf)[2];
- chain = &((Elf32_Word *) hashdata->d_buf)[2 + nbucket];
-
- /* Haven't yet filled in any chain value. */
- nchain = 0;
-
- /* Now put the names in. */
- for (cnt = nsym_local; cnt < nsym; ++cnt)
- if (symstrent[cnt] != NULL)
- {
- XElf_Sym_vardef (sym);
- size_t hashidx;
- size_t dynidx = ndxtosym[cnt]->outdynsymidx;
-
-#if NATIVE_ELF != 0
- XElf_Sym *osym;
- memcpy (xelf_getsym (dynsymdata, dynidx, sym),
- xelf_getsym (symdata, cnt, osym),
- sizeof (XElf_Sym));
-#else
- xelf_getsym (symdata, cnt, sym);
- assert (sym != NULL);
-#endif
-
- sym->st_name = ebl_strtaboffset (symstrent[cnt]);
-
- (void) xelf_update_sym (dynsymdata, dynidx, sym);
-
- /* Add to the hash table. */
- hashidx = hashcodes[dynidx] % nbucket;
- if (bucket[hashidx] == 0)
- bucket[hashidx] = dynidx;
- else
- {
- hashidx = bucket[hashidx];
- while (chain[hashidx] != 0)
- hashidx = chain[hashidx];
-
- chain[hashidx] = dynidx;
- }
- }
-
- free (hashcodes);
-
- /* We don't need the map from the symbol table index to the symbol
- structure anymore. */
- free (ndxtosym);
-
- /* Create the required version section. */
- if (ld_state.verneedscnidx != 0)
- {
- Elf_Scn *verneedscn;
- Elf_Data *verneeddata;
- struct usedfiles *runp;
- size_t verneed_size = xelf_fsize (ld_state.outelf, ELF_T_VNEED, 1);
- size_t vernaux_size = xelf_fsize (ld_state.outelf, ELF_T_VNAUX, 1);
- size_t offset;
- int ntotal;
-
- verneedscn = elf_getscn (ld_state.outelf, ld_state.verneedscnidx);
- xelf_getshdr (verneedscn, shdr);
- verneeddata = elf_newdata (verneedscn);
- if (shdr == NULL || verneeddata == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create versioning data: %s"),
- elf_errmsg (-1));
-
- verneeddata->d_size = (ld_state.nverdeffile * verneed_size
- + ld_state.nverdefused * vernaux_size);
- verneeddata->d_buf = xmalloc (verneeddata->d_size);
- verneeddata->d_type = ELF_T_VNEED;
- verneeddata->d_align = xelf_fsize (ld_state.outelf, ELF_T_WORD, 1);
- verneeddata->d_off = 0;
-
- offset = 0;
- ntotal = ld_state.nverdeffile;
- runp = ld_state.dsofiles->next;
- do
- {
- offset = create_verneed_data (offset, verneeddata, runp,
- &ntotal);
- runp = runp->next;
- }
- while (ntotal > 0 && runp != ld_state.dsofiles->next);
-
- if (ntotal > 0)
- {
- runp = ld_state.needed->next;
- do
- {
- offset = create_verneed_data (offset, verneeddata, runp,
- &ntotal);
- runp = runp->next;
- }
- while (ntotal > 0 && runp != ld_state.needed->next);
- }
-
- assert (offset == verneeddata->d_size);
-
- /* Add the needed information to the section header. */
- shdr->sh_link = ld_state.dynstrscnidx;
- shdr->sh_info = ld_state.nverdeffile;
- (void) xelf_update_shdr (verneedscn, shdr);
- }
-
- /* Adjust the section size. */
- dynsymdata->d_size = xelf_fsize (ld_state.outelf, ELF_T_SYM, nsym_dyn);
- if (versymdata != NULL)
- versymdata->d_size = xelf_fsize (ld_state.outelf, ELF_T_HALF,
- nsym_dyn);
-
- /* Add the remaining information to the section header. */
- xelf_getshdr (dynsymscn, shdr);
- /* There is always exactly one local symbol. */
- shdr->sh_info = 1;
- /* Reference the string table. */
- shdr->sh_link = ld_state.dynstrscnidx;
- /* Write the updated info back. */
- (void) xelf_update_shdr (dynsymscn, shdr);
- }
- else
- /* We don't need the map from the symbol table index to the symbol
- structure anymore. */
- free (ndxtosym);
-
- /* We don't need the string table anymore. */
- free (symstrent);
-
- /* Remember the total number of symbols in the dynamic symbol table. */
- ld_state.ndynsym = nsym_dyn;
-
- /* Fill in the section header information. */
- symscn = elf_getscn (ld_state.outelf, ld_state.symscnidx);
- xelf_getshdr (symscn, shdr);
- if (shdr == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create symbol table for output file: %s"),
- elf_errmsg (-1));
-
- shdr->sh_type = SHT_SYMTAB;
- shdr->sh_link = ld_state.strscnidx;
- shdr->sh_info = nsym_local;
- shdr->sh_entsize = xelf_fsize (ld_state.outelf, ELF_T_SYM, 1);
-
- (void) xelf_update_shdr (symscn, shdr);
-
-
- /* Add names for the generated sections. */
- if (ld_state.symscnidx != 0)
- symtab_ent = ebl_strtabadd (ld_state.shstrtab, ".symtab", 8);
- if (ld_state.xndxscnidx != 0)
- xndx_ent = ebl_strtabadd (ld_state.shstrtab, ".symtab_shndx", 14);
- if (ld_state.strscnidx != 0)
- strtab_ent = ebl_strtabadd (ld_state.shstrtab, ".strtab", 8);
- /* At this point we would have to test for failures in the
- allocation. But we skip this. First, the problem will be caught
- latter when doing more allocations for the section header table.
- Even if this would not be the case all that would happen is that
- the section names are empty. The binary would still be usable if
- it is an executable or a DSO. Not adding the test here saves
- quite a bit of code. */
-
-
- /* Finally create the section for the section header string table. */
- shstrtab_scn = elf_newscn (ld_state.outelf);
- shstrtab_ndx = elf_ndxscn (shstrtab_scn);
- if (unlikely (shstrtab_ndx == SHN_UNDEF))
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section header string section: %s"),
- elf_errmsg (-1));
-
- /* Add the name of the section to the string table. */
- shstrtab_ent = ebl_strtabadd (ld_state.shstrtab, ".shstrtab", 10);
- if (unlikely (shstrtab_ent == NULL))
- error (EXIT_FAILURE, errno,
- gettext ("cannot create section header string section"));
-
- /* Finalize the section header string table. */
- data = elf_newdata (shstrtab_scn);
- if (data == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section header string section: %s"),
- elf_errmsg (-1));
- ebl_strtabfinalize (ld_state.shstrtab, data);
-
- /* Now we know the string offsets for all section names. */
- for (cnt = 0; cnt < ld_state.nallsections; ++cnt)
- if (ld_state.allsections[cnt]->scnidx != 0)
- {
- Elf_Scn *scn;
-
- scn = elf_getscn (ld_state.outelf, ld_state.allsections[cnt]->scnidx);
-
- xelf_getshdr (scn, shdr);
- assert (shdr != NULL);
-
- shdr->sh_name = ebl_strtaboffset (ld_state.allsections[cnt]->nameent);
-
- if (xelf_update_shdr (scn, shdr) == 0)
- assert (0);
- }
-
- /* Add the names for the generated sections to the respective
- section headers. */
- if (symtab_ent != NULL)
- {
- Elf_Scn *scn = elf_getscn (ld_state.outelf, ld_state.symscnidx);
-
- xelf_getshdr (scn, shdr);
- /* This cannot fail, we already accessed the header before. */
- assert (shdr != NULL);
-
- shdr->sh_name = ebl_strtaboffset (symtab_ent);
-
- (void) xelf_update_shdr (scn, shdr);
- }
- if (xndx_ent != NULL)
- {
- Elf_Scn *scn = elf_getscn (ld_state.outelf, ld_state.xndxscnidx);
-
- xelf_getshdr (scn, shdr);
- /* This cannot fail, we already accessed the header before. */
- assert (shdr != NULL);
-
- shdr->sh_name = ebl_strtaboffset (xndx_ent);
-
- (void) xelf_update_shdr (scn, shdr);
- }
- if (strtab_ent != NULL)
- {
- Elf_Scn *scn = elf_getscn (ld_state.outelf, ld_state.strscnidx);
-
- xelf_getshdr (scn, shdr);
- /* This cannot fail, we already accessed the header before. */
- assert (shdr != NULL);
-
- shdr->sh_name = ebl_strtaboffset (strtab_ent);
-
- (void) xelf_update_shdr (scn, shdr);
- }
-
- /* And the section header table section itself. */
- xelf_getshdr (shstrtab_scn, shdr);
- if (shdr == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section header string section: %s"),
- elf_errmsg (-1));
-
- shdr->sh_name = ebl_strtaboffset (shstrtab_ent);
- shdr->sh_type = SHT_STRTAB;
-
- if (unlikely (xelf_update_shdr (shstrtab_scn, shdr) == 0))
- error (EXIT_FAILURE, 0,
- gettext ("cannot create section header string section: %s"),
- elf_errmsg (-1));
-
-
- /* Add the correct section header info to the section group sections. */
- groups = ld_state.groups;
- while (groups != NULL)
- {
- Elf_Scn *scn;
- struct scngroup *oldp;
- Elf32_Word si;
-
- scn = elf_getscn (ld_state.outelf, groups->outscnidx);
- xelf_getshdr (scn, shdr);
- assert (shdr != NULL);
-
- shdr->sh_name = ebl_strtaboffset (groups->nameent);
- shdr->sh_type = SHT_GROUP;
- shdr->sh_flags = 0;
- shdr->sh_link = ld_state.symscnidx;
- shdr->sh_entsize = sizeof (Elf32_Word);
-
- /* Determine the index for the signature symbol. */
- si = groups->symbol->file->symindirect[groups->symbol->symidx];
- if (si == 0)
- {
- assert (groups->symbol->file->symref[groups->symbol->symidx]
- != NULL);
- si = groups->symbol->file->symref[groups->symbol->symidx]->outsymidx;
- assert (si != 0);
- }
- shdr->sh_info = ld_state.dblindirect[si];
-
- (void) xelf_update_shdr (scn, shdr);
-
- oldp = groups;
- groups = groups->next;
- free (oldp);
- }
-
-
- if (ld_state.file_type != relocatable_file_type)
- {
- size_t nphdr;
- XElf_Addr addr;
- struct output_segment *segment;
- Elf_Scn *scn;
- Elf32_Word nsec;
- XElf_Phdr_vardef (phdr);
-
- /* Every executable needs a program header. The number of entries
- varies. One exists for each segment. Each SHT_NOTE section gets
- one, too. For dynamically linked executables we have to create
- one for the program header, the interpreter, and the dynamic
- section. First count the number of segments.
-
- XXX Determine whether the segment is non-empty. */
- nphdr = 0;
- segment = ld_state.output_segments;
- while (segment != NULL)
- {
- ++nphdr;
- segment = segment->next;
- }
-
- /* Add the number of SHT_NOTE sections. We counted them earlier. */
- nphdr += ld_state.nnotesections;
-
- /* If we create a DSO or the file is linked against DSOs we have three
- more entries: INTERP, PHDR, DYNAMIC. */
- if (dynamically_linked_p ())
- nphdr += 3;
-
- /* Create the program header structure. */
- if (xelf_newphdr (ld_state.outelf, nphdr) == 0)
- error (EXIT_FAILURE, 0, gettext ("cannot create program header: %s"),
- elf_errmsg (-1));
-
-
- /* Determine the section sizes and offsets. We have to do this
- to be able to determine the memory layout (which normally
- differs from the file layout). */
- if (elf_update (ld_state.outelf, ELF_C_NULL) == -1)
- error (EXIT_FAILURE, 0, gettext ("while determining file layout: %s"),
- elf_errmsg (-1));
-
-
- /* Now determine the memory addresses of all the sections and
- segments. */
- nsec = 0;
- scn = elf_getscn (ld_state.outelf, ld_state.allsections[nsec]->scnidx);
- xelf_getshdr (scn, shdr);
- assert (shdr != NULL);
-
- /* The address we start with is the offset of the first (not
- zeroth) section. */
- addr = shdr->sh_offset;
-
- /* The index of the first loadable segment. */
- nphdr = 1 + (dynamically_linked_p () == true) * 2;
-
- segment = ld_state.output_segments;
- while (segment != NULL)
- {
- struct output_rule *orule;
- bool first_section = true;
- XElf_Off nobits_size = 0;
- XElf_Off memsize = 0;
-
- /* the minimum alignment is a page size. */
- segment->align = ld_state.pagesize;
-
- for (orule = segment->output_rules; orule != NULL;
- orule = orule->next)
- if (orule->tag == output_section)
- {
- XElf_Off oldoff;
-
- /* See whether this output rule corresponds to the next
- section. Yes, this is a pointer comparison. */
- if (ld_state.allsections[nsec]->name
- != orule->val.section.name)
- /* No, ignore this output rule. */
- continue;
-
- /* We assign addresses only in segments which are actually
- loaded. */
- if (segment->mode != 0)
- {
- /* Adjust the offset of the input sections. */
- struct scninfo *isect;
- struct scninfo *first;
-
- isect = first = ld_state.allsections[nsec]->last;
- if (isect != NULL)
- do
- isect->offset += addr;
- while ((isect = isect->next) != first);
-
- /* Set the address of current section. */
- shdr->sh_addr = addr;
-
- /* Write the result back. */
- (void) xelf_update_shdr (scn, shdr);
-
- /* Remember the address. */
- ld_state.allsections[nsec]->addr = addr;
- }
-
- if (first_section)
- {
- /* The first segment starts at offset zero. */
- if (segment == ld_state.output_segments)
- {
- segment->offset = 0;
- segment->addr = addr - shdr->sh_offset;
- }
- else
- {
- segment->offset = shdr->sh_offset;
- segment->addr = addr;
- }
-
- /* Determine the maximum alignment requirement. */
- segment->align = MAX (segment->align, shdr->sh_addralign);
-
- first_section = false;
- }
-
- memsize = shdr->sh_offset - segment->offset + shdr->sh_size;
- if (nobits_size != 0 && shdr->sh_type != SHT_NOTE)
- error (EXIT_FAILURE, 0, gettext ("\
-internal error: nobits section follows nobits section"));
- if (shdr->sh_type == SHT_NOBITS)
- nobits_size += shdr->sh_size;
-
- /* Determine the new address which is computed using
- the difference of the offsets on the sections. Note
- that this assumes that the sections following each
- other in the section header table are also
- consecutive in the file. This is true here because
- libelf constructs files this way. */
- oldoff = shdr->sh_offset;
-
- if (++nsec >= ld_state.nallsections)
- break;
-
- scn = elf_getscn (ld_state.outelf,
- ld_state.allsections[nsec]->scnidx);
- xelf_getshdr (scn, shdr);
- assert (shdr != NULL);
-
- /* This is the new address resulting from the offsets
- in the file. */
- assert (oldoff <= shdr->sh_offset);
- addr += shdr->sh_offset - oldoff;
- }
- else
- {
- assert (orule->tag == output_assignment);
-
- if (strcmp (orule->val.assignment->variable, ".") == 0)
- /* This is a change of the address. */
- addr = eval_expression (orule->val.assignment->expression,
- addr);
- else if (orule->val.assignment->sym != NULL)
- {
- /* This symbol is used. Update the symbol table
- entry. */
- XElf_Sym_vardef (sym);
- size_t idx;
-
- /* Note that we do not have to use
- xelf_getsymshndx since we only update the
- symbol address, not the section
- information. */
- idx = dblindirect[orule->val.assignment->sym->outsymidx];
- xelf_getsym (symdata, idx, sym);
- sym->st_value = addr;
- (void) xelf_update_sym (symdata, idx, sym);
-
- idx = orule->val.assignment->sym->outdynsymidx;
- if (idx != 0)
- {
- assert (dynsymdata != NULL);
- xelf_getsym (dynsymdata, idx, sym);
- sym->st_value = addr;
- (void) xelf_update_sym (dynsymdata, idx, sym);
- }
- }
- }
-
- /* Store the segment parameter for loadable segments. */
- if (segment->mode != 0)
- {
- xelf_getphdr_ptr (ld_state.outelf, nphdr, phdr);
-
- phdr->p_type = PT_LOAD;
- phdr->p_offset = segment->offset;
- phdr->p_vaddr = segment->addr;
- phdr->p_paddr = phdr->p_vaddr;
- phdr->p_filesz = memsize - nobits_size;
- phdr->p_memsz = memsize;
- phdr->p_flags = segment->mode;
- phdr->p_align = segment->align;
-
- (void) xelf_update_phdr (ld_state.outelf, nphdr, phdr);
- ++nphdr;
- }
-
- segment = segment->next;
- }
-
- /* Create the other program header entries. */
- xelf_getehdr (ld_state.outelf, ehdr);
- assert (ehdr != NULL);
-
- xelf_getphdr_ptr (ld_state.outelf, 1, phdr);
- phdr->p_type = PT_PHDR;
- phdr->p_offset = ehdr->e_phoff;
- phdr->p_vaddr = ld_state.output_segments->addr + phdr->p_offset;
- phdr->p_paddr = phdr->p_vaddr;
- phdr->p_filesz = ehdr->e_phnum * ehdr->e_phentsize;
- phdr->p_memsz = phdr->p_filesz;
- phdr->p_flags = 0; /* No need to set PF_R or so. */
- phdr->p_align = xelf_fsize (ld_state.outelf, ELF_T_ADDR, 1);
- (void) xelf_update_phdr (ld_state.outelf, 0, phdr);
-
-
- /* Adjust the addresses in the addresses of the symbol according
- to the load addresses of the sections. */
- if (ld_state.need_symtab)
- for (cnt = 1; cnt < nsym; ++cnt)
- {
- XElf_Sym_vardef (sym);
- Elf32_Word shndx;
-
- xelf_getsymshndx (symdata, xndxdata, cnt, sym, shndx);
- assert (sym != NULL);
-
- if (sym->st_shndx != SHN_XINDEX)
- shndx = sym->st_shndx;
-
- if ((shndx > SHN_UNDEF && shndx < SHN_LORESERVE)
- || shndx > SHN_HIRESERVE)
- {
- /* Note we subtract 1 from the section index since ALLSECTIONS
- does not store the dummy section with offset zero. */
- sym->st_value += ld_state.allsections[shndx - 1]->addr;
-
- /* We don't have to use 'xelf_update_symshndx' since the
- section number doesn't change. */
- (void) xelf_update_sym (symdata, cnt, sym);
- }
- }
-
- if (ld_state.need_dynsym)
- for (cnt = 1; cnt < nsym_dyn; ++cnt)
- {
- XElf_Sym_vardef (sym);
-
- xelf_getsym (dynsymdata, cnt, sym);
- assert (sym != NULL);
-
- if (sym->st_shndx > SHN_UNDEF && sym->st_shndx < SHN_LORESERVE)
- {
- /* Note we subtract 1 from the section index since ALLSECTIONS
- does not store the dummy section with offset zero. */
- sym->st_value += ld_state.allsections[sym->st_shndx - 1]->addr;
-
- /* We don't have to use 'xelf_update_symshndx' since the
- section number doesn't change. */
- (void) xelf_update_sym (dynsymdata, cnt, sym);
- }
- }
-
-
- /* Now is a good time to determine the values of all the symbols
- we encountered. */
- // XXX This loop is very inefficient. The hash tab iterator also
- // returns all symbols in DSOs.
- struct symbol *se;
- void *p = NULL;
- while ((se = ld_symbol_tab_iterate (&ld_state.symbol_tab, &p)) != NULL)
- if (! se->in_dso)
- {
- XElf_Sym_vardef (sym);
-
- addr = 0;
-
- if (se->outdynsymidx != 0)
- {
- xelf_getsym (dynsymdata, se->outdynsymidx, sym);
- assert (sym != NULL);
- addr = sym->st_value;
- }
- else if (se->outsymidx != 0)
- {
- assert (dblindirect[se->outsymidx] != 0);
- xelf_getsym (symdata, dblindirect[se->outsymidx], sym);
- assert (sym != NULL);
- addr = sym->st_value;
- }
- else
- abort ();
-
- se->merge.value = addr;
- }
-
- /* Complete the header of the .rel.dyn/.rela.dyn section. Point
- to the symbol table. The sh_info field is left zero since
- there is no specific section the contained relocations are
- for. */
- if (ld_state.reldynscnidx != 0)
- {
- assert (ld_state.dynsymscnidx != 0);
- scn = elf_getscn (ld_state.outelf, ld_state.reldynscnidx);
- xelf_getshdr (scn, shdr);
- assert (shdr != NULL);
-
- shdr->sh_link = ld_state.dynsymscnidx;
-
- (void) xelf_update_shdr (scn, shdr);
- }
-
- /* Fill in the dynamic segment/section. */
- if (dynamically_linked_p ())
- {
- Elf_Scn *outscn;
-
- assert (ld_state.interpscnidx != 0);
- xelf_getshdr (elf_getscn (ld_state.outelf, ld_state.interpscnidx),
- shdr);
- assert (shdr != NULL);
-
- /* The interpreter string. */
- // XXX Do we need to support files (DSOs) without interpreters?
- xelf_getphdr_ptr (ld_state.outelf, 1, phdr);
- phdr->p_type = PT_INTERP;
- phdr->p_offset = shdr->sh_offset;
- phdr->p_vaddr = shdr->sh_addr;
- phdr->p_paddr = phdr->p_vaddr;
- phdr->p_filesz = shdr->sh_size;
- phdr->p_memsz = phdr->p_filesz;
- phdr->p_flags = 0; /* No need to set PF_R or so. */
- phdr->p_align = 1; /* It's a string. */
-
- (void) xelf_update_phdr (ld_state.outelf, 1, phdr);
-
- /* The pointer to the dynamic section. We this we need to
- get the information for the dynamic section first. */
- assert (ld_state.dynamicscnidx);
- outscn = elf_getscn (ld_state.outelf, ld_state.dynamicscnidx);
- xelf_getshdr (outscn, shdr);
- assert (shdr != NULL);
-
- xelf_getphdr_ptr (ld_state.outelf, 2, phdr);
- phdr->p_type = PT_DYNAMIC;
- phdr->p_offset = shdr->sh_offset;
- phdr->p_vaddr = shdr->sh_addr;
- phdr->p_paddr = phdr->p_vaddr;
- phdr->p_filesz = shdr->sh_size;
- phdr->p_memsz = phdr->p_filesz;
- phdr->p_flags = 0; /* No need to set PF_R or so. */
- phdr->p_align = shdr->sh_addralign;
-
- (void) xelf_update_phdr (ld_state.outelf, 2, phdr);
-
- /* Fill in the reference to the .dynstr section. */
- assert (ld_state.dynstrscnidx != 0);
- shdr->sh_link = ld_state.dynstrscnidx;
- (void) xelf_update_shdr (outscn, shdr);
-
- /* And fill the remaining entries. */
- Elf_Data *dyndata = elf_getdata (outscn, NULL);
- assert (dyndata != NULL);
-
- /* Add the DT_NEEDED entries. */
- if (ld_state.ndsofiles > 0)
- {
- struct usedfiles *runp = ld_state.dsofiles->next;
-
- do
- if (! ld_state.ignore_unused_dsos || runp->used)
- {
- /* Add the position-dependent flag if necessary. */
- if (runp->lazyload)
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- DT_POSFLAG_1, DF_P1_LAZYLOAD);
-
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- DT_NEEDED,
- ebl_strtaboffset (runp->sonameent));
- }
- while ((runp = runp->next) != ld_state.dsofiles->next);
- }
-
- /* We can finish the DT_RUNPATH/DT_RPATH entries now. */
- if (ld_state.rxxpath_strent != NULL)
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- ld_state.rxxpath_tag,
- ebl_strtaboffset (ld_state.rxxpath_strent));
-
- /* Reference to initialization and finalization functions. */
- // XXX This code depends on symbol table being relocated.
- if (ld_state.init_symbol != NULL)
- {
- XElf_Sym_vardef (sym);
-
- if (ld_state.need_symtab)
- xelf_getsym (symdata,
- dblindirect[ld_state.init_symbol->outsymidx],
- sym);
- else
- xelf_getsym (dynsymdata, ld_state.init_symbol->outdynsymidx,
- sym);
- assert (sym != NULL);
-
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- DT_INIT, sym->st_value);
- }
- if (ld_state.fini_symbol != NULL)
- {
- XElf_Sym_vardef (sym);
-
- if (ld_state.need_symtab)
- xelf_getsym (symdata,
- dblindirect[ld_state.fini_symbol->outsymidx],
- sym);
- else
- xelf_getsym (dynsymdata, ld_state.fini_symbol->outdynsymidx,
- sym);
- assert (sym != NULL);
-
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- DT_FINI, sym->st_value);
- }
- // XXX Support init,fini,preinit arrays
-
- /* The hash table which comes with dynamic symbol table. */
- xelf_getshdr (elf_getscn (ld_state.outelf, ld_state.hashscnidx),
- shdr);
- assert (shdr != NULL);
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++, DT_HASH,
- shdr->sh_addr);
-
- /* Reference to the symbol table section. */
- assert (ld_state.dynsymscnidx != 0);
- xelf_getshdr (elf_getscn (ld_state.outelf, ld_state.dynsymscnidx),
- shdr);
- assert (shdr != NULL);
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++, DT_SYMTAB,
- shdr->sh_addr);
-
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++, DT_SYMENT,
- xelf_fsize (ld_state.outelf, ELF_T_SYM, 1));
-
- /* And the string table which comes with it. */
- xelf_getshdr (elf_getscn (ld_state.outelf, ld_state.dynstrscnidx),
- shdr);
- assert (shdr != NULL);
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++, DT_STRTAB,
- shdr->sh_addr);
-
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++, DT_STRSZ,
- shdr->sh_size);
-
- /* Add the entries related to the .plt. */
- if (ld_state.nplt > 0)
- {
- xelf_getshdr (elf_getscn (ld_state.outelf, ld_state.gotscnidx),
- shdr);
- assert (shdr != NULL);
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- // XXX This should probably be machine
- // dependent.
- DT_PLTGOT, shdr->sh_addr);
-
- xelf_getshdr (elf_getscn (ld_state.outelf,
- ld_state.pltrelscnidx), shdr);
- assert (shdr != NULL);
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- DT_PLTRELSZ, shdr->sh_size);
-
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- DT_JMPREL, shdr->sh_addr);
-
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- DT_PLTREL, REL_TYPE (statep));
- }
-
- if (ld_state.relsize_total > 0)
- {
- int rel = REL_TYPE (statep);
- xelf_getshdr (elf_getscn (ld_state.outelf,
- ld_state.reldynscnidx), shdr);
- assert (shdr != NULL);
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- rel, shdr->sh_addr);
-
- /* Trick ahead. Use arithmetic to get the right tag.
- We check the validity of this assumption in the asserts. */
- assert (DT_RELASZ - DT_RELA == 1);
- assert (DT_RELSZ - DT_REL == 1);
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- rel + 1, shdr->sh_size);
-
- /* Similar for the entry size tag. */
- assert (DT_RELAENT - DT_RELA == 2);
- assert (DT_RELENT - DT_REL == 2);
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- rel + 2,
- rel == DT_REL
- ? xelf_fsize (ld_state.outelf, ELF_T_REL, 1)
- : xelf_fsize (ld_state.outelf, ELF_T_RELA,
- 1));
- }
-
- if (ld_state.verneedscnidx != 0)
- {
- xelf_getshdr (elf_getscn (ld_state.outelf,
- ld_state.verneedscnidx), shdr);
- assert (shdr != NULL);
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- DT_VERNEED, shdr->sh_addr);
-
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- DT_VERNEEDNUM, ld_state.nverdeffile);
- }
-
- if (ld_state.versymscnidx != 0)
- {
- xelf_getshdr (elf_getscn (ld_state.outelf,
- ld_state.versymscnidx), shdr);
- assert (shdr != NULL);
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- DT_VERSYM, shdr->sh_addr);
- }
-
- /* We always create the DT_DEBUG entry. */
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++, DT_DEBUG, 0);
- assert (ld_state.ndynamic_filled < ld_state.ndynamic);
-
- /* Add the flag words if necessary. */
- if (ld_state.dt_flags != 0)
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++, DT_FLAGS,
- ld_state.dt_flags);
-
- /* Create entry for the DT_FLAGS_1 flag. */
- if (ld_state.dt_flags_1 != 0)
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- DT_FLAGS_1, ld_state.dt_flags_1);
-
- /* Create entry for the DT_FEATURE_1 flag. */
- if (ld_state.dt_feature_1 != 0)
- new_dynamic_entry (dyndata, ld_state.ndynamic_filled++,
- DT_FEATURE_1, ld_state.dt_feature_1);
-
- assert (ld_state.ndynamic_filled <= ld_state.ndynamic);
- }
- }
-
-
- // XXX The following code isn't nice. We use two different
- // mechanisms to handle relocations, one for relocatable files, one
- // for executables and DSOs. Maybe this is the best method but also
- // maybe it can be somewhat unified.
-
- /* Now that we created the symbol table we can add the reference to
- it in the sh_link field of the section headers of the relocation
- sections. */
- while (rellist != NULL)
- {
- assert (ld_state.file_type == relocatable_file_type);
- Elf_Scn *outscn;
-
- outscn = elf_getscn (ld_state.outelf, rellist->scnidx);
- xelf_getshdr (outscn, shdr);
- /* This must not fail since we did it before. */
- assert (shdr != NULL);
-
- /* Remember the symbol table which belongs to the relocation section. */
- shdr->sh_link = ld_state.symscnidx;
-
- /* And the reference to the section which is relocated by this
- relocation section. We use the info from the first input
- section but all records should have the same information. */
- shdr->sh_info =
- rellist->scninfo->fileinfo->scninfo[SCNINFO_SHDR (rellist->scninfo->shdr).sh_info].outscnndx;
-
-
- /* Perform the actual relocations. We only have to adjust
- offsets and symbol indices. */
- RELOCATE_SECTION (statep, outscn, rellist->scninfo, dblindirect);
-
- /* Store the changes. */
- (void) xelf_update_shdr (outscn, shdr);
-
- /* Up to the next relocation section. */
- rellist = rellist->next;
- }
-
- if (ld_state.rellist != NULL)
- {
- assert (ld_state.file_type != relocatable_file_type);
- /* Create the relocations for the output file. */
- CREATE_RELOCATIONS (statep, dblindirect);
- }
-
-
- /* We need the ELF header once more. */
- xelf_getehdr (ld_state.outelf, ehdr);
- assert (ehdr != NULL);
-
- /* Set the section header string table index. */
- if (likely (shstrtab_ndx < SHN_HIRESERVE)
- && likely (shstrtab_ndx != SHN_XINDEX))
- ehdr->e_shstrndx = shstrtab_ndx;
- else
- {
- /* We have to put the section index in the sh_link field of the
- zeroth section header. */
- Elf_Scn *scn = elf_getscn (ld_state.outelf, 0);
-
- xelf_getshdr (scn, shdr);
- if (unlikely (shdr == NULL))
- error (EXIT_FAILURE, 0,
- gettext ("cannot get header of 0th section: %s"),
- elf_errmsg (-1));
-
- shdr->sh_link = shstrtab_ndx;
-
- (void) xelf_update_shdr (scn, shdr);
-
- ehdr->e_shstrndx = SHN_XINDEX;
- }
-
- if (ld_state.file_type != relocatable_file_type)
- /* DSOs and executables have to define the entry point symbol. */
- ehdr->e_entry = find_entry_point ();
-
- if (unlikely (xelf_update_ehdr (ld_state.outelf, ehdr) == 0))
- error (EXIT_FAILURE, 0,
- gettext ("cannot update ELF header: %s"),
- elf_errmsg (-1));
-
-
- /* Free the data which we don't need anymore. */
- free (ld_state.dblindirect);
-
-
- /* Finalize the .plt section the what belongs to them. */
- FINALIZE_PLT (statep, nsym, nsym_dyn);
-
- return 0;
-}
-
-
-/* This is a function which must be specified in all backends. */
-static void
-ld_generic_relocate_section (struct ld_state *statep, Elf_Scn *outscn,
- struct scninfo *firstp,
- const Elf32_Word *dblindirect)
-{
- error (EXIT_FAILURE, 0, gettext ("\
-linker backend didn't specify function to relocate section"));
- /* NOTREACHED */
-}
-
-
-/* Finalize the output file. */
-static int
-ld_generic_finalize (struct ld_state *statep)
-{
- /* Write out the ELF file data. */
- if (elf_update (ld_state.outelf, ELF_C_WRITE) == -1)
- error (EXIT_FAILURE, 0, gettext ("while writing output file: %s"),
- elf_errmsg (-1));
-
- /* Free the resources. */
- if (elf_end (ld_state.outelf) != 0)
- error (EXIT_FAILURE, 0, gettext ("while finishing output file: %s"),
- elf_errmsg (-1));
-
- /* Get the file status of the temporary file. */
- struct stat temp_st;
- if (fstat (ld_state.outfd, &temp_st) != 0)
- error (EXIT_FAILURE, errno, gettext ("cannot stat output file"));
-
- /* Now it's time to rename the file. Remove an old existing file
- first. */
- if (rename (ld_state.tempfname, ld_state.outfname) != 0)
- /* Something went wrong. */
- error (EXIT_FAILURE, errno, gettext ("cannot rename output file"));
-
- /* Make sure the output file is really the one we created. */
- struct stat new_st;
- if (stat (ld_state.outfname, &new_st) != 0
- || new_st.st_ino != temp_st.st_ino
- || new_st.st_dev != temp_st.st_dev)
- {
- /* Wow, somebody overwrote the output file, probably some intruder. */
- unlink (ld_state.outfname);
- error (EXIT_FAILURE, 0, gettext ("\
-WARNING: temporary output file overwritten before linking finished"));
- }
-
- /* Close the file descriptor. */
- (void) close (ld_state.outfd);
-
- /* Signal the cleanup handler that the file is correctly created. */
- ld_state.tempfname = NULL;
-
- return 0;
-}
-
-
-static bool
-ld_generic_special_section_number_p (struct ld_state *statep, size_t number)
-{
- /* There are no special section numbers in the gABI. */
- return false;
-}
-
-
-static bool
-ld_generic_section_type_p (struct ld_state *statep, GElf_Word type)
-{
- if ((type >= SHT_NULL && type < SHT_NUM)
- /* XXX Enable the following two when implemented. */
- // || type == SHT_GNU_LIBLIST
- // || type == SHT_CHECKSUM
- /* XXX Eventually include SHT_SUNW_move, SHT_SUNW_COMDAT, and
- SHT_SUNW_syminfo. */
- || (type >= SHT_GNU_verdef && type <= SHT_GNU_versym))
- return true;
-
- return false;
-}
-
-
-static XElf_Xword
-ld_generic_dynamic_section_flags (struct ld_state *statep)
-{
- /* By default the .dynamic section is writable (and is of course
- loaded). Few architecture differ from this. */
- return SHF_ALLOC | SHF_WRITE;
-}
-
-
-static void
-ld_generic_initialize_plt (struct ld_state *statep, Elf_Scn *scn)
-{
- /* This cannot be implemented generally. There should have been a
- machine dependent implementation and we should never have arrived
- here. */
- error (EXIT_FAILURE, 0, gettext ("no machine specific '%s' implementation"),
- "initialize_plt");
-}
-
-
-static void
-ld_generic_initialize_pltrel (struct ld_state *statep, Elf_Scn *scn)
-{
- /* This cannot be implemented generally. There should have been a
- machine dependent implementation and we should never have arrived
- here. */
- error (EXIT_FAILURE, 0, gettext ("no machine specific '%s' implementation"),
- "initialize_pltrel");
-}
-
-
-static void
-ld_generic_initialize_got (struct ld_state *statep, Elf_Scn *scn)
-{
- /* This cannot be implemented generally. There should have been a
- machine dependent implementation and we should never have arrived
- here. */
- error (EXIT_FAILURE, 0, gettext ("no machine specific '%s' implementation"),
- "initialize_got");
-}
-
-
-static void
-ld_generic_finalize_plt (struct ld_state *statep, size_t nsym, size_t nsym_dyn)
-{
- /* By default we assume that nothing has to be done. */
-}
-
-
-static int
-ld_generic_rel_type (struct ld_state *statep)
-{
- /* This cannot be implemented generally. There should have been a
- machine dependent implementation and we should never have arrived
- here. */
- error (EXIT_FAILURE, 0, gettext ("no machine specific '%s' implementation"),
- "rel_type");
- /* Just to keep the compiler calm. */
- return 0;
-}
-
-
-static void
-ld_generic_count_relocations (struct ld_state *statep, struct scninfo *scninfo)
-{
- /* This cannot be implemented generally. There should have been a
- machine dependent implementation and we should never have arrived
- here. */
- error (EXIT_FAILURE, 0, gettext ("no machine specific '%s' implementation"),
- "count_relocations");
-}
-
-
-static void
-ld_generic_create_relocations (struct ld_state *statep,
- const Elf32_Word *dblindirect)
-{
- /* This cannot be implemented generally. There should have been a
- machine dependent implementation and we should never have arrived
- here. */
- error (EXIT_FAILURE, 0, gettext ("no machine specific '%s' implementation"),
- "create_relocations");
-}
diff --git a/src/ldlex.c b/src/ldlex.c
deleted file mode 100644
index e0bf0a5f..00000000
--- a/src/ldlex.c
+++ /dev/null
@@ -1,2663 +0,0 @@
-#define yy_create_buffer ld_create_buffer
-#define yy_delete_buffer ld_delete_buffer
-#define yy_scan_buffer ld_scan_buffer
-#define yy_scan_string ld_scan_string
-#define yy_scan_bytes ld_scan_bytes
-#define yy_flex_debug ld_flex_debug
-#define yy_init_buffer ld_init_buffer
-#define yy_flush_buffer ld_flush_buffer
-#define yy_load_buffer_state ld_load_buffer_state
-#define yy_switch_to_buffer ld_switch_to_buffer
-#define yyin ldin
-#define yyleng ldleng
-#define yylex ldlex
-#define yyout ldout
-#define yyrestart ldrestart
-#define yytext ldtext
-#define yylineno ldlineno
-
-#line 20 "ldlex.c"
-/* A lexical scanner generated by flex */
-
-/* Scanner skeleton version:
- * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
- */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-
-#include <stdio.h>
-#include <unistd.h>
-
-
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
-#endif
-
-
-#ifdef __cplusplus
-
-#include <stdlib.h>
-
-/* Use prototypes in function declarations. */
-#define YY_USE_PROTOS
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else /* ! __cplusplus */
-
-#if __STDC__
-
-#define YY_USE_PROTOS
-#define YY_USE_CONST
-
-#endif /* __STDC__ */
-#endif /* ! __cplusplus */
-
-#ifdef __TURBOC__
- #pragma warn -rch
- #pragma warn -use
-#include <io.h>
-#include <stdlib.h>
-#define YY_USE_CONST
-#define YY_USE_PROTOS
-#endif
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-
-#ifdef YY_USE_PROTOS
-#define YY_PROTO(proto) proto
-#else
-#define YY_PROTO(proto) ()
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index. If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition. This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN yy_start = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state. The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START ((yy_start - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart( yyin )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#define YY_BUF_SIZE 16384
-
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-
-extern int yyleng;
-extern FILE *yyin, *yyout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-/* The funky do-while in the following #define is used to turn the definition
- * int a single C statement (which needs a semi-colon terminator). This
- * avoids problems with code like:
- *
- * if ( condition_holds )
- * yyless( 5 );
- * else
- * do_something_else();
- *
- * Prior to using the do-while the compiler would get upset at the
- * "else" because it interpreted the "if" statement as being all
- * done when it reached the ';' after the yyless() call.
- */
-
-/* Return all but the first 'n' matched characters back to the input stream. */
-
-#define yyless(n) \
- do \
- { \
- /* Undo effects of setting up yytext. */ \
- *yy_cp = yy_hold_char; \
- YY_RESTORE_YY_MORE_OFFSET \
- yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
- YY_DO_BEFORE_ACTION; /* set up yytext again */ \
- } \
- while ( 0 )
-
-#define unput(c) yyunput( c, yytext_ptr )
-
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- */
-typedef unsigned int yy_size_t;
-
-
-struct yy_buffer_state
- {
- FILE *yy_input_file;
-
- char *yy_ch_buf; /* input buffer */
- char *yy_buf_pos; /* current position in input buffer */
-
- /* Size of input buffer in bytes, not including room for EOB
- * characters.
- */
- yy_size_t yy_buf_size;
-
- /* Number of characters read into yy_ch_buf, not including EOB
- * characters.
- */
- int yy_n_chars;
-
- /* Whether we "own" the buffer - i.e., we know we created it,
- * and can realloc() it to grow it, and should free() it to
- * delete it.
- */
- int yy_is_our_buffer;
-
- /* Whether this is an "interactive" input source; if so, and
- * if we're using stdio for input, then we want to use getc()
- * instead of fread(), to make sure we stop fetching input after
- * each newline.
- */
- int yy_is_interactive;
-
- /* Whether we're considered to be at the beginning of a line.
- * If so, '^' rules will be active on the next match, otherwise
- * not.
- */
- int yy_at_bol;
-
- /* Whether to try to fill the input buffer when we reach the
- * end of it.
- */
- int yy_fill_buffer;
-
- int yy_buffer_status;
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
- /* When an EOF's been seen but there's still some text to process
- * then we mark the buffer as YY_EOF_PENDING, to indicate that we
- * shouldn't try reading from the input source any more. We might
- * still have a bunch of tokens to match, though, because of
- * possible backing-up.
- *
- * When we actually see the EOF, we change the status to "new"
- * (via yyrestart()), so that the user can continue scanning by
- * just pointing yyin at a new input file.
- */
-#define YY_BUFFER_EOF_PENDING 2
- };
-
-static YY_BUFFER_STATE yy_current_buffer = 0;
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- */
-#define YY_CURRENT_BUFFER yy_current_buffer
-
-
-/* yy_hold_char holds the character lost when yytext is formed. */
-static char yy_hold_char;
-
-static int yy_n_chars; /* number of characters read into yy_ch_buf */
-
-
-int yyleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 1; /* whether we need to initialize */
-static int yy_start = 0; /* start state number */
-
-/* Flag which is used to allow yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin. A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void yyrestart YY_PROTO(( FILE *input_file ));
-
-void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
-void yy_load_buffer_state YY_PROTO(( void ));
-YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
-void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
-void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
-
-YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
-YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
-YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
-
-static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
-static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
-static void yy_flex_free YY_PROTO(( void * ));
-
-#define yy_new_buffer yy_create_buffer
-
-#define yy_set_interactive(is_interactive) \
- { \
- if ( ! yy_current_buffer ) \
- yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
- yy_current_buffer->yy_is_interactive = is_interactive; \
- }
-
-#define yy_set_bol(at_bol) \
- { \
- if ( ! yy_current_buffer ) \
- yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
- yy_current_buffer->yy_at_bol = at_bol; \
- }
-
-#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
-
-
-#define YY_USES_REJECT
-
-#define yywrap() 1
-#define YY_SKIP_YYWRAP
-typedef unsigned char YY_CHAR;
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
-typedef int yy_state_type;
-extern int yylineno;
-int yylineno = 1;
-extern char *yytext;
-#define yytext_ptr yytext
-
-static yy_state_type yy_get_previous_state YY_PROTO(( void ));
-static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
-static int yy_get_next_buffer YY_PROTO(( void ));
-static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
- */
-#define YY_DO_BEFORE_ACTION \
- yytext_ptr = yy_bp; \
- yyleng = (int) (yy_cp - yy_bp); \
- yy_hold_char = *yy_cp; \
- *yy_cp = '\0'; \
- yy_c_buf_p = yy_cp;
-
-#define YY_NUM_RULES 49
-#define YY_END_OF_BUFFER 50
-static yyconst short int yy_acclist[373] =
- { 0,
- 50, 48, 49, 47, 48, 49, 47, 49, 40, 48,
- 49, 41, 48, 49, 31, 48, 49, 32, 48, 49,
- 38, 45, 48, 49, 36, 48, 49, 43, 48, 49,
- 37, 48, 49, 45, 48, 49, 39, 48, 49, 44,
- 45, 48, 49, 44, 45, 48, 49, 33, 48, 49,
- 34, 48, 49, 35, 48, 49, 45, 48, 49, 45,
- 48, 49, 45, 48, 49, 45, 48, 49, 45, 48,
- 49, 45, 48, 49, 45, 48, 49, 45, 48, 49,
- 45, 48, 49, 45, 48, 49, 48, 49, 48, 49,
- 45, 48, 49, 45, 48, 49, 29, 48, 49, 42,
-
- 48, 49, 30, 48, 49, 48, 49, 9, 49, 9,
- 49, 47, 45, 46, 45, 46, 10, 46, 44, 45,
- 46, 44, 45, 46, 44, 45, 46, 45, 46, 44,
- 45, 46, 45, 46, 45, 46, 45, 46, 45, 46,
- 45, 46, 45, 46, 45, 46, 45, 46, 45, 46,
- 45, 46, 45, 46, 45, 46, 45, 46, 28, 45,
- 46, 45, 46, 44, 45, 46, 45, 46, 45, 46,
- 45, 46, 45, 46, 45, 46, 45, 46, 45, 46,
- 45, 46, 45, 46, 45, 46, 45, 46, 45, 46,
- 45, 46, 45, 46, 45, 46, 45, 46, 45, 46,
-
- 44, 45, 46, 45, 46, 45, 46, 45, 46, 45,
- 46, 45, 46, 45, 46, 18, 45, 46, 45, 46,
- 45, 46, 45, 46, 45, 46, 45, 46, 45, 46,
- 26, 45, 46, 45, 46, 45, 46, 45, 46, 11,
- 45, 46, 12, 45, 46, 45, 46, 15, 45, 46,
- 16, 45, 46, 45, 46, 45, 46, 45, 46, 45,
- 46, 45, 46, 45, 46, 45, 46, 45, 46, 45,
- 46, 45, 46, 45, 46, 17, 45, 46, 45, 46,
- 45, 46, 45, 46, 45, 46, 45, 46, 45, 46,
- 45, 46, 45, 46, 19, 2, 6, 45, 46, 45,
-
- 46, 45, 46, 22, 45, 46, 45, 46, 24, 45,
- 46, 45, 46, 27, 45, 46, 14, 4, 1, 8,
- 5, 45, 46, 45, 46, 21, 45, 46, 45, 46,
- 45, 46, 45, 46, 45, 46, 45, 46, 45, 46,
- 3, 7, 45, 46, 45, 46, 23, 45, 46, 45,
- 46, 45, 46, 45, 46, 45, 46, 13, 45, 46,
- 45, 46, 45, 46, 20, 45, 46, 45, 46, 25,
- 45, 46
- } ;
-
-static yyconst short int yy_accept[212] =
- { 0,
- 1, 1, 1, 1, 1, 2, 4, 7, 9, 12,
- 15, 18, 21, 25, 28, 31, 34, 37, 40, 44,
- 48, 51, 54, 57, 60, 63, 66, 69, 72, 75,
- 78, 81, 84, 87, 89, 91, 94, 97, 100, 103,
- 106, 108, 110, 112, 113, 114, 115, 117, 119, 122,
- 125, 128, 130, 133, 135, 137, 139, 141, 143, 145,
- 147, 149, 151, 153, 155, 157, 159, 159, 160, 162,
- 164, 164, 164, 164, 164, 167, 169, 171, 173, 175,
- 177, 179, 181, 183, 185, 187, 189, 191, 193, 195,
- 197, 197, 199, 201, 201, 201, 201, 201, 201, 201,
-
- 204, 206, 208, 210, 212, 214, 216, 219, 221, 223,
- 225, 227, 229, 231, 234, 236, 236, 238, 240, 240,
- 240, 240, 240, 240, 240, 240, 240, 243, 246, 248,
- 251, 254, 256, 258, 260, 262, 264, 266, 268, 270,
- 272, 274, 274, 274, 274, 274, 274, 274, 274, 274,
- 276, 279, 281, 283, 285, 287, 289, 291, 293, 295,
- 296, 296, 297, 297, 297, 297, 298, 298, 298, 300,
- 302, 304, 307, 309, 312, 314, 317, 318, 318, 319,
- 320, 320, 321, 322, 324, 326, 329, 331, 333, 333,
- 333, 335, 337, 339, 341, 342, 343, 345, 347, 350,
-
- 352, 354, 356, 358, 361, 363, 365, 368, 370, 373,
- 373
- } ;
-
-static yyconst int yy_ec[256] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 1, 1, 4, 1, 5, 6, 1, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 16,
- 16, 16, 16, 16, 16, 17, 17, 18, 19, 1,
- 20, 1, 21, 1, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 13, 31, 32, 33, 34, 35, 36,
- 13, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 1, 49, 1, 50, 51, 52, 53,
-
- 54, 55, 56, 13, 57, 13, 58, 59, 58, 60,
- 61, 13, 13, 13, 62, 13, 13, 13, 13, 63,
- 13, 13, 64, 65, 66, 47, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1
- } ;
-
-static yyconst int yy_meta[67] =
- { 0,
- 1, 2, 2, 1, 1, 1, 2, 2, 3, 1,
- 1, 1, 3, 1, 3, 3, 3, 2, 2, 1,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 2, 1, 2, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 2, 1, 2
- } ;
-
-static yyconst short int yy_base[215] =
- { 0,
- 0, 218, 0, 216, 219, 2141, 65, 67, 2141, 2141,
- 2141, 2141, 0, 2141, 2141, 2141, 70, 208, 135, 62,
- 2141, 2141, 2141, 0, 70, 127, 158, 171, 192, 211,
- 260, 309, 215, 46, 0, 269, 273, 2141, 2141, 2141,
- 42, 2141, 43, 70, 0, 0, 330, 0, 48, 322,
- 333, 382, 385, 434, 437, 458, 471, 520, 507, 529,
- 558, 564, 613, 609, 616, 647, 67, 2141, 666, 670,
- 47, 160, 59, 158, 90, 703, 722, 725, 756, 760,
- 789, 793, 822, 828, 851, 862, 873, 886, 907, 926,
- 89, 945, 964, 65, 159, 158, 67, 157, 153, 985,
-
- 1004, 1008, 1039, 1042, 1073, 1076, 1107, 1111, 1130, 1161,
- 1165, 1169, 1198, 1205, 1227, 155, 1234, 1256, 144, 143,
- 139, 140, 137, 127, 112, 113, 1263, 1285, 1292, 1296,
- 1325, 1329, 1336, 1365, 1386, 1389, 1420, 1441, 1444, 1465,
- 1494, 106, 151, 83, 79, 77, 154, 61, 59, 1500,
- 1503, 1534, 1553, 1556, 1587, 1590, 1609, 1640, 1644, 2141,
- 58, 2141, 160, 162, 54, 2141, 169, 174, 1648, 1677,
- 1698, 1701, 1722, 1735, 1757, 1766, 2141, 43, 2141, 2141,
- 37, 2141, 2141, 1779, 1788, 1801, 1810, 1832, 177, 181,
- 1839, 1861, 1868, 1892, 2141, 2141, 1901, 1905, 1936, 1945,
-
- 1958, 1980, 1989, 2002, 2011, 2024, 2047, 2055, 2068, 2141,
- 2131, 76, 2134, 2137
- } ;
-
-static yyconst short int yy_def[215] =
- { 0,
- 210, 1, 211, 211, 210, 210, 210, 210, 210, 210,
- 210, 210, 212, 210, 210, 210, 213, 214, 213, 19,
- 210, 210, 210, 212, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 210, 214, 19, 19, 210, 210, 210,
- 210, 210, 210, 210, 212, 214, 19, 214, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 210, 210, 19, 19,
- 210, 210, 210, 210, 52, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 210, 19, 19, 210, 210, 210, 210, 210, 210, 19,
-
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 210, 19, 19, 210, 210,
- 210, 210, 210, 210, 210, 210, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 210, 210, 210, 210, 210, 210, 210, 210, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 19, 19,
- 19, 19, 19, 19, 19, 19, 210, 210, 210, 210,
- 210, 210, 210, 19, 19, 19, 19, 19, 210, 210,
- 19, 19, 19, 19, 210, 210, 19, 19, 19, 19,
-
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 0,
- 210, 210, 210, 210
- } ;
-
-static yyconst short int yy_nxt[2208] =
- { 0,
- 6, 7, 8, 6, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 20, 21, 22, 23,
- 24, 25, 17, 17, 17, 26, 17, 27, 17, 28,
- 29, 17, 17, 17, 30, 31, 17, 32, 17, 17,
- 33, 17, 17, 17, 17, 34, 35, 6, 17, 17,
- 17, 17, 17, 17, 17, 36, 17, 17, 37, 17,
- 17, 17, 17, 38, 39, 40, 44, 44, 44, 44,
- 46, 44, 44, 46, 46, 46, 50, 50, 45, 46,
- 46, 46, 67, 46, 47, 47, 47, 67, 67, 46,
- 47, 190, 53, 68, 53, 71, 73, 189, 72, 74,
-
- 47, 54, 47, 91, 47, 94, 95, 181, 91, 91,
- 47, 178, 47, 168, 68, 167, 46, 97, 98, 53,
- 100, 119, 100, 123, 47, 116, 120, 47, 124, 165,
- 116, 116, 47, 164, 46, 46, 68, 163, 46, 46,
- 46, 47, 47, 47, 46, 46, 46, 100, 46, 49,
- 49, 50, 162, 162, 46, 166, 166, 47, 161, 47,
- 55, 179, 179, 180, 180, 51, 149, 51, 148, 56,
- 182, 182, 47, 47, 47, 183, 183, 52, 195, 195,
- 147, 46, 196, 196, 47, 47, 47, 47, 47, 47,
- 47, 146, 51, 145, 57, 144, 143, 52, 142, 46,
-
- 47, 47, 68, 47, 58, 126, 47, 47, 47, 125,
- 122, 121, 99, 47, 96, 47, 48, 59, 210, 43,
- 47, 41, 47, 210, 47, 47, 47, 47, 47, 47,
- 47, 47, 210, 47, 47, 210, 210, 210, 210, 210,
- 66, 47, 210, 47, 210, 47, 210, 47, 210, 47,
- 60, 210, 210, 47, 47, 210, 210, 47, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 47, 210,
- 210, 210, 47, 47, 47, 47, 47, 47, 210, 210,
- 210, 61, 210, 47, 47, 47, 210, 47, 47, 47,
- 47, 210, 47, 210, 210, 210, 62, 210, 210, 47,
-
- 210, 47, 47, 47, 210, 47, 210, 210, 210, 210,
- 210, 47, 210, 210, 210, 47, 210, 47, 210, 210,
- 210, 210, 47, 47, 47, 47, 47, 69, 210, 210,
- 47, 47, 210, 70, 63, 47, 50, 50, 64, 47,
- 210, 47, 210, 65, 47, 47, 47, 47, 47, 47,
- 210, 47, 53, 210, 53, 210, 210, 210, 210, 210,
- 47, 210, 47, 47, 47, 47, 47, 210, 210, 210,
- 210, 47, 47, 210, 210, 47, 210, 210, 210, 53,
- 210, 210, 210, 210, 47, 210, 210, 47, 210, 210,
- 47, 210, 47, 210, 210, 47, 75, 75, 75, 47,
-
- 47, 47, 210, 75, 75, 75, 75, 75, 75, 210,
- 210, 210, 47, 210, 47, 47, 210, 47, 210, 210,
- 210, 210, 210, 210, 47, 210, 210, 47, 210, 210,
- 210, 75, 75, 75, 75, 75, 75, 210, 210, 47,
- 210, 210, 47, 210, 47, 210, 210, 47, 47, 47,
- 47, 47, 47, 47, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 76, 47, 210, 47, 47, 210, 47,
- 210, 210, 47, 47, 47, 77, 47, 210, 210, 47,
- 210, 78, 210, 210, 210, 47, 47, 47, 47, 210,
- 47, 47, 210, 210, 47, 210, 47, 210, 210, 47,
-
- 47, 47, 210, 47, 210, 79, 210, 210, 210, 210,
- 210, 210, 210, 47, 210, 47, 210, 210, 210, 210,
- 47, 47, 47, 47, 210, 210, 210, 210, 47, 210,
- 210, 210, 82, 47, 47, 47, 47, 47, 210, 47,
- 210, 210, 210, 47, 47, 47, 210, 210, 210, 47,
- 47, 210, 47, 210, 210, 80, 210, 210, 81, 47,
- 210, 47, 47, 210, 47, 210, 210, 83, 210, 47,
- 210, 47, 47, 47, 47, 210, 210, 47, 47, 47,
- 47, 210, 47, 210, 210, 84, 47, 210, 47, 210,
- 47, 47, 210, 210, 47, 210, 47, 210, 85, 210,
-
- 47, 210, 210, 210, 210, 210, 47, 210, 210, 210,
- 210, 210, 210, 210, 210, 47, 210, 210, 210, 210,
- 47, 47, 210, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 210, 86, 210, 210, 210, 210, 47,
- 87, 47, 210, 47, 210, 47, 47, 210, 47, 210,
- 210, 47, 89, 88, 210, 47, 210, 210, 47, 210,
- 210, 47, 47, 47, 210, 210, 47, 210, 210, 210,
- 47, 47, 210, 47, 210, 47, 210, 47, 47, 47,
- 47, 47, 47, 90, 47, 47, 47, 210, 210, 47,
- 210, 210, 210, 210, 210, 210, 47, 210, 47, 210,
-
- 47, 210, 47, 210, 47, 210, 210, 210, 47, 47,
- 210, 210, 47, 210, 210, 210, 210, 47, 47, 47,
- 210, 93, 210, 47, 210, 210, 92, 47, 47, 210,
- 101, 210, 47, 47, 210, 47, 47, 47, 47, 47,
- 47, 47, 210, 210, 210, 47, 210, 210, 210, 210,
- 210, 210, 47, 210, 47, 47, 103, 47, 102, 210,
- 47, 210, 210, 210, 47, 47, 210, 47, 210, 210,
- 47, 47, 47, 210, 47, 47, 47, 210, 210, 47,
- 210, 210, 47, 210, 47, 210, 47, 47, 47, 210,
- 47, 210, 47, 210, 210, 104, 210, 210, 47, 105,
-
- 210, 210, 47, 47, 47, 47, 210, 47, 47, 47,
- 210, 210, 210, 47, 106, 210, 210, 47, 47, 47,
- 210, 47, 47, 47, 210, 47, 210, 210, 107, 210,
- 210, 47, 210, 210, 210, 47, 47, 47, 47, 210,
- 210, 210, 47, 47, 47, 210, 47, 210, 210, 210,
- 47, 47, 47, 109, 47, 47, 210, 108, 47, 210,
- 47, 210, 210, 210, 47, 47, 47, 47, 210, 210,
- 47, 210, 210, 210, 210, 210, 47, 47, 47, 47,
- 210, 47, 210, 47, 47, 47, 210, 47, 47, 47,
- 47, 110, 47, 47, 47, 210, 210, 210, 111, 210,
-
- 47, 47, 47, 47, 47, 112, 210, 210, 47, 210,
- 210, 113, 210, 47, 210, 47, 47, 210, 47, 47,
- 210, 47, 47, 47, 47, 210, 210, 210, 47, 210,
- 47, 210, 210, 210, 210, 47, 210, 47, 210, 47,
- 47, 47, 47, 47, 210, 114, 210, 210, 47, 47,
- 210, 210, 210, 210, 210, 210, 47, 210, 47, 47,
- 47, 47, 210, 115, 47, 210, 210, 210, 47, 47,
- 210, 210, 210, 210, 210, 47, 210, 47, 47, 47,
- 47, 210, 210, 47, 210, 210, 210, 47, 47, 210,
- 210, 210, 210, 210, 47, 117, 47, 210, 210, 47,
-
- 47, 47, 47, 210, 210, 210, 47, 47, 210, 210,
- 210, 210, 210, 118, 210, 47, 210, 47, 47, 47,
- 47, 47, 47, 47, 47, 210, 47, 47, 210, 210,
- 210, 210, 210, 210, 47, 210, 47, 127, 47, 210,
- 47, 210, 47, 210, 210, 210, 47, 47, 210, 210,
- 47, 128, 210, 47, 47, 47, 47, 47, 47, 210,
- 210, 47, 210, 210, 210, 47, 47, 210, 210, 47,
- 47, 47, 47, 210, 47, 210, 210, 130, 129, 210,
- 210, 47, 210, 210, 47, 210, 210, 47, 47, 47,
- 47, 47, 47, 210, 210, 210, 47, 210, 210, 47,
-
- 210, 47, 210, 47, 47, 47, 47, 210, 47, 210,
- 210, 131, 132, 210, 210, 47, 210, 210, 47, 210,
- 210, 47, 47, 47, 210, 47, 47, 47, 210, 210,
- 47, 210, 210, 47, 210, 47, 210, 47, 47, 47,
- 210, 47, 210, 47, 47, 47, 47, 210, 210, 47,
- 133, 210, 210, 47, 210, 210, 210, 210, 210, 210,
- 47, 210, 47, 210, 47, 210, 210, 134, 47, 47,
- 210, 210, 47, 47, 210, 47, 47, 47, 210, 47,
- 47, 47, 210, 47, 47, 47, 210, 47, 136, 210,
- 135, 47, 47, 47, 137, 47, 210, 47, 210, 47,
-
- 210, 47, 210, 47, 210, 210, 210, 47, 210, 210,
- 210, 47, 47, 47, 47, 210, 210, 210, 47, 47,
- 47, 47, 47, 47, 210, 210, 47, 47, 47, 210,
- 47, 47, 138, 210, 210, 47, 210, 47, 210, 210,
- 47, 47, 47, 47, 210, 210, 210, 47, 47, 47,
- 47, 210, 210, 210, 210, 47, 139, 47, 210, 47,
- 47, 210, 47, 210, 47, 210, 47, 47, 210, 47,
- 47, 47, 47, 210, 210, 210, 47, 47, 47, 47,
- 210, 210, 210, 140, 47, 210, 47, 210, 47, 47,
- 210, 47, 210, 47, 210, 47, 47, 210, 47, 47,
-
- 47, 47, 210, 210, 210, 47, 47, 47, 47, 210,
- 47, 47, 47, 47, 141, 47, 150, 47, 47, 210,
- 47, 210, 47, 210, 47, 47, 47, 47, 47, 210,
- 210, 210, 210, 210, 47, 210, 210, 210, 47, 47,
- 47, 47, 47, 47, 47, 47, 210, 47, 210, 47,
- 47, 47, 47, 47, 47, 47, 210, 47, 47, 47,
- 210, 47, 210, 210, 151, 210, 47, 47, 47, 210,
- 210, 47, 210, 210, 152, 210, 210, 210, 47, 47,
- 47, 47, 47, 210, 210, 210, 47, 47, 210, 210,
- 210, 47, 210, 47, 153, 47, 210, 47, 47, 210,
-
- 47, 47, 47, 47, 47, 47, 210, 47, 210, 210,
- 154, 210, 210, 210, 210, 210, 47, 155, 47, 47,
- 210, 47, 47, 210, 210, 210, 210, 47, 47, 210,
- 210, 47, 210, 210, 47, 47, 47, 210, 210, 210,
- 210, 210, 210, 47, 210, 210, 47, 210, 47, 210,
- 47, 47, 47, 156, 210, 47, 47, 47, 47, 47,
- 47, 210, 47, 210, 210, 210, 210, 157, 210, 210,
- 210, 47, 210, 47, 47, 210, 47, 47, 158, 47,
- 47, 47, 47, 47, 210, 210, 47, 210, 210, 210,
- 210, 210, 210, 210, 210, 47, 210, 47, 47, 210,
-
- 210, 47, 210, 47, 210, 210, 47, 47, 47, 47,
- 47, 160, 210, 210, 47, 47, 47, 47, 47, 47,
- 210, 210, 47, 159, 47, 169, 47, 47, 210, 210,
- 47, 210, 47, 47, 210, 47, 47, 210, 210, 210,
- 210, 210, 47, 210, 210, 47, 210, 210, 47, 47,
- 47, 47, 210, 210, 210, 210, 47, 47, 210, 210,
- 47, 210, 47, 210, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 210, 210, 210, 47, 210, 210, 210,
- 210, 172, 170, 47, 210, 47, 47, 210, 47, 210,
- 210, 47, 210, 210, 210, 47, 47, 171, 47, 210,
-
- 210, 47, 47, 47, 47, 47, 47, 210, 210, 210,
- 47, 210, 210, 47, 210, 47, 210, 47, 47, 47,
- 47, 210, 47, 47, 47, 47, 210, 210, 174, 47,
- 210, 210, 47, 210, 210, 173, 210, 210, 210, 47,
- 210, 47, 210, 210, 47, 210, 210, 47, 210, 47,
- 210, 47, 47, 210, 47, 47, 47, 175, 47, 47,
- 47, 177, 47, 47, 47, 210, 47, 210, 210, 210,
- 47, 47, 47, 176, 47, 210, 47, 210, 47, 210,
- 47, 210, 47, 210, 210, 210, 47, 210, 210, 210,
- 47, 47, 47, 47, 210, 210, 184, 47, 210, 210,
-
- 210, 47, 47, 185, 210, 47, 47, 47, 210, 47,
- 47, 210, 47, 47, 47, 47, 47, 47, 210, 47,
- 210, 210, 210, 186, 210, 210, 210, 210, 47, 210,
- 47, 47, 210, 47, 47, 210, 47, 47, 47, 47,
- 47, 210, 210, 47, 210, 210, 187, 210, 210, 47,
- 47, 47, 47, 210, 47, 47, 210, 210, 47, 210,
- 47, 210, 210, 47, 47, 47, 210, 47, 210, 210,
- 210, 47, 47, 47, 210, 210, 210, 47, 210, 47,
- 47, 47, 47, 210, 47, 188, 210, 47, 210, 47,
- 210, 210, 47, 47, 47, 47, 47, 47, 47, 47,
-
- 210, 210, 47, 47, 47, 191, 210, 210, 47, 47,
- 210, 47, 210, 210, 47, 47, 47, 47, 47, 47,
- 47, 47, 192, 47, 47, 47, 47, 210, 47, 210,
- 47, 47, 210, 47, 210, 210, 47, 210, 210, 193,
- 47, 47, 47, 47, 210, 47, 47, 47, 47, 210,
- 47, 210, 47, 47, 47, 47, 210, 194, 47, 210,
- 210, 210, 47, 47, 47, 210, 210, 47, 197, 47,
- 210, 47, 47, 210, 47, 47, 47, 47, 210, 210,
- 210, 47, 47, 47, 47, 210, 210, 210, 210, 47,
- 210, 47, 210, 47, 47, 210, 47, 198, 47, 210,
-
- 47, 47, 210, 47, 199, 210, 47, 47, 47, 210,
- 47, 210, 210, 200, 210, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 210, 210, 210, 210,
- 47, 47, 201, 47, 47, 47, 210, 202, 210, 210,
- 210, 210, 210, 47, 210, 210, 210, 47, 210, 47,
- 47, 47, 47, 210, 47, 210, 210, 210, 47, 47,
- 47, 47, 47, 47, 210, 210, 47, 47, 47, 203,
- 210, 210, 47, 47, 47, 47, 210, 47, 47, 210,
- 210, 210, 210, 204, 210, 210, 210, 47, 47, 210,
- 47, 210, 210, 47, 47, 47, 47, 210, 47, 210,
-
- 47, 205, 47, 47, 47, 47, 210, 47, 210, 210,
- 47, 210, 47, 210, 206, 47, 47, 47, 47, 47,
- 47, 47, 47, 210, 210, 47, 47, 47, 210, 210,
- 210, 47, 47, 210, 47, 210, 210, 47, 47, 47,
- 47, 47, 47, 47, 47, 210, 47, 210, 210, 207,
- 210, 47, 210, 47, 47, 210, 47, 210, 210, 47,
- 208, 47, 47, 47, 47, 210, 47, 210, 47, 47,
- 47, 47, 210, 47, 210, 210, 210, 47, 210, 47,
- 210, 47, 47, 47, 47, 47, 47, 47, 210, 47,
- 210, 210, 209, 210, 210, 210, 210, 47, 47, 210,
-
- 47, 210, 210, 210, 47, 210, 210, 210, 210, 47,
- 47, 210, 47, 210, 210, 210, 210, 47, 210, 210,
- 210, 210, 210, 210, 210, 47, 210, 210, 210, 210,
- 47, 42, 42, 42, 47, 210, 47, 46, 210, 46,
- 5, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
-
- 210, 210, 210, 210, 210, 210, 210
- } ;
-
-static yyconst short int yy_chk[2208] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 7, 7, 8, 8,
- 17, 44, 44, 17, 17, 17, 20, 20, 212, 17,
- 17, 17, 34, 17, 25, 25, 25, 34, 34, 17,
- 49, 181, 20, 34, 20, 41, 43, 178, 41, 43,
-
- 25, 25, 25, 67, 20, 71, 71, 165, 67, 67,
- 49, 161, 25, 149, 67, 148, 17, 73, 73, 20,
- 75, 94, 75, 97, 20, 91, 94, 25, 97, 146,
- 91, 91, 25, 145, 17, 19, 91, 144, 19, 19,
- 19, 26, 26, 26, 19, 19, 19, 75, 19, 19,
- 19, 19, 143, 143, 19, 147, 147, 26, 142, 26,
- 26, 163, 163, 164, 164, 19, 126, 19, 125, 26,
- 167, 167, 27, 27, 27, 168, 168, 19, 189, 189,
- 124, 19, 190, 190, 26, 28, 28, 28, 27, 26,
- 27, 123, 19, 122, 27, 121, 120, 19, 119, 19,
-
- 27, 28, 116, 28, 28, 99, 29, 29, 29, 98,
- 96, 95, 74, 28, 72, 27, 18, 29, 5, 4,
- 27, 2, 29, 0, 29, 30, 30, 30, 28, 33,
- 33, 33, 0, 28, 29, 0, 0, 0, 0, 0,
- 33, 30, 0, 30, 0, 33, 0, 33, 0, 29,
- 30, 0, 0, 30, 29, 0, 0, 33, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
- 0, 0, 33, 30, 31, 31, 31, 33, 0, 0,
- 0, 31, 0, 36, 36, 36, 0, 37, 37, 37,
- 31, 0, 31, 0, 0, 0, 31, 0, 0, 36,
-
- 0, 36, 31, 37, 0, 37, 0, 0, 0, 0,
- 0, 36, 0, 0, 0, 37, 0, 31, 0, 0,
- 0, 0, 31, 32, 32, 32, 36, 36, 0, 0,
- 37, 36, 0, 37, 32, 37, 50, 50, 32, 32,
- 0, 32, 0, 32, 47, 47, 47, 51, 51, 51,
- 0, 32, 50, 0, 50, 0, 0, 0, 0, 0,
- 47, 0, 47, 51, 50, 51, 32, 0, 0, 0,
- 0, 32, 47, 0, 0, 51, 0, 0, 0, 50,
- 0, 0, 0, 0, 50, 0, 0, 47, 0, 0,
- 51, 0, 47, 0, 0, 51, 52, 52, 52, 53,
-
- 53, 53, 0, 52, 52, 52, 52, 52, 52, 0,
- 0, 0, 52, 0, 52, 53, 0, 53, 0, 0,
- 0, 0, 0, 0, 52, 0, 0, 53, 0, 0,
- 0, 52, 52, 52, 52, 52, 52, 0, 0, 52,
- 0, 0, 53, 0, 52, 0, 0, 53, 54, 54,
- 54, 55, 55, 55, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 54, 54, 0, 54, 55, 0, 55,
- 0, 0, 56, 56, 56, 55, 54, 0, 0, 55,
- 0, 56, 0, 0, 0, 57, 57, 57, 56, 0,
- 56, 54, 0, 0, 55, 0, 54, 0, 0, 55,
-
- 56, 57, 0, 57, 0, 57, 0, 0, 0, 0,
- 0, 0, 0, 57, 0, 56, 0, 0, 0, 0,
- 56, 59, 59, 59, 0, 0, 0, 0, 57, 0,
- 0, 0, 59, 57, 58, 58, 58, 59, 0, 59,
- 0, 0, 0, 60, 60, 60, 0, 0, 0, 59,
- 58, 0, 58, 0, 0, 58, 0, 0, 58, 60,
- 0, 60, 58, 0, 59, 0, 0, 60, 0, 59,
- 0, 60, 61, 61, 61, 0, 0, 58, 62, 62,
- 62, 0, 58, 0, 0, 61, 60, 0, 61, 0,
- 61, 60, 0, 0, 62, 0, 62, 0, 62, 0,
-
- 61, 0, 0, 0, 0, 0, 62, 0, 0, 0,
- 0, 0, 0, 0, 0, 61, 0, 0, 0, 0,
- 61, 62, 0, 64, 64, 64, 62, 63, 63, 63,
- 65, 65, 65, 0, 63, 0, 0, 0, 0, 64,
- 63, 64, 0, 63, 0, 63, 65, 0, 65, 0,
- 0, 64, 65, 64, 0, 63, 0, 0, 65, 0,
- 0, 66, 66, 66, 0, 0, 64, 0, 0, 0,
- 63, 64, 0, 65, 0, 63, 0, 66, 65, 66,
- 69, 69, 69, 66, 70, 70, 70, 0, 0, 66,
- 0, 0, 0, 0, 0, 0, 69, 0, 69, 0,
-
- 70, 0, 70, 0, 66, 0, 0, 0, 69, 66,
- 0, 0, 70, 0, 0, 0, 0, 76, 76, 76,
- 0, 70, 0, 69, 0, 0, 69, 70, 69, 0,
- 76, 0, 70, 76, 0, 76, 77, 77, 77, 78,
- 78, 78, 0, 0, 0, 76, 0, 0, 0, 0,
- 0, 0, 77, 0, 77, 78, 78, 78, 77, 0,
- 76, 0, 0, 0, 77, 76, 0, 78, 0, 0,
- 79, 79, 79, 0, 80, 80, 80, 0, 0, 77,
- 0, 0, 78, 0, 77, 0, 79, 78, 79, 0,
- 80, 0, 80, 0, 0, 79, 0, 0, 79, 80,
-
- 0, 0, 80, 81, 81, 81, 0, 82, 82, 82,
- 0, 0, 0, 79, 81, 0, 0, 80, 79, 81,
- 0, 81, 80, 82, 0, 82, 0, 0, 82, 0,
- 0, 81, 0, 0, 0, 82, 83, 83, 83, 0,
- 0, 0, 84, 84, 84, 0, 81, 0, 0, 0,
- 82, 81, 83, 84, 83, 82, 0, 83, 84, 0,
- 84, 0, 0, 0, 83, 85, 85, 85, 0, 0,
- 84, 0, 0, 0, 0, 0, 86, 86, 86, 83,
- 0, 85, 0, 85, 83, 84, 0, 87, 87, 87,
- 84, 85, 86, 85, 86, 0, 0, 0, 86, 0,
-
- 88, 88, 88, 87, 86, 87, 0, 0, 85, 0,
- 0, 88, 0, 85, 0, 87, 88, 0, 88, 86,
- 0, 89, 89, 89, 86, 0, 0, 0, 88, 0,
- 87, 0, 0, 0, 0, 87, 0, 89, 0, 89,
- 90, 90, 90, 88, 0, 89, 0, 0, 88, 89,
- 0, 0, 0, 0, 0, 0, 90, 0, 90, 92,
- 92, 92, 0, 90, 89, 0, 0, 0, 90, 89,
- 0, 0, 0, 0, 0, 92, 0, 92, 93, 93,
- 93, 0, 0, 90, 0, 0, 0, 92, 90, 0,
- 0, 0, 0, 0, 93, 92, 93, 0, 0, 100,
-
- 100, 100, 92, 0, 0, 0, 93, 92, 0, 0,
- 0, 0, 0, 93, 0, 100, 0, 100, 101, 101,
- 101, 93, 102, 102, 102, 0, 93, 100, 0, 0,
- 0, 0, 0, 0, 101, 0, 101, 101, 102, 0,
- 102, 0, 100, 0, 0, 0, 101, 100, 0, 0,
- 102, 102, 0, 103, 103, 103, 104, 104, 104, 0,
- 0, 101, 0, 0, 0, 102, 101, 0, 0, 103,
- 102, 103, 104, 0, 104, 0, 0, 104, 103, 0,
- 0, 103, 0, 0, 104, 0, 0, 105, 105, 105,
- 106, 106, 106, 0, 0, 0, 103, 0, 0, 104,
-
- 0, 103, 0, 105, 104, 105, 106, 0, 106, 0,
- 0, 105, 106, 0, 0, 105, 0, 0, 106, 0,
- 0, 107, 107, 107, 0, 108, 108, 108, 0, 0,
- 105, 0, 0, 106, 0, 105, 0, 107, 106, 107,
- 0, 108, 0, 108, 109, 109, 109, 0, 0, 107,
- 108, 0, 0, 108, 0, 0, 0, 0, 0, 0,
- 109, 0, 109, 0, 107, 0, 0, 109, 108, 107,
- 0, 0, 109, 108, 0, 110, 110, 110, 0, 111,
- 111, 111, 0, 112, 112, 112, 0, 109, 111, 0,
- 110, 110, 109, 110, 112, 111, 0, 111, 0, 112,
-
- 0, 112, 0, 110, 0, 0, 0, 111, 0, 0,
- 0, 112, 113, 113, 113, 0, 0, 0, 110, 114,
- 114, 114, 111, 110, 0, 0, 112, 111, 113, 0,
- 113, 112, 113, 0, 0, 114, 0, 114, 0, 0,
- 113, 115, 115, 115, 0, 0, 0, 114, 117, 117,
- 117, 0, 0, 0, 0, 113, 115, 115, 0, 115,
- 113, 0, 114, 0, 117, 0, 117, 114, 0, 115,
- 118, 118, 118, 0, 0, 0, 117, 127, 127, 127,
- 0, 0, 0, 117, 115, 0, 118, 0, 118, 115,
- 0, 117, 0, 127, 0, 127, 117, 0, 118, 128,
-
- 128, 128, 0, 0, 0, 127, 129, 129, 129, 0,
- 130, 130, 130, 118, 118, 128, 129, 128, 118, 0,
- 127, 0, 129, 0, 129, 127, 130, 128, 130, 0,
- 0, 0, 0, 0, 129, 0, 0, 0, 130, 131,
- 131, 131, 128, 132, 132, 132, 0, 128, 0, 129,
- 133, 133, 133, 130, 129, 131, 0, 131, 130, 132,
- 0, 132, 0, 0, 132, 0, 133, 131, 133, 0,
- 0, 132, 0, 0, 133, 0, 0, 0, 133, 134,
- 134, 134, 131, 0, 0, 0, 132, 131, 0, 0,
- 0, 132, 0, 133, 134, 134, 0, 134, 133, 0,
-
- 135, 135, 135, 136, 136, 136, 0, 134, 0, 0,
- 135, 0, 0, 0, 0, 0, 135, 136, 135, 136,
- 0, 136, 134, 0, 0, 0, 0, 134, 135, 0,
- 0, 136, 0, 0, 137, 137, 137, 0, 0, 0,
- 0, 0, 0, 135, 0, 0, 136, 0, 135, 0,
- 137, 136, 137, 137, 0, 138, 138, 138, 139, 139,
- 139, 0, 137, 0, 0, 0, 0, 138, 0, 0,
- 0, 138, 0, 138, 139, 0, 139, 137, 139, 140,
- 140, 140, 137, 138, 0, 0, 139, 0, 0, 0,
- 0, 0, 0, 0, 0, 140, 0, 140, 138, 0,
-
- 0, 139, 0, 138, 0, 0, 139, 140, 141, 141,
- 141, 141, 0, 0, 150, 150, 150, 151, 151, 151,
- 0, 0, 140, 140, 141, 150, 141, 140, 0, 0,
- 150, 0, 150, 151, 0, 151, 141, 0, 0, 0,
- 0, 0, 150, 0, 0, 151, 0, 0, 152, 152,
- 152, 141, 0, 0, 0, 0, 141, 150, 0, 0,
- 151, 0, 150, 0, 152, 151, 152, 153, 153, 153,
- 154, 154, 154, 0, 0, 0, 152, 0, 0, 0,
- 0, 154, 152, 153, 0, 153, 154, 0, 154, 0,
- 0, 152, 0, 0, 0, 153, 152, 153, 154, 0,
-
- 0, 155, 155, 155, 156, 156, 156, 0, 0, 0,
- 153, 0, 0, 154, 0, 153, 0, 155, 154, 155,
- 156, 0, 156, 157, 157, 157, 0, 0, 156, 155,
- 0, 0, 156, 0, 0, 155, 0, 0, 0, 157,
- 0, 157, 0, 0, 155, 0, 0, 156, 0, 155,
- 0, 157, 156, 0, 158, 158, 158, 157, 159, 159,
- 159, 159, 169, 169, 169, 0, 157, 0, 0, 0,
- 158, 157, 158, 158, 159, 0, 159, 0, 169, 0,
- 169, 0, 158, 0, 0, 0, 159, 0, 0, 0,
- 169, 170, 170, 170, 0, 0, 169, 158, 0, 0,
-
- 0, 159, 158, 170, 0, 169, 159, 170, 0, 170,
- 169, 0, 171, 171, 171, 172, 172, 172, 0, 170,
- 0, 0, 0, 171, 0, 0, 0, 0, 171, 0,
- 171, 172, 0, 172, 170, 0, 173, 173, 173, 170,
- 171, 0, 0, 172, 0, 0, 173, 0, 0, 174,
- 174, 174, 173, 0, 173, 171, 0, 0, 172, 0,
- 171, 0, 0, 172, 173, 174, 0, 174, 0, 0,
- 0, 175, 175, 175, 0, 0, 0, 174, 0, 173,
- 176, 176, 176, 0, 173, 175, 0, 175, 0, 175,
- 0, 0, 174, 184, 184, 184, 176, 174, 176, 175,
-
- 0, 0, 185, 185, 185, 184, 0, 0, 176, 184,
- 0, 184, 0, 0, 175, 186, 186, 186, 185, 175,
- 185, 184, 185, 176, 187, 187, 187, 0, 176, 0,
- 185, 186, 0, 186, 0, 0, 184, 0, 0, 187,
- 187, 184, 187, 186, 0, 185, 188, 188, 188, 0,
- 185, 0, 187, 191, 191, 191, 0, 188, 186, 0,
- 0, 0, 188, 186, 188, 0, 0, 187, 191, 191,
- 0, 191, 187, 0, 188, 192, 192, 192, 0, 0,
- 0, 191, 193, 193, 193, 0, 0, 0, 0, 188,
- 0, 192, 0, 192, 188, 0, 191, 192, 193, 0,
-
- 193, 191, 0, 192, 193, 0, 194, 194, 194, 0,
- 193, 0, 0, 194, 0, 197, 197, 197, 192, 198,
- 198, 198, 194, 192, 194, 193, 0, 0, 0, 0,
- 193, 197, 197, 197, 194, 198, 0, 198, 0, 0,
- 0, 0, 0, 197, 0, 0, 0, 198, 0, 194,
- 199, 199, 199, 0, 194, 0, 0, 0, 197, 200,
- 200, 200, 198, 197, 0, 0, 199, 198, 199, 200,
- 0, 0, 201, 201, 201, 200, 0, 200, 199, 0,
- 0, 0, 0, 201, 0, 0, 0, 200, 201, 0,
- 201, 0, 0, 199, 202, 202, 202, 0, 199, 0,
-
- 201, 202, 200, 203, 203, 203, 0, 200, 0, 0,
- 202, 0, 202, 0, 203, 201, 204, 204, 204, 203,
- 201, 203, 202, 0, 0, 205, 205, 205, 0, 0,
- 0, 203, 204, 0, 204, 0, 0, 202, 206, 206,
- 206, 205, 202, 205, 204, 0, 203, 0, 0, 205,
- 0, 203, 0, 205, 206, 0, 206, 0, 0, 204,
- 206, 207, 207, 207, 204, 0, 206, 0, 205, 208,
- 208, 208, 0, 205, 0, 0, 0, 207, 0, 207,
- 0, 206, 209, 209, 209, 208, 206, 208, 0, 207,
- 0, 0, 208, 0, 0, 0, 0, 208, 209, 0,
-
- 209, 0, 0, 0, 207, 0, 0, 0, 0, 207,
- 209, 0, 208, 0, 0, 0, 0, 208, 0, 0,
- 0, 0, 0, 0, 0, 209, 0, 0, 0, 0,
- 209, 211, 211, 211, 213, 0, 213, 214, 0, 214,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
-
- 210, 210, 210, 210, 210, 210, 210
- } ;
-
-static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
-static char *yy_full_match;
-static int yy_lp;
-#define REJECT \
-{ \
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
-yy_cp = yy_full_match; /* restore poss. backed-over text */ \
-++yy_lp; \
-goto find_rule; \
-}
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
-#line 1 "/home/drepper/gnu/elfutils/src/ldlex.l"
-#define INITIAL 0
-#line 2 "/home/drepper/gnu/elfutils/src/ldlex.l"
-/* Copyright (C) 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <ctype.h>
-#include <elf.h>
-#include <error.h>
-#include <inttypes.h>
-#include <libintl.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <system.h>
-#include <ld.h>
-#include "ldscript.h"
-
-/* We sure use no threads to read the stream, so use the _unlocked
- variants of the functions. */
-#undef getc
-#define getc(s) getc_unlocked (s)
-#undef ferror
-#define ferror(s) ferror_unlocked (s)
-#undef fread
-#define fread(b, m, n, s) fread_unlocked (b, m, n, s)
-#undef fwrite
-#define fwrite(b, m, n, s) fwrite_unlocked (b, m, n, s)
-
-/* Defined in ld.c. */
-extern int ld_scan_version_script;
-
-#define MAX_PREPDEPTH 20
-static enum prepstate
-{
- prep_normal,
- skip_if,
- skip_to_endif
-} prepstate[MAX_PREPDEPTH];
-static int prepdepth;
-
-static void eat_comment (void);
-static void eat_to_eol (bool empty);
-static int attrib_convert (int c);
-static void push_state (enum prepstate);
-static int pop_state (void);
-static int handle_ifdef (void);
-static void invalid_char (int ch);
-#define YY_NEVER_INTERACTIVE 1
-#define IGNORE 1
-
-#line 1061 "ldlex.c"
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int yywrap YY_PROTO(( void ));
-#else
-extern int yywrap YY_PROTO(( void ));
-#endif
-#endif
-
-#ifndef YY_NO_UNPUT
-static void yyunput YY_PROTO(( int c, char *buf_ptr ));
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen YY_PROTO(( yyconst char * ));
-#endif
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-static int yyinput YY_PROTO(( void ));
-#else
-static int input YY_PROTO(( void ));
-#endif
-#endif
-
-#if YY_STACK_USED
-static int yy_start_stack_ptr = 0;
-static int yy_start_stack_depth = 0;
-static int *yy_start_stack = 0;
-#ifndef YY_NO_PUSH_STATE
-static void yy_push_state YY_PROTO(( int new_state ));
-#endif
-#ifndef YY_NO_POP_STATE
-static void yy_pop_state YY_PROTO(( void ));
-#endif
-#ifndef YY_NO_TOP_STATE
-static int yy_top_state YY_PROTO(( void ));
-#endif
-
-#else
-#define YY_NO_PUSH_STATE 1
-#define YY_NO_POP_STATE 1
-#define YY_NO_TOP_STATE 1
-#endif
-
-#ifdef YY_MALLOC_DECL
-YY_MALLOC_DECL
-#else
-#if __STDC__
-#ifndef __cplusplus
-#include <stdlib.h>
-#endif
-#else
-/* Just try to get by without declaring the routines. This will fail
- * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
- * or sizeof(void*) != sizeof(int).
- */
-#endif
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
-#endif
-
-/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
- if ( yy_current_buffer->yy_is_interactive ) \
- { \
- int c = '*', n; \
- for ( n = 0; n < max_size && \
- (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
- buf[n] = (char) c; \
- if ( c == '\n' ) \
- buf[n++] = (char) c; \
- if ( c == EOF && ferror( yyin ) ) \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- result = n; \
- } \
- else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
- && ferror( yyin ) ) \
- YY_FATAL_ERROR( "input in flex scanner failed" );
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-#endif
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL int yylex YY_PROTO(( void ))
-#endif
-
-/* Code executed at the beginning of each rule, after yytext and yyleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
- if ( yyleng > 0 ) \
- yy_current_buffer->yy_at_bol = \
- (yytext[yyleng - 1] == '\n'); \
- YY_USER_ACTION
-
-YY_DECL
- {
- register yy_state_type yy_current_state;
- register char *yy_cp = NULL, *yy_bp = NULL;
- register int yy_act;
-
-#line 79 "/home/drepper/gnu/elfutils/src/ldlex.l"
-
- if (unlikely (ld_scan_version_script))
- {
- ld_scan_version_script = -1;
- return kVERSION_SCRIPT;
- }
-
-#line 1223 "ldlex.c"
-
- if ( yy_init )
- {
- yy_init = 0;
-
-#ifdef YY_USER_INIT
- YY_USER_INIT;
-#endif
-
- if ( ! yy_start )
- yy_start = 1; /* first start state */
-
- if ( ! yyin )
- yyin = stdin;
-
- if ( ! yyout )
- yyout = stdout;
-
- if ( ! yy_current_buffer )
- yy_current_buffer =
- yy_create_buffer( yyin, YY_BUF_SIZE );
-
- yy_load_buffer_state();
- }
-
- while ( 1 ) /* loops until end-of-file is reached */
- {
- yy_cp = yy_c_buf_p;
-
- /* Support of yytext. */
- *yy_cp = yy_hold_char;
-
- /* yy_bp points to the position in yy_ch_buf of the start of
- * the current run.
- */
- yy_bp = yy_cp;
-
- yy_current_state = yy_start;
- yy_current_state += YY_AT_BOL();
- yy_state_ptr = yy_state_buf;
- *yy_state_ptr++ = yy_current_state;
-yy_match:
- do
- {
- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 211 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- *yy_state_ptr++ = yy_current_state;
- ++yy_cp;
- }
- while ( yy_base[yy_current_state] != 2141 );
-
-yy_find_action:
- yy_current_state = *--yy_state_ptr;
- yy_lp = yy_accept[yy_current_state];
-find_rule: /* we branch to this label when backing up */
- for ( ; ; ) /* until we find what rule we matched */
- {
- if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
- {
- yy_act = yy_acclist[yy_lp];
- {
- yy_full_match = yy_cp;
- break;
- }
- }
- --yy_cp;
- yy_current_state = *--yy_state_ptr;
- yy_lp = yy_accept[yy_current_state];
- }
-
- YY_DO_BEFORE_ACTION;
-
- if ( yy_act != YY_END_OF_BUFFER )
- {
- int yyl;
- for ( yyl = 0; yyl < yyleng; ++yyl )
- if ( yytext[yyl] == '\n' )
- ++yylineno;
- }
-
-do_action: /* This label is used only to access EOF actions. */
-
-
- switch ( yy_act )
- { /* beginning of action switch */
-case 1:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 6;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 86 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ BEGIN (handle_ifdef ()); }
- YY_BREAK
-case 2:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 5;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 87 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ eat_to_eol (true);
- push_state (skip_to_endif);
- BEGIN (IGNORE); }
- YY_BREAK
-case 3:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 8;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 90 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ eat_to_eol (false);
- push_state (skip_to_endif);
- BEGIN (IGNORE); }
- YY_BREAK
-case 4:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 6;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 93 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ eat_to_eol (true) ; }
- YY_BREAK
-case 5:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 6;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 95 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ eat_to_eol (false);
- push_state (skip_to_endif); }
- YY_BREAK
-case 6:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 5;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 97 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ eat_to_eol (true);
- assert (prepdepth > 0);
- if (prepstate[prepdepth - 1] == skip_if)
- {
- /* Back to normal processing. */
- assert (prepdepth == 1);
- BEGIN (pop_state ());
- }
- }
- YY_BREAK
-case 7:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 8;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 106 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ assert (prepdepth > 0);
- if (prepstate[prepdepth - 1] == skip_if)
- {
- /* Maybe this symbol is defined. */
- pop_state ();
- BEGIN (handle_ifdef ());
- }
- }
- YY_BREAK
-case 8:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 6;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 114 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ eat_to_eol (true);
- BEGIN (pop_state ()); }
- YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 116 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ /* nothing */ }
- YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 119 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ eat_comment (); }
- YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 121 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kALIGN; }
- YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 122 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kENTRY; }
- YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 123 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kEXCLUDE_FILE; }
- YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 124 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kGLOBAL; }
- YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 125 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kGROUP; }
- YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 126 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kINPUT; }
- YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 127 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kINTERP; }
- YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 128 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kKEEP; }
- YY_BREAK
-case 19:
-YY_RULE_SETUP
-#line 129 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kLOCAL; }
- YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 130 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kOUTPUT_FORMAT; }
- YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 131 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kPAGESIZE; }
- YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 132 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kPROVIDE; }
- YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 133 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kSEARCH_DIR; }
- YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 134 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kSEGMENT; }
- YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 135 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kSIZEOF_HEADERS; }
- YY_BREAK
-case 26:
-YY_RULE_SETUP
-#line 136 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kSORT; }
- YY_BREAK
-case 27:
-YY_RULE_SETUP
-#line 137 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return kVERSION; }
- YY_BREAK
-case 28:
-YY_RULE_SETUP
-#line 139 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ int cnt = 1 ;
- ldlval.num = 0;
- while (cnt < yyleng - 1)
- ldlval.num |= attrib_convert (yytext[cnt++]);
- return kMODE; }
- YY_BREAK
-case 29:
-YY_RULE_SETUP
-#line 145 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return '{'; }
- YY_BREAK
-case 30:
-YY_RULE_SETUP
-#line 146 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return '}'; }
- YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 147 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return '('; }
- YY_BREAK
-case 32:
-YY_RULE_SETUP
-#line 148 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return ')'; }
- YY_BREAK
-case 33:
-YY_RULE_SETUP
-#line 149 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return ':'; }
- YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 150 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return ';'; }
- YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 151 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return '='; }
- YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 152 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ ldlval.op = exp_plus; return kADD_OP; }
- YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 153 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ ldlval.op = exp_minus; return kADD_OP; }
- YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 154 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return '*'; }
- YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 155 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ ldlval.op = exp_div; return kMUL_OP; }
- YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 156 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ ldlval.op = exp_mod; return kMUL_OP; }
- YY_BREAK
-case 41:
-YY_RULE_SETUP
-#line 157 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return '&'; }
- YY_BREAK
-case 42:
-YY_RULE_SETUP
-#line 158 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return '|'; }
- YY_BREAK
-case 43:
-YY_RULE_SETUP
-#line 160 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ return ','; }
- YY_BREAK
-case 44:
-YY_RULE_SETUP
-#line 162 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ char *endp;
- ldlval.num = strtoumax (yytext, &endp, 0);
- if (*endp != '\0')
- {
- if (tolower (*endp) == 'k')
- ldlval.num *= 1024;
- else
- {
- assert (tolower (*endp) == 'm');
- ldlval.num *= 1024 * 1024;
- }
- }
- return kNUM; }
- YY_BREAK
-case 45:
-YY_RULE_SETUP
-#line 176 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ ldlval.str = obstack_strndup (&ld_state.smem,
- yytext, yyleng);
- return kID; }
- YY_BREAK
-case 46:
-YY_RULE_SETUP
-#line 180 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ ldlval.str = obstack_strndup (&ld_state.smem,
- yytext, yyleng);
- return kFILENAME; }
- YY_BREAK
-case 47:
-YY_RULE_SETUP
-#line 184 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ /* IGNORE */ }
- YY_BREAK
-case 48:
-YY_RULE_SETUP
-#line 186 "/home/drepper/gnu/elfutils/src/ldlex.l"
-{ invalid_char (*yytext); }
- YY_BREAK
-case 49:
-YY_RULE_SETUP
-#line 188 "/home/drepper/gnu/elfutils/src/ldlex.l"
-ECHO;
- YY_BREAK
-#line 1625 "ldlex.c"
- case YY_STATE_EOF(INITIAL):
- case YY_STATE_EOF(IGNORE):
- yyterminate();
-
- case YY_END_OF_BUFFER:
- {
- /* Amount of text matched not including the EOB char. */
- int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
-
- /* Undo the effects of YY_DO_BEFORE_ACTION. */
- *yy_cp = yy_hold_char;
- YY_RESTORE_YY_MORE_OFFSET
-
- if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
- {
- /* We're scanning a new file or input source. It's
- * possible that this happened because the user
- * just pointed yyin at a new source and called
- * yylex(). If so, then we have to assure
- * consistency between yy_current_buffer and our
- * globals. Here is the right place to do so, because
- * this is the first action (other than possibly a
- * back-up) that will match for the new input source.
- */
- yy_n_chars = yy_current_buffer->yy_n_chars;
- yy_current_buffer->yy_input_file = yyin;
- yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
- }
-
- /* Note that here we test for yy_c_buf_p "<=" to the position
- * of the first EOB in the buffer, since yy_c_buf_p will
- * already have been incremented past the NUL character
- * (since all states make transitions on EOB to the
- * end-of-buffer state). Contrast this with the test
- * in input().
- */
- if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
- { /* This was really a NUL. */
- yy_state_type yy_next_state;
-
- yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
-
- yy_current_state = yy_get_previous_state();
-
- /* Okay, we're now positioned to make the NUL
- * transition. We couldn't have
- * yy_get_previous_state() go ahead and do it
- * for us because it doesn't know how to deal
- * with the possibility of jamming (and we don't
- * want to build jamming into it because then it
- * will run more slowly).
- */
-
- yy_next_state = yy_try_NUL_trans( yy_current_state );
-
- yy_bp = yytext_ptr + YY_MORE_ADJ;
-
- if ( yy_next_state )
- {
- /* Consume the NUL. */
- yy_cp = ++yy_c_buf_p;
- yy_current_state = yy_next_state;
- goto yy_match;
- }
-
- else
- {
- yy_cp = yy_c_buf_p;
- goto yy_find_action;
- }
- }
-
- else switch ( yy_get_next_buffer() )
- {
- case EOB_ACT_END_OF_FILE:
- {
- yy_did_buffer_switch_on_eof = 0;
-
- if ( yywrap() )
- {
- /* Note: because we've taken care in
- * yy_get_next_buffer() to have set up
- * yytext, we can now set up
- * yy_c_buf_p so that if some total
- * hoser (like flex itself) wants to
- * call the scanner after we return the
- * YY_NULL, it'll still work - another
- * YY_NULL will get returned.
- */
- yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
-
- yy_act = YY_STATE_EOF(YY_START);
- goto do_action;
- }
-
- else
- {
- if ( ! yy_did_buffer_switch_on_eof )
- YY_NEW_FILE;
- }
- break;
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- yy_c_buf_p =
- yytext_ptr + yy_amount_of_matched_text;
-
- yy_current_state = yy_get_previous_state();
-
- yy_cp = yy_c_buf_p;
- yy_bp = yytext_ptr + YY_MORE_ADJ;
- goto yy_match;
-
- case EOB_ACT_LAST_MATCH:
- yy_c_buf_p =
- &yy_current_buffer->yy_ch_buf[yy_n_chars];
-
- yy_current_state = yy_get_previous_state();
-
- yy_cp = yy_c_buf_p;
- yy_bp = yytext_ptr + YY_MORE_ADJ;
- goto yy_find_action;
- }
- break;
- }
-
- default:
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--no action found" );
- } /* end of action switch */
- } /* end of scanning one token */
- } /* end of yylex */
-
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- * EOB_ACT_LAST_MATCH -
- * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- * EOB_ACT_END_OF_FILE - end of file
- */
-
-static int yy_get_next_buffer()
- {
- register char *dest = yy_current_buffer->yy_ch_buf;
- register char *source = yytext_ptr;
- register int number_to_move, i;
- int ret_val;
-
- if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--end of buffer missed" );
-
- if ( yy_current_buffer->yy_fill_buffer == 0 )
- { /* Don't try to fill the buffer, so this is an EOF. */
- if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
- {
- /* We matched a single character, the EOB, so
- * treat this as a final EOF.
- */
- return EOB_ACT_END_OF_FILE;
- }
-
- else
- {
- /* We matched some text prior to the EOB, first
- * process it.
- */
- return EOB_ACT_LAST_MATCH;
- }
- }
-
- /* Try to read more data. */
-
- /* First move last chars to start of buffer. */
- number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
-
- for ( i = 0; i < number_to_move; ++i )
- *(dest++) = *(source++);
-
- if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
- /* don't do the read, it's not guaranteed to return an EOF,
- * just force an EOF
- */
- yy_current_buffer->yy_n_chars = yy_n_chars = 0;
-
- else
- {
- int num_to_read =
- yy_current_buffer->yy_buf_size - number_to_move - 1;
-
- while ( num_to_read <= 0 )
- { /* Not enough room in the buffer - grow it. */
-#ifdef YY_USES_REJECT
- YY_FATAL_ERROR(
-"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
-#else
-
- /* just a shorter name for the current buffer */
- YY_BUFFER_STATE b = yy_current_buffer;
-
- int yy_c_buf_p_offset =
- (int) (yy_c_buf_p - b->yy_ch_buf);
-
- if ( b->yy_is_our_buffer )
- {
- int new_size = b->yy_buf_size * 2;
-
- if ( new_size <= 0 )
- b->yy_buf_size += b->yy_buf_size / 8;
- else
- b->yy_buf_size *= 2;
-
- b->yy_ch_buf = (char *)
- /* Include room in for 2 EOB chars. */
- yy_flex_realloc( (void *) b->yy_ch_buf,
- b->yy_buf_size + 2 );
- }
- else
- /* Can't grow it, we don't own it. */
- b->yy_ch_buf = 0;
-
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR(
- "fatal error - scanner input buffer overflow" );
-
- yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
-
- num_to_read = yy_current_buffer->yy_buf_size -
- number_to_move - 1;
-#endif
- }
-
- if ( num_to_read > YY_READ_BUF_SIZE )
- num_to_read = YY_READ_BUF_SIZE;
-
- /* Read in more data. */
- YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
- yy_n_chars, num_to_read );
-
- yy_current_buffer->yy_n_chars = yy_n_chars;
- }
-
- if ( yy_n_chars == 0 )
- {
- if ( number_to_move == YY_MORE_ADJ )
- {
- ret_val = EOB_ACT_END_OF_FILE;
- yyrestart( yyin );
- }
-
- else
- {
- ret_val = EOB_ACT_LAST_MATCH;
- yy_current_buffer->yy_buffer_status =
- YY_BUFFER_EOF_PENDING;
- }
- }
-
- else
- ret_val = EOB_ACT_CONTINUE_SCAN;
-
- yy_n_chars += number_to_move;
- yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
- yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
-
- yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
-
- return ret_val;
- }
-
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-static yy_state_type yy_get_previous_state()
- {
- register yy_state_type yy_current_state;
- register char *yy_cp;
-
- yy_current_state = yy_start;
- yy_current_state += YY_AT_BOL();
- yy_state_ptr = yy_state_buf;
- *yy_state_ptr++ = yy_current_state;
-
- for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
- {
- register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 211 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- *yy_state_ptr++ = yy_current_state;
- }
-
- return yy_current_state;
- }
-
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- * next_state = yy_try_NUL_trans( current_state );
- */
-
-#ifdef YY_USE_PROTOS
-static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
-#else
-static yy_state_type yy_try_NUL_trans( yy_current_state )
-yy_state_type yy_current_state;
-#endif
- {
- register int yy_is_jam;
-
- register YY_CHAR yy_c = 1;
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 211 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 210);
- if ( ! yy_is_jam )
- *yy_state_ptr++ = yy_current_state;
-
- return yy_is_jam ? 0 : yy_current_state;
- }
-
-
-#ifndef YY_NO_UNPUT
-#ifdef YY_USE_PROTOS
-static void yyunput( int c, register char *yy_bp )
-#else
-static void yyunput( c, yy_bp )
-int c;
-register char *yy_bp;
-#endif
- {
- register char *yy_cp = yy_c_buf_p;
-
- /* undo effects of setting up yytext */
- *yy_cp = yy_hold_char;
-
- if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
- { /* need to shift things up to make room */
- /* +2 for EOB chars. */
- register int number_to_move = yy_n_chars + 2;
- register char *dest = &yy_current_buffer->yy_ch_buf[
- yy_current_buffer->yy_buf_size + 2];
- register char *source =
- &yy_current_buffer->yy_ch_buf[number_to_move];
-
- while ( source > yy_current_buffer->yy_ch_buf )
- *--dest = *--source;
-
- yy_cp += (int) (dest - source);
- yy_bp += (int) (dest - source);
- yy_current_buffer->yy_n_chars =
- yy_n_chars = yy_current_buffer->yy_buf_size;
-
- if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
- YY_FATAL_ERROR( "flex scanner push-back overflow" );
- }
-
- *--yy_cp = (char) c;
-
- if ( c == '\n' )
- --yylineno;
-
- yytext_ptr = yy_bp;
- yy_hold_char = *yy_cp;
- yy_c_buf_p = yy_cp;
- }
-#endif /* ifndef YY_NO_UNPUT */
-
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-static int yyinput()
-#else
-static int input()
-#endif
- {
- int c;
-
- *yy_c_buf_p = yy_hold_char;
-
- if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
- {
- /* yy_c_buf_p now points to the character we want to return.
- * If this occurs *before* the EOB characters, then it's a
- * valid NUL; if not, then we've hit the end of the buffer.
- */
- if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
- /* This was really a NUL. */
- *yy_c_buf_p = '\0';
-
- else
- { /* need more input */
- int offset = yy_c_buf_p - yytext_ptr;
- ++yy_c_buf_p;
-
- switch ( yy_get_next_buffer() )
- {
- case EOB_ACT_LAST_MATCH:
- /* This happens because yy_g_n_b()
- * sees that we've accumulated a
- * token and flags that we need to
- * try matching the token before
- * proceeding. But for input(),
- * there's no matching to consider.
- * So convert the EOB_ACT_LAST_MATCH
- * to EOB_ACT_END_OF_FILE.
- */
-
- /* Reset buffer status. */
- yyrestart( yyin );
-
- /* fall through */
-
- case EOB_ACT_END_OF_FILE:
- {
- if ( yywrap() )
- return EOF;
-
- if ( ! yy_did_buffer_switch_on_eof )
- YY_NEW_FILE;
-#ifdef __cplusplus
- return yyinput();
-#else
- return input();
-#endif
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- yy_c_buf_p = yytext_ptr + offset;
- break;
- }
- }
- }
-
- c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
- *yy_c_buf_p = '\0'; /* preserve yytext */
- yy_hold_char = *++yy_c_buf_p;
-
- yy_current_buffer->yy_at_bol = (c == '\n');
- if ( yy_current_buffer->yy_at_bol )
- ++yylineno;
-
- return c;
- }
-#endif /* YY_NO_INPUT */
-
-#ifdef YY_USE_PROTOS
-void yyrestart( FILE *input_file )
-#else
-void yyrestart( input_file )
-FILE *input_file;
-#endif
- {
- if ( ! yy_current_buffer )
- yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
-
- yy_init_buffer( yy_current_buffer, input_file );
- yy_load_buffer_state();
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
-#else
-void yy_switch_to_buffer( new_buffer )
-YY_BUFFER_STATE new_buffer;
-#endif
- {
- if ( yy_current_buffer == new_buffer )
- return;
-
- if ( yy_current_buffer )
- {
- /* Flush out information for old buffer. */
- *yy_c_buf_p = yy_hold_char;
- yy_current_buffer->yy_buf_pos = yy_c_buf_p;
- yy_current_buffer->yy_n_chars = yy_n_chars;
- }
-
- yy_current_buffer = new_buffer;
- yy_load_buffer_state();
-
- /* We don't actually know whether we did this switch during
- * EOF (yywrap()) processing, but the only time this flag
- * is looked at is after yywrap() is called, so it's safe
- * to go ahead and always set it.
- */
- yy_did_buffer_switch_on_eof = 1;
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_load_buffer_state( void )
-#else
-void yy_load_buffer_state()
-#endif
- {
- yy_n_chars = yy_current_buffer->yy_n_chars;
- yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
- yyin = yy_current_buffer->yy_input_file;
- yy_hold_char = *yy_c_buf_p;
- }
-
-
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
-#else
-YY_BUFFER_STATE yy_create_buffer( file, size )
-FILE *file;
-int size;
-#endif
- {
- YY_BUFFER_STATE b;
-
- b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
- b->yy_buf_size = size;
-
- /* yy_ch_buf has to be 2 characters longer than the size given because
- * we need to put in 2 end-of-buffer characters.
- */
- b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
- b->yy_is_our_buffer = 1;
-
- yy_init_buffer( b, file );
-
- return b;
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_delete_buffer( YY_BUFFER_STATE b )
-#else
-void yy_delete_buffer( b )
-YY_BUFFER_STATE b;
-#endif
- {
- if ( ! b )
- return;
-
- if ( b == yy_current_buffer )
- yy_current_buffer = (YY_BUFFER_STATE) 0;
-
- if ( b->yy_is_our_buffer )
- yy_flex_free( (void *) b->yy_ch_buf );
-
- yy_flex_free( (void *) b );
- }
-
-
-
-#ifdef YY_USE_PROTOS
-void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
-#else
-void yy_init_buffer( b, file )
-YY_BUFFER_STATE b;
-FILE *file;
-#endif
-
-
- {
- yy_flush_buffer( b );
-
- b->yy_input_file = file;
- b->yy_fill_buffer = 1;
-
-#if YY_ALWAYS_INTERACTIVE
- b->yy_is_interactive = 1;
-#else
-#if YY_NEVER_INTERACTIVE
- b->yy_is_interactive = 0;
-#else
- b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-#endif
-#endif
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_flush_buffer( YY_BUFFER_STATE b )
-#else
-void yy_flush_buffer( b )
-YY_BUFFER_STATE b;
-#endif
-
- {
- if ( ! b )
- return;
-
- b->yy_n_chars = 0;
-
- /* We always need two end-of-buffer characters. The first causes
- * a transition to the end-of-buffer state. The second causes
- * a jam in that state.
- */
- b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
- b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
- b->yy_buf_pos = &b->yy_ch_buf[0];
-
- b->yy_at_bol = 1;
- b->yy_buffer_status = YY_BUFFER_NEW;
-
- if ( b == yy_current_buffer )
- yy_load_buffer_state();
- }
-
-
-#ifndef YY_NO_SCAN_BUFFER
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
-#else
-YY_BUFFER_STATE yy_scan_buffer( base, size )
-char *base;
-yy_size_t size;
-#endif
- {
- YY_BUFFER_STATE b;
-
- if ( size < 2 ||
- base[size-2] != YY_END_OF_BUFFER_CHAR ||
- base[size-1] != YY_END_OF_BUFFER_CHAR )
- /* They forgot to leave room for the EOB's. */
- return 0;
-
- b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
-
- b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
- b->yy_buf_pos = b->yy_ch_buf = base;
- b->yy_is_our_buffer = 0;
- b->yy_input_file = 0;
- b->yy_n_chars = b->yy_buf_size;
- b->yy_is_interactive = 0;
- b->yy_at_bol = 1;
- b->yy_fill_buffer = 0;
- b->yy_buffer_status = YY_BUFFER_NEW;
-
- yy_switch_to_buffer( b );
-
- return b;
- }
-#endif
-
-
-#ifndef YY_NO_SCAN_STRING
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
-#else
-YY_BUFFER_STATE yy_scan_string( yy_str )
-yyconst char *yy_str;
-#endif
- {
- int len;
- for ( len = 0; yy_str[len]; ++len )
- ;
-
- return yy_scan_bytes( yy_str, len );
- }
-#endif
-
-
-#ifndef YY_NO_SCAN_BYTES
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
-#else
-YY_BUFFER_STATE yy_scan_bytes( bytes, len )
-yyconst char *bytes;
-int len;
-#endif
- {
- YY_BUFFER_STATE b;
- char *buf;
- yy_size_t n;
- int i;
-
- /* Get memory for full buffer, including space for trailing EOB's. */
- n = len + 2;
- buf = (char *) yy_flex_alloc( n );
- if ( ! buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
-
- for ( i = 0; i < len; ++i )
- buf[i] = bytes[i];
-
- buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
-
- b = yy_scan_buffer( buf, n );
- if ( ! b )
- YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
-
- /* It's okay to grow etc. this buffer, and we should throw it
- * away when we're done.
- */
- b->yy_is_our_buffer = 1;
-
- return b;
- }
-#endif
-
-
-#ifndef YY_NO_PUSH_STATE
-#ifdef YY_USE_PROTOS
-static void yy_push_state( int new_state )
-#else
-static void yy_push_state( new_state )
-int new_state;
-#endif
- {
- if ( yy_start_stack_ptr >= yy_start_stack_depth )
- {
- yy_size_t new_size;
-
- yy_start_stack_depth += YY_START_STACK_INCR;
- new_size = yy_start_stack_depth * sizeof( int );
-
- if ( ! yy_start_stack )
- yy_start_stack = (int *) yy_flex_alloc( new_size );
-
- else
- yy_start_stack = (int *) yy_flex_realloc(
- (void *) yy_start_stack, new_size );
-
- if ( ! yy_start_stack )
- YY_FATAL_ERROR(
- "out of memory expanding start-condition stack" );
- }
-
- yy_start_stack[yy_start_stack_ptr++] = YY_START;
-
- BEGIN(new_state);
- }
-#endif
-
-
-#ifndef YY_NO_POP_STATE
-static void yy_pop_state()
- {
- if ( --yy_start_stack_ptr < 0 )
- YY_FATAL_ERROR( "start-condition stack underflow" );
-
- BEGIN(yy_start_stack[yy_start_stack_ptr]);
- }
-#endif
-
-
-#ifndef YY_NO_TOP_STATE
-static int yy_top_state()
- {
- return yy_start_stack[yy_start_stack_ptr - 1];
- }
-#endif
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-#ifdef YY_USE_PROTOS
-static void yy_fatal_error( yyconst char msg[] )
-#else
-static void yy_fatal_error( msg )
-char msg[];
-#endif
- {
- (void) fprintf( stderr, "%s\n", msg );
- exit( YY_EXIT_FAILURE );
- }
-
-
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
- do \
- { \
- /* Undo effects of setting up yytext. */ \
- yytext[yyleng] = yy_hold_char; \
- yy_c_buf_p = yytext + n; \
- yy_hold_char = *yy_c_buf_p; \
- *yy_c_buf_p = '\0'; \
- yyleng = n; \
- } \
- while ( 0 )
-
-
-/* Internal utility routines. */
-
-#ifndef yytext_ptr
-#ifdef YY_USE_PROTOS
-static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
-#else
-static void yy_flex_strncpy( s1, s2, n )
-char *s1;
-yyconst char *s2;
-int n;
-#endif
- {
- register int i;
- for ( i = 0; i < n; ++i )
- s1[i] = s2[i];
- }
-#endif
-
-#ifdef YY_NEED_STRLEN
-#ifdef YY_USE_PROTOS
-static int yy_flex_strlen( yyconst char *s )
-#else
-static int yy_flex_strlen( s )
-yyconst char *s;
-#endif
- {
- register int n;
- for ( n = 0; s[n]; ++n )
- ;
-
- return n;
- }
-#endif
-
-
-#ifdef YY_USE_PROTOS
-static void *yy_flex_alloc( yy_size_t size )
-#else
-static void *yy_flex_alloc( size )
-yy_size_t size;
-#endif
- {
- return (void *) malloc( size );
- }
-
-#ifdef YY_USE_PROTOS
-static void *yy_flex_realloc( void *ptr, yy_size_t size )
-#else
-static void *yy_flex_realloc( ptr, size )
-void *ptr;
-yy_size_t size;
-#endif
- {
- /* The cast to (char *) in the following accommodates both
- * implementations that use char* generic pointers, and those
- * that use void* generic pointers. It works with the latter
- * because both ANSI C and C++ allow castless assignment from
- * any pointer type to void*, and deal with argument conversions
- * as though doing an assignment.
- */
- return (void *) realloc( (char *) ptr, size );
- }
-
-#ifdef YY_USE_PROTOS
-static void yy_flex_free( void *ptr )
-#else
-static void yy_flex_free( ptr )
-void *ptr;
-#endif
- {
- free( ptr );
- }
-
-#if YY_MAIN
-int main()
- {
- yylex();
- return 0;
- }
-#endif
-#line 188 "/home/drepper/gnu/elfutils/src/ldlex.l"
-
-
-static void
-eat_comment (void)
-{
- while (1)
- {
- int c = input ();
-
- while (c != '*' && c != EOF)
- c = input ();
-
- if (c == '*')
- {
- c = input ();
- while (c == '*')
- c = input ();
- if (c == '/')
- break;
- }
-
- if (c == EOF)
- {
- /* XXX Use the setjmp buffer and signal EOF in comment */
- error (0, 0, gettext ("EOF in comment"));
- break;
- }
- }
-}
-
-
-static void
-eat_to_eol (bool empty)
-{
- bool warned = false;
-
- while (1)
- {
- int c = input ();
-
- if (c == EOF)
- break;
- if (c == '\n')
- {
- ++yylineno;
- break;
- }
-
- if (empty && ! isspace (c) && ! warned)
- {
- error (0, 0, gettext ("%d: garbage at end of line"), yylineno);
- warned = true;
- }
- }
-}
-
-
-static int
-attrib_convert (int c)
-{
- if (c == 'X')
- return PF_X;
- if (c == 'W')
- return PF_W;
- assert (c == 'R');
- return PF_R;
-}
-
-
-static void
-push_state (enum prepstate state)
-{
- if (prepdepth >= MAX_PREPDEPTH)
- error (EXIT_FAILURE, 0, gettext ("%d: conditionals nested too deep"),
- yylineno);
-
- prepstate[prepdepth++] = state;
-}
-
-
-static int
-pop_state (void)
-{
- if (prepdepth == 0)
- error (0, 0, gettext ("%d: unexpected #endif"), yylineno);
- else
- --prepdepth;
-
- return prepdepth == 0 ? INITIAL : IGNORE;
-}
-
-
-static int
-handle_ifdef (void)
-{
- char idbuf[50];
- char *id = idbuf;
- size_t idlen = 0;
- size_t idmax = sizeof (idbuf);
- bool ignore_ws = true;
- bool defined = false;
- int result;
-
- while (1)
- {
- int c = input ();
-
- if (isspace (c) && ignore_ws)
- continue;
-
- if (c != '_' && (c < 'a' || c > 'z') && (c < 'A' || c > 'Z')
- && (idlen == 0 || c < '0' || c > '9'))
- {
- unput (c);
- break;
- }
-
- if (idlen == idmax)
- {
- char *newp = (char *) alloca (idmax *= 2);
- id = memcpy (newp, id, idlen);
- }
-
- id[idlen++] = c;
- ignore_ws = false;
- }
-
- /* XXX Compare in a better way. */
- if (idlen == 6 && strncmp (id, "SHARED", 6) == 0)
- defined = ld_state.file_type == dso_file_type;
-
- if (defined)
- result = INITIAL;
- else
- {
- push_state (skip_if);
- result = IGNORE;
- }
-
- return result;
-}
-
-
-static void
-invalid_char (int ch)
-{
- error (0, 0, (isascii (ch)
- ? gettext ("invalid character '%c' at line %d; ignored")
- : gettext ("invalid character '\\%o' at line %d; ignored")),
- ch, yylineno);
-}
-
-
-// Local Variables:
-// mode: C
-// End:
diff --git a/src/ldlex.l b/src/ldlex.l
deleted file mode 100644
index 06ea6237..00000000
--- a/src/ldlex.l
+++ /dev/null
@@ -1,343 +0,0 @@
-%{
-/* Copyright (C) 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <ctype.h>
-#include <elf.h>
-#include <error.h>
-#include <inttypes.h>
-#include <libintl.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <system.h>
-#include <ld.h>
-#include "ldscript.h"
-
-/* We sure use no threads to read the stream, so use the _unlocked
- variants of the functions. */
-#undef getc
-#define getc(s) getc_unlocked (s)
-#undef ferror
-#define ferror(s) ferror_unlocked (s)
-#undef fread
-#define fread(b, m, n, s) fread_unlocked (b, m, n, s)
-#undef fwrite
-#define fwrite(b, m, n, s) fwrite_unlocked (b, m, n, s)
-
-/* Defined in ld.c. */
-extern int ld_scan_version_script;
-
-#define MAX_PREPDEPTH 20
-static enum prepstate
-{
- prep_normal,
- skip_if,
- skip_to_endif
-} prepstate[MAX_PREPDEPTH];
-static int prepdepth;
-
-static void eat_comment (void);
-static void eat_to_eol (bool empty);
-static int attrib_convert (int c);
-static void push_state (enum prepstate);
-static int pop_state (void);
-static int handle_ifdef (void);
-static void invalid_char (int ch);
-%}
-
-ID [a-zA-Z0-9_.*?]+
-FILENAMECHAR1 [a-zA-Z0-9_/.\\~]
-FILENAMECHAR [^][{}[:space:]():;]+
-HEX 0[xX][0-9a-fA-F]+[kKmM]?
-OCT 0[0-7]*[kKmM]?
-DEC [0-9]+[kKmM]?
-WHITE [[:space:]]+
-
-%option yylineno
-%option never-interactive
-%option noyywrap
-
-%x IGNORE
-
-%%
- if (unlikely (ld_scan_version_script))
- {
- ld_scan_version_script = -1;
- return kVERSION_SCRIPT;
- }
-
-^"#"ifdef/[[:space:]] { BEGIN (handle_ifdef ()); }
-^"#"else/[[:space:]\n] { eat_to_eol (true);
- push_state (skip_to_endif);
- BEGIN (IGNORE); }
-^"#"elifdef/[[:space:]] { eat_to_eol (false);
- push_state (skip_to_endif);
- BEGIN (IGNORE); }
-^"#"endif/[[:space:]\n] { eat_to_eol (true) ; }
-
-<IGNORE>^"#"ifdef/[[:space:]\n] { eat_to_eol (false);
- push_state (skip_to_endif); }
-<IGNORE>^"#"else/[[:space:]\n] { eat_to_eol (true);
- assert (prepdepth > 0);
- if (prepstate[prepdepth - 1] == skip_if)
- {
- /* Back to normal processing. */
- assert (prepdepth == 1);
- BEGIN (pop_state ());
- }
- }
-<IGNORE>^"#"elifdef/[[:space:]] { assert (prepdepth > 0);
- if (prepstate[prepdepth - 1] == skip_if)
- {
- /* Maybe this symbol is defined. */
- pop_state ();
- BEGIN (handle_ifdef ());
- }
- }
-<IGNORE>^"#"endif/[[:space:]\n] { eat_to_eol (true);
- BEGIN (pop_state ()); }
-<IGNORE>.|\n { /* nothing */ }
-
-
-"/*" { eat_comment (); }
-
-ALIGN { return kALIGN; }
-ENTRY { return kENTRY; }
-EXCLUDE_FILE { return kEXCLUDE_FILE; }
-"global:" { return kGLOBAL; }
-GROUP { return kGROUP; }
-INPUT { return kINPUT; }
-INTERP { return kINTERP; }
-KEEP { return kKEEP; }
-"local:" { return kLOCAL; }
-OUTPUT_FORMAT { return kOUTPUT_FORMAT; }
-PAGESIZE { return kPAGESIZE; }
-PROVIDE { return kPROVIDE; }
-SEARCH_DIR { return kSEARCH_DIR; }
-SEGMENT { return kSEGMENT; }
-SIZEOF_HEADERS { return kSIZEOF_HEADERS; }
-SORT { return kSORT; }
-VERSION { return kVERSION; }
-
-"["([RWX]){0,3}"]" { int cnt = 1 ;
- ldlval.num = 0;
- while (cnt < yyleng - 1)
- ldlval.num |= attrib_convert (yytext[cnt++]);
- return kMODE; }
-
-"{" { return '{'; }
-"}" { return '}'; }
-"(" { return '('; }
-")" { return ')'; }
-":" { return ':'; }
-";" { return ';'; }
-"=" { return '='; }
-"+" { ldlval.op = exp_plus; return kADD_OP; }
-"-" { ldlval.op = exp_minus; return kADD_OP; }
-"*" { return '*'; }
-"/" { ldlval.op = exp_div; return kMUL_OP; }
-"%" { ldlval.op = exp_mod; return kMUL_OP; }
-"&" { return '&'; }
-"|" { return '|'; }
-
-"," { return ','; }
-
-{HEX}|{OCT}|{DEC} { char *endp;
- ldlval.num = strtoumax (yytext, &endp, 0);
- if (*endp != '\0')
- {
- if (tolower (*endp) == 'k')
- ldlval.num *= 1024;
- else
- {
- assert (tolower (*endp) == 'm');
- ldlval.num *= 1024 * 1024;
- }
- }
- return kNUM; }
-
-{ID} { ldlval.str = obstack_strndup (&ld_state.smem,
- yytext, yyleng);
- return kID; }
-
-{FILENAMECHAR1}{FILENAMECHAR} { ldlval.str = obstack_strndup (&ld_state.smem,
- yytext, yyleng);
- return kFILENAME; }
-
-{WHITE} { /* IGNORE */ }
-
-. { invalid_char (*yytext); }
-
-%%
-
-static void
-eat_comment (void)
-{
- while (1)
- {
- int c = input ();
-
- while (c != '*' && c != EOF)
- c = input ();
-
- if (c == '*')
- {
- c = input ();
- while (c == '*')
- c = input ();
- if (c == '/')
- break;
- }
-
- if (c == EOF)
- {
- /* XXX Use the setjmp buffer and signal EOF in comment */
- error (0, 0, gettext ("EOF in comment"));
- break;
- }
- }
-}
-
-
-static void
-eat_to_eol (bool empty)
-{
- bool warned = false;
-
- while (1)
- {
- int c = input ();
-
- if (c == EOF)
- break;
- if (c == '\n')
- {
- ++yylineno;
- break;
- }
-
- if (empty && ! isspace (c) && ! warned)
- {
- error (0, 0, gettext ("%d: garbage at end of line"), yylineno);
- warned = true;
- }
- }
-}
-
-
-static int
-attrib_convert (int c)
-{
- if (c == 'X')
- return PF_X;
- if (c == 'W')
- return PF_W;
- assert (c == 'R');
- return PF_R;
-}
-
-
-static void
-push_state (enum prepstate state)
-{
- if (prepdepth >= MAX_PREPDEPTH)
- error (EXIT_FAILURE, 0, gettext ("%d: conditionals nested too deep"),
- yylineno);
-
- prepstate[prepdepth++] = state;
-}
-
-
-static int
-pop_state (void)
-{
- if (prepdepth == 0)
- error (0, 0, gettext ("%d: unexpected #endif"), yylineno);
- else
- --prepdepth;
-
- return prepdepth == 0 ? INITIAL : IGNORE;
-}
-
-
-static int
-handle_ifdef (void)
-{
- char idbuf[50];
- char *id = idbuf;
- size_t idlen = 0;
- size_t idmax = sizeof (idbuf);
- bool ignore_ws = true;
- bool defined = false;
- int result;
-
- while (1)
- {
- int c = input ();
-
- if (isspace (c) && ignore_ws)
- continue;
-
- if (c != '_' && (c < 'a' || c > 'z') && (c < 'A' || c > 'Z')
- && (idlen == 0 || c < '0' || c > '9'))
- {
- unput (c);
- break;
- }
-
- if (idlen == idmax)
- {
- char *newp = (char *) alloca (idmax *= 2);
- id = memcpy (newp, id, idlen);
- }
-
- id[idlen++] = c;
- ignore_ws = false;
- }
-
- /* XXX Compare in a better way. */
- if (idlen == 6 && strncmp (id, "SHARED", 6) == 0)
- defined = ld_state.file_type == dso_file_type;
-
- if (defined)
- result = INITIAL;
- else
- {
- push_state (skip_if);
- result = IGNORE;
- }
-
- return result;
-}
-
-
-static void
-invalid_char (int ch)
-{
- error (0, 0, (isascii (ch)
- ? gettext ("invalid character '%c' at line %d; ignored")
- : gettext ("invalid character '\\%o' at line %d; ignored")),
- ch, yylineno);
-}
-
-
-// Local Variables:
-// mode: C
-// End:
diff --git a/src/ldscript.c b/src/ldscript.c
deleted file mode 100644
index 0f70ca95..00000000
--- a/src/ldscript.c
+++ /dev/null
@@ -1,2220 +0,0 @@
-/* A Bison parser, made by GNU Bison 1.875c. */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-/* As a special exception, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 of Bison. */
-
-/* Written by Richard Stallman by simplifying the original so called
- ``semantic'' parser. */
-
-/* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
- variables, as they might otherwise be expanded by user macros.
- There are some unavoidable exceptions within include files to
- define necessary library symbols; they are noted "INFRINGES ON
- USER NAME SPACE" below. */
-
-/* Identify Bison output. */
-#define YYBISON 1
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 0
-
-/* Using locations. */
-#define YYLSP_NEEDED 0
-
-/* If NAME_PREFIX is specified substitute the variables and functions
- names. */
-#define yyparse ldparse
-#define yylex ldlex
-#define yyerror lderror
-#define yylval ldlval
-#define yychar ldchar
-#define yydebug lddebug
-#define yynerrs ldnerrs
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- kADD_OP = 258,
- kALIGN = 259,
- kENTRY = 260,
- kEXCLUDE_FILE = 261,
- kFILENAME = 262,
- kGLOBAL = 263,
- kGROUP = 264,
- kID = 265,
- kINPUT = 266,
- kINTERP = 267,
- kKEEP = 268,
- kLOCAL = 269,
- kMODE = 270,
- kMUL_OP = 271,
- kNUM = 272,
- kOUTPUT_FORMAT = 273,
- kPAGESIZE = 274,
- kPROVIDE = 275,
- kSEARCH_DIR = 276,
- kSEGMENT = 277,
- kSIZEOF_HEADERS = 278,
- kSORT = 279,
- kVERSION = 280,
- kVERSION_SCRIPT = 281,
- ADD_OP = 282,
- MUL_OP = 283
- };
-#endif
-#define kADD_OP 258
-#define kALIGN 259
-#define kENTRY 260
-#define kEXCLUDE_FILE 261
-#define kFILENAME 262
-#define kGLOBAL 263
-#define kGROUP 264
-#define kID 265
-#define kINPUT 266
-#define kINTERP 267
-#define kKEEP 268
-#define kLOCAL 269
-#define kMODE 270
-#define kMUL_OP 271
-#define kNUM 272
-#define kOUTPUT_FORMAT 273
-#define kPAGESIZE 274
-#define kPROVIDE 275
-#define kSEARCH_DIR 276
-#define kSEGMENT 277
-#define kSIZEOF_HEADERS 278
-#define kSORT 279
-#define kVERSION 280
-#define kVERSION_SCRIPT 281
-#define ADD_OP 282
-#define MUL_OP 283
-
-
-
-
-/* Copy the first part of user declarations. */
-#line 1 "/home/drepper/gnu/elfutils/src/ldscript.y"
-
-/* Parser for linker scripts.
- Copyright (C) 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <error.h>
-#include <libintl.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <system.h>
-#include <ld.h>
-
-/* The error handler. */
-static void yyerror (const char *s);
-
-/* Some helper functions we need to construct the data structures
- describing information from the file. */
-static struct expression *new_expr (int tag);
-static struct input_section_name *new_input_section_name (const char *name,
- bool sort_flag);
-static struct input_rule *new_input_rule (int tag);
-static struct output_rule *new_output_rule (int tag);
-static struct assignment *new_assignment (const char *variable,
- struct expression *expression,
- bool provide_flag);
-static void new_segment (int mode, struct output_rule *output_rule);
-static struct filename_list *new_filename_listelem (const char *string);
-static void add_inputfiles (struct filename_list *fnames);
-static struct id_list *new_id_listelem (const char *str);
-static struct version *new_version (struct id_list *local,
- struct id_list *global);
-static struct version *merge_versions (struct version *one,
- struct version *two);
-static void add_versions (struct version *versions);
-
-extern int yylex (void);
-
-
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 58 "/home/drepper/gnu/elfutils/src/ldscript.y"
-typedef union YYSTYPE {
- uintmax_t num;
- enum expression_tag op;
- char *str;
- struct expression *expr;
- struct input_section_name *sectionname;
- struct filemask_section_name *filemask_section_name;
- struct input_rule *input_rule;
- struct output_rule *output_rule;
- struct assignment *assignment;
- struct filename_list *filename_list;
- struct version *version;
- struct id_list *id_list;
-} YYSTYPE;
-/* Line 191 of yacc.c. */
-#line 213 "ldscript.c"
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-
-
-/* Copy the second part of user declarations. */
-
-
-/* Line 214 of yacc.c. */
-#line 225 "ldscript.c"
-
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
-
-# ifndef YYFREE
-# define YYFREE free
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# endif
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# define YYSTACK_ALLOC alloca
-# endif
-# else
-# if defined (alloca) || defined (_ALLOCA_H)
-# define YYSTACK_ALLOC alloca
-# else
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# endif
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# endif
-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-
-
-#if (! defined (yyoverflow) \
- && (! defined (__cplusplus) \
- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member. */
-union yyalloc
-{
- short yyss;
- YYSTYPE yyvs;
- };
-
-/* The size of the maximum gap between one aligned stack and the next. */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
- N elements. */
-# define YYSTACK_BYTES(N) \
- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined (__GNUC__) && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- register YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (0)
-# endif
-# endif
-
-/* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
-# define YYSTACK_RELOCATE(Stack) \
- do \
- { \
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack, Stack, yysize); \
- Stack = &yyptr->Stack; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
- while (0)
-
-#endif
-
-#if defined (__STDC__) || defined (__cplusplus)
- typedef signed char yysigned_char;
-#else
- typedef short yysigned_char;
-#endif
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 30
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 198
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 39
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 22
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 62
-/* YYNRULES -- Number of states. */
-#define YYNSTATES 146
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 283
-
-#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
-static const unsigned char yytranslate[] =
-{
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 28, 2,
- 32, 33, 30, 2, 38, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 34,
- 2, 37, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 35, 27, 36, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 29, 31
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
-static const unsigned char yyprhs[] =
-{
- 0, 0, 3, 5, 8, 11, 13, 19, 25, 31,
- 37, 43, 49, 54, 59, 64, 69, 72, 74, 77,
- 82, 85, 89, 96, 99, 101, 103, 108, 111, 117,
- 119, 124, 129, 130, 135, 139, 143, 147, 151, 155,
- 159, 161, 163, 165, 167, 171, 173, 175, 176, 179,
- 181, 186, 192, 199, 202, 204, 207, 210, 214, 217,
- 219, 221, 223
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yysigned_char yyrhs[] =
-{
- 40, 0, -1, 41, -1, 26, 54, -1, 41, 42,
- -1, 42, -1, 5, 32, 10, 33, 34, -1, 21,
- 32, 59, 33, 34, -1, 19, 32, 17, 33, 34,
- -1, 12, 32, 59, 33, 34, -1, 22, 15, 35,
- 43, 36, -1, 22, 1, 35, 43, 36, -1, 9,
- 32, 52, 33, -1, 11, 32, 52, 33, -1, 25,
- 35, 54, 36, -1, 18, 32, 59, 33, -1, 43,
- 44, -1, 44, -1, 45, 34, -1, 10, 35, 46,
- 36, -1, 10, 34, -1, 10, 37, 51, -1, 20,
- 32, 10, 37, 51, 33, -1, 46, 47, -1, 47,
- -1, 48, -1, 13, 32, 48, 33, -1, 45, 34,
- -1, 60, 32, 50, 49, 33, -1, 10, -1, 24,
- 32, 10, 33, -1, 6, 32, 59, 33, -1, -1,
- 4, 32, 51, 33, -1, 32, 51, 33, -1, 51,
- 30, 51, -1, 51, 16, 51, -1, 51, 3, 51,
- -1, 51, 28, 51, -1, 51, 27, 51, -1, 17,
- -1, 10, -1, 23, -1, 19, -1, 52, 53, 59,
- -1, 59, -1, 38, -1, -1, 54, 55, -1, 55,
- -1, 35, 56, 36, 34, -1, 59, 35, 56, 36,
- 34, -1, 59, 35, 56, 36, 59, 34, -1, 56,
- 57, -1, 57, -1, 8, 58, -1, 14, 58, -1,
- 58, 60, 34, -1, 60, 34, -1, 7, -1, 10,
- -1, 59, -1, 30, -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const unsigned short yyrline[] =
-{
- 0, 128, 128, 129, 133, 134, 137, 142, 146, 151,
- 156, 160, 166, 177, 179, 181, 185, 190, 194, 199,
- 211, 235, 237, 241, 246, 250, 255, 262, 269, 280,
- 282, 286, 289, 292, 297, 299, 305, 311, 317, 323,
- 329, 334, 339, 341, 345, 351, 355, 356, 359, 364,
- 368, 374, 380, 389, 391, 395, 397, 402, 408, 412,
- 414, 418, 420
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE
-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-static const char *const yytname[] =
-{
- "$end", "error", "$undefined", "kADD_OP", "kALIGN", "kENTRY",
- "kEXCLUDE_FILE", "kFILENAME", "kGLOBAL", "kGROUP", "kID", "kINPUT",
- "kINTERP", "kKEEP", "kLOCAL", "kMODE", "kMUL_OP", "kNUM",
- "kOUTPUT_FORMAT", "kPAGESIZE", "kPROVIDE", "kSEARCH_DIR", "kSEGMENT",
- "kSIZEOF_HEADERS", "kSORT", "kVERSION", "kVERSION_SCRIPT", "'|'", "'&'",
- "ADD_OP", "'*'", "MUL_OP", "'('", "')'", "';'", "'{'", "'}'", "'='",
- "','", "$accept", "script_or_version", "file", "content",
- "outputsections", "outputsection", "assignment", "inputsections",
- "inputsection", "sectionname", "sort_opt_name", "exclude_opt", "expr",
- "filename_id_list", "comma_opt", "versionlist", "version",
- "version_stmt_list", "version_stmt", "filename_id_star_list",
- "filename_id", "filename_id_star", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
-static const unsigned short yytoknum[] =
-{
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 124, 38, 282,
- 42, 283, 40, 41, 59, 123, 125, 61, 44
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const unsigned char yyr1[] =
-{
- 0, 39, 40, 40, 41, 41, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 43, 43, 44, 44,
- 44, 45, 45, 46, 46, 47, 47, 47, 48, 49,
- 49, 50, 50, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 52, 52, 53, 53, 54, 54,
- 55, 55, 55, 56, 56, 57, 57, 58, 58, 59,
- 59, 60, 60
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const unsigned char yyr2[] =
-{
- 0, 2, 1, 2, 2, 1, 5, 5, 5, 5,
- 5, 5, 4, 4, 4, 4, 2, 1, 2, 4,
- 2, 3, 6, 2, 1, 1, 4, 2, 5, 1,
- 4, 4, 0, 4, 3, 3, 3, 3, 3, 3,
- 1, 1, 1, 1, 3, 1, 1, 0, 2, 1,
- 4, 5, 6, 2, 1, 2, 2, 3, 2, 1,
- 1, 1, 1
-};
-
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
-static const unsigned char yydefact[] =
-{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 59, 60, 0, 3, 49, 0,
- 1, 4, 0, 47, 45, 47, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 54, 48, 0, 0,
- 12, 46, 0, 13, 0, 15, 0, 0, 0, 0,
- 0, 17, 0, 0, 14, 62, 55, 61, 0, 56,
- 0, 53, 0, 6, 44, 9, 8, 7, 20, 0,
- 0, 0, 11, 16, 18, 10, 0, 58, 50, 0,
- 60, 0, 0, 0, 24, 25, 0, 0, 41, 40,
- 43, 42, 0, 21, 0, 57, 51, 0, 0, 27,
- 19, 23, 32, 0, 0, 0, 0, 0, 0, 0,
- 0, 52, 0, 0, 0, 0, 34, 37, 36, 39,
- 38, 35, 0, 26, 0, 29, 0, 0, 33, 22,
- 0, 0, 28, 31, 0, 30
-};
-
-/* YYDEFGOTO[NTERM-NUM]. */
-static const short yydefgoto[] =
-{
- -1, 11, 12, 13, 60, 61, 62, 93, 94, 95,
- 137, 124, 103, 33, 52, 27, 28, 45, 46, 66,
- 67, 96
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-#define YYPACT_NINF -41
-static const short yypact[] =
-{
- 107, -28, -20, -13, 34, 77, 85, 88, 91, 33,
- 38, 123, 125, -41, 117, 52, 52, 52, 52, 114,
- 52, 100, 103, 38, -41, -41, 96, 38, -41, 110,
- -41, -41, 115, 64, -41, 67, 116, 118, 120, 127,
- 1, 1, 28, 84, 84, 36, -41, -41, 96, 128,
- -41, -41, 52, -41, 129, -41, 130, 131, 105, 134,
- 75, -41, 133, 79, -41, -41, 84, -41, 135, 84,
- 136, -41, 41, -41, -41, -41, -41, -41, -41, 83,
- 48, 151, -41, -41, -41, -41, 137, -41, -41, 44,
- 138, 140, 139, 17, -41, -41, 142, 144, -41, -41,
- -41, -41, 48, 54, 141, -41, -41, 143, 84, -41,
- -41, -41, 162, 48, -2, 48, 48, 48, 48, 48,
- 48, -41, 146, 148, 97, 6, -41, 54, 54, 58,
- 53, -1, 13, -41, 52, -41, 149, 150, -41, -41,
- 152, 172, -41, -41, 153, -41
-};
-
-/* YYPGOTO[NTERM-NUM]. */
-static const short yypgoto[] =
-{
- -41, -41, -41, 175, 147, -40, 29, -41, 98, 76,
- -41, -41, 39, 173, -41, 167, -24, 145, 15, 154,
- -10, 32
-};
-
-/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule which
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -1
-static const unsigned char yytable[] =
-{
- 29, 115, 115, 47, 14, 34, 34, 36, 37, 115,
- 39, 58, 15, 29, 116, 116, 115, 29, 47, 16,
- 83, 59, 116, 83, 24, 117, 118, 90, 119, 116,
- 91, 126, 29, 117, 118, 24, 119, 59, 25, 138,
- 117, 118, 74, 119, 43, 24, 139, 65, 25, 43,
- 44, 24, 97, 110, 25, 44, 115, 115, 98, 24,
- 71, 115, 25, 26, 64, 99, 17, 100, 23, 116,
- 116, 101, 70, 26, 116, 68, 68, 89, 106, 107,
- 102, 117, 118, 119, 119, 58, 118, 71, 119, 58,
- 24, 24, 21, 90, 25, 59, 91, 50, 86, 59,
- 53, 86, 51, 59, 43, 51, 22, 135, 92, 18,
- 44, 82, 1, 65, 65, 85, 2, 19, 3, 4,
- 20, 136, 92, 30, 140, 5, 6, 32, 7, 8,
- 1, 38, 9, 10, 2, 40, 3, 4, 41, 78,
- 79, 114, 80, 5, 6, 48, 7, 8, 49, 54,
- 9, 55, 125, 56, 127, 128, 129, 130, 131, 132,
- 57, 104, 73, 75, 76, 77, 81, 84, 123, 87,
- 88, 105, 108, 109, 112, 80, 113, 121, 120, 133,
- 134, 141, 144, 142, 122, 143, 145, 31, 63, 35,
- 42, 111, 0, 72, 0, 0, 0, 0, 69
-};
-
-static const short yycheck[] =
-{
- 10, 3, 3, 27, 32, 15, 16, 17, 18, 3,
- 20, 10, 32, 23, 16, 16, 3, 27, 42, 32,
- 60, 20, 16, 63, 7, 27, 28, 10, 30, 16,
- 13, 33, 42, 27, 28, 7, 30, 20, 10, 33,
- 27, 28, 52, 30, 8, 7, 33, 30, 10, 8,
- 14, 7, 4, 36, 10, 14, 3, 3, 10, 7,
- 45, 3, 10, 35, 36, 17, 32, 19, 35, 16,
- 16, 23, 36, 35, 16, 43, 44, 36, 34, 89,
- 32, 27, 28, 30, 30, 10, 28, 72, 30, 10,
- 7, 7, 1, 10, 10, 20, 13, 33, 66, 20,
- 33, 69, 38, 20, 8, 38, 15, 10, 79, 32,
- 14, 36, 5, 30, 30, 36, 9, 32, 11, 12,
- 32, 24, 93, 0, 134, 18, 19, 10, 21, 22,
- 5, 17, 25, 26, 9, 35, 11, 12, 35, 34,
- 35, 102, 37, 18, 19, 35, 21, 22, 33, 33,
- 25, 33, 113, 33, 115, 116, 117, 118, 119, 120,
- 33, 10, 34, 34, 34, 34, 32, 34, 6, 34,
- 34, 34, 32, 34, 32, 37, 32, 34, 37, 33,
- 32, 32, 10, 33, 108, 33, 33, 12, 41, 16,
- 23, 93, -1, 48, -1, -1, -1, -1, 44
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const unsigned char yystos[] =
-{
- 0, 5, 9, 11, 12, 18, 19, 21, 22, 25,
- 26, 40, 41, 42, 32, 32, 32, 32, 32, 32,
- 32, 1, 15, 35, 7, 10, 35, 54, 55, 59,
- 0, 42, 10, 52, 59, 52, 59, 59, 17, 59,
- 35, 35, 54, 8, 14, 56, 57, 55, 35, 33,
- 33, 38, 53, 33, 33, 33, 33, 33, 10, 20,
- 43, 44, 45, 43, 36, 30, 58, 59, 60, 58,
- 36, 57, 56, 34, 59, 34, 34, 34, 34, 35,
- 37, 32, 36, 44, 34, 36, 60, 34, 34, 36,
- 10, 13, 45, 46, 47, 48, 60, 4, 10, 17,
- 19, 23, 32, 51, 10, 34, 34, 59, 32, 34,
- 36, 47, 32, 32, 51, 3, 16, 27, 28, 30,
- 37, 34, 48, 6, 50, 51, 33, 51, 51, 51,
- 51, 51, 51, 33, 32, 10, 24, 49, 33, 33,
- 59, 32, 33, 33, 10, 33
-};
-
-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-# define YYSIZE_T __SIZE_TYPE__
-#endif
-#if ! defined (YYSIZE_T) && defined (size_t)
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# endif
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
-
-#define yyerrok (yyerrstatus = 0)
-#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY (-2)
-#define YYEOF 0
-
-#define YYACCEPT goto yyacceptlab
-#define YYABORT goto yyabortlab
-#define YYERROR goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror. This remains here temporarily
- to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. */
-
-#define YYFAIL goto yyerrlab
-
-#define YYRECOVERING() (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value) \
-do \
- if (yychar == YYEMPTY && yylen == 1) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
- YYPOPSTACK; \
- goto yybackup; \
- } \
- else \
- { \
- yyerror ("syntax error: cannot back up");\
- YYERROR; \
- } \
-while (0)
-
-#define YYTERROR 1
-#define YYERRCODE 256
-
-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
- are run). */
-
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- ((Current).first_line = (Rhs)[1].first_line, \
- (Current).first_column = (Rhs)[1].first_column, \
- (Current).last_line = (Rhs)[N].last_line, \
- (Current).last_column = (Rhs)[N].last_column)
-#endif
-
-/* YYLEX -- calling `yylex' with the right arguments. */
-
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
-#else
-# define YYLEX yylex ()
-#endif
-
-/* Enable debugging if requested. */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-# define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args) \
-do { \
- if (yydebug) \
- YYFPRINTF Args; \
-} while (0)
-
-# define YYDSYMPRINT(Args) \
-do { \
- if (yydebug) \
- yysymprint Args; \
-} while (0)
-
-# define YYDSYMPRINTF(Title, Token, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yysymprint (stderr, \
- Token, Value); \
- YYFPRINTF (stderr, "\n"); \
- } \
-} while (0)
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included). |
-`------------------------------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yy_stack_print (short *bottom, short *top)
-#else
-static void
-yy_stack_print (bottom, top)
- short *bottom;
- short *top;
-#endif
-{
- YYFPRINTF (stderr, "Stack now");
- for (/* Nothing. */; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
- YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top) \
-do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
-} while (0)
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced. |
-`------------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yy_reduce_print (int yyrule)
-#else
-static void
-yy_reduce_print (yyrule)
- int yyrule;
-#endif
-{
- int yyi;
- unsigned int yylno = yyrline[yyrule];
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
- yyrule - 1, yylno);
- /* Print the symbols being reduced, and their result. */
- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
-}
-
-# define YY_REDUCE_PRINT(Rule) \
-do { \
- if (yydebug) \
- yy_reduce_print (Rule); \
-} while (0)
-
-/* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YYDSYMPRINT(Args)
-# define YYDSYMPRINTF(Title, Token, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks. */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
-# undef YYMAXDEPTH
-#endif
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-# if defined (__GLIBC__) && defined (_STRING_H)
-# define yystrlen strlen
-# else
-/* Return the length of YYSTR. */
-static YYSIZE_T
-# if defined (__STDC__) || defined (__cplusplus)
-yystrlen (const char *yystr)
-# else
-yystrlen (yystr)
- const char *yystr;
-# endif
-{
- register const char *yys = yystr;
-
- while (*yys++ != '\0')
- continue;
-
- return yys - yystr - 1;
-}
-# endif
-# endif
-
-# ifndef yystpcpy
-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-# define yystpcpy stpcpy
-# else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-static char *
-# if defined (__STDC__) || defined (__cplusplus)
-yystpcpy (char *yydest, const char *yysrc)
-# else
-yystpcpy (yydest, yysrc)
- char *yydest;
- const char *yysrc;
-# endif
-{
- register char *yyd = yydest;
- register const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
-}
-# endif
-# endif
-
-#endif /* !YYERROR_VERBOSE */
-
-
-
-#if YYDEBUG
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yysymprint (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
-{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
-
- if (yytype < YYNTOKENS)
- {
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-# ifdef YYPRINT
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
- }
- else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
- switch (yytype)
- {
- default:
- break;
- }
- YYFPRINTF (yyoutput, ")");
-}
-
-#endif /* ! YYDEBUG */
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yydestruct (int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yytype, yyvaluep)
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
-{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
-
- switch (yytype)
- {
-
- default:
- break;
- }
-}
-
-
-/* Prevent warnings from -Wmissing-prototypes. */
-
-#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *YYPARSE_PARAM);
-# else
-int yyparse ();
-# endif
-#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-
-
-/* The lookahead symbol. */
-int yychar;
-
-/* The semantic value of the lookahead symbol. */
-YYSTYPE yylval;
-
-/* Number of syntax errors so far. */
-int yynerrs;
-
-
-
-/*----------.
-| yyparse. |
-`----------*/
-
-#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *YYPARSE_PARAM)
-# else
-int yyparse (YYPARSE_PARAM)
- void *YYPARSE_PARAM;
-# endif
-#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
-int
-yyparse (void)
-#else
-int
-yyparse ()
-
-#endif
-#endif
-{
-
- register int yystate;
- register int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Lookahead token as an internal (translated) token number. */
- int yytoken = 0;
-
- /* Three stacks and their tools:
- `yyss': related to states,
- `yyvs': related to semantic values,
- `yyls': related to locations.
-
- Refer to the stacks thru separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
-
- /* The state stack. */
- short yyssa[YYINITDEPTH];
- short *yyss = yyssa;
- register short *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- register YYSTYPE *yyvsp;
-
-
-
-#define YYPOPSTACK (yyvsp--, yyssp--)
-
- YYSIZE_T yystacksize = YYINITDEPTH;
-
- /* The variables used to return semantic value and location from the
- action routines. */
- YYSTYPE yyval;
-
-
- /* When reducing, the number of symbols on the RHS of the reduced
- rule. */
- int yylen;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
- yystate = 0;
- yyerrstatus = 0;
- yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- so that they stay on the same level as the state stack.
- The wasted elements are never initialized. */
-
- yyssp = yyss;
- yyvsp = yyvs;
-
- goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate. |
-`------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
- have just been pushed. so pushing a state here evens the stacks.
- */
- yyssp++;
-
- yysetstate:
- *yyssp = yystate;
-
- if (yyss + yystacksize - 1 <= yyssp)
- {
- /* Get the current used size of the three stacks, in elements. */
- YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
- {
- /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
- short *yyss1 = yyss;
-
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
- yyoverflow ("parser stack overflow",
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
- &yystacksize);
-
- yyss = yyss1;
- yyvs = yyvs1;
- }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
- goto yyoverflowlab;
-# else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
- goto yyoverflowlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
- short *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyoverflowlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
-# undef YYSTACK_RELOCATE
- if (yyss1 != yyssa)
- YYSTACK_FREE (yyss1);
- }
-# endif
-#endif /* no yyoverflow */
-
- yyssp = yyss + yysize - 1;
- yyvsp = yyvs + yysize - 1;
-
-
- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
- (unsigned long int) yystacksize));
-
- if (yyss + yystacksize - 1 <= yyssp)
- YYABORT;
- }
-
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
- goto yybackup;
-
-/*-----------.
-| yybackup. |
-`-----------*/
-yybackup:
-
-/* Do appropriate processing given the current state. */
-/* Read a lookahead token if we need one and don't already have one. */
-/* yyresume: */
-
- /* First try to decide what to do without reference to lookahead token. */
-
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
- /* Not known => get a lookahead token if don't already have one. */
-
- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
- yychar = YYLEX;
- }
-
- if (yychar <= YYEOF)
- {
- yychar = yytoken = YYEOF;
- YYDPRINTF ((stderr, "Now at end of input.\n"));
- }
- else
- {
- yytoken = YYTRANSLATE (yychar);
- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
- detect an error, take that action. */
- yyn += yytoken;
- if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
- goto yydefault;
- yyn = yytable[yyn];
- if (yyn <= 0)
- {
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
- yyn = -yyn;
- goto yyreduce;
- }
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- /* Shift the lookahead token. */
- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
-
- /* Discard the token being shifted unless it is eof. */
- if (yychar != YYEOF)
- yychar = YYEMPTY;
-
- *++yyvsp = yylval;
-
-
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
- yystate = yyn;
- goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state. |
-`-----------------------------------------------------------*/
-yydefault:
- yyn = yydefact[yystate];
- if (yyn == 0)
- goto yyerrlab;
- goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction. |
-`-----------------------------*/
-yyreduce:
- /* yyn is the number of a rule to reduce with. */
- yylen = yyr2[yyn];
-
- /* If YYLEN is nonzero, implement the default value of the action:
- `$$ = $1'.
-
- Otherwise, the following line sets YYVAL to garbage.
- This behavior is undocumented and Bison
- users should not rely upon it. Assigning to YYVAL
- unconditionally makes the parser a bit smaller, and it avoids a
- GCC warning that YYVAL may be used uninitialized. */
- yyval = yyvsp[1-yylen];
-
-
- YY_REDUCE_PRINT (yyn);
- switch (yyn)
- {
- case 3:
-#line 130 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { add_versions (yyvsp[0].version); }
- break;
-
- case 6:
-#line 138 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- if (likely (ld_state.entry == NULL))
- ld_state.entry = yyvsp[-2].str;
- }
- break;
-
- case 7:
-#line 143 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- ld_new_searchdir (yyvsp[-2].str);
- }
- break;
-
- case 8:
-#line 147 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- if (likely (ld_state.pagesize == 0))
- ld_state.pagesize = yyvsp[-2].num;
- }
- break;
-
- case 9:
-#line 152 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- if (likely (ld_state.interp == NULL))
- ld_state.interp = yyvsp[-2].str;
- }
- break;
-
- case 10:
-#line 157 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- new_segment (yyvsp[-3].num, yyvsp[-1].output_rule);
- }
- break;
-
- case 11:
-#line 161 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- fputs_unlocked (gettext ("mode for segment invalid\n"),
- stderr);
- new_segment (0, yyvsp[-1].output_rule);
- }
- break;
-
- case 12:
-#line 167 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- /* First little optimization. If there is only one
- file in the group don't do anything. */
- if (yyvsp[-1].filename_list != yyvsp[-1].filename_list->next)
- {
- yyvsp[-1].filename_list->next->group_start = 1;
- yyvsp[-1].filename_list->group_end = 1;
- }
- add_inputfiles (yyvsp[-1].filename_list);
- }
- break;
-
- case 13:
-#line 178 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { add_inputfiles (yyvsp[-1].filename_list); }
- break;
-
- case 14:
-#line 180 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { add_versions (yyvsp[-1].version); }
- break;
-
- case 15:
-#line 182 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { /* XXX TODO */ }
- break;
-
- case 16:
-#line 186 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyvsp[0].output_rule->next = yyvsp[-1].output_rule->next;
- yyval.output_rule = yyvsp[-1].output_rule->next = yyvsp[0].output_rule;
- }
- break;
-
- case 17:
-#line 191 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.output_rule = yyvsp[0].output_rule; }
- break;
-
- case 18:
-#line 195 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyval.output_rule = new_output_rule (output_assignment);
- yyval.output_rule->val.assignment = yyvsp[-1].assignment;
- }
- break;
-
- case 19:
-#line 200 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyval.output_rule = new_output_rule (output_section);
- yyval.output_rule->val.section.name = yyvsp[-3].str;
- yyval.output_rule->val.section.input = yyvsp[-1].input_rule->next;
- if (ld_state.strip == strip_debug
- && ebl_debugscn_p (ld_state.ebl, yyvsp[-3].str))
- yyval.output_rule->val.section.ignored = true;
- else
- yyval.output_rule->val.section.ignored = false;
- yyvsp[-1].input_rule->next = NULL;
- }
- break;
-
- case 20:
-#line 212 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- /* This is a short cut for "ID { *(ID) }". */
- yyval.output_rule = new_output_rule (output_section);
- yyval.output_rule->val.section.name = yyvsp[-1].str;
- yyval.output_rule->val.section.input = new_input_rule (input_section);
- yyval.output_rule->val.section.input->next = NULL;
- yyval.output_rule->val.section.input->val.section =
- (struct filemask_section_name *)
- obstack_alloc (&ld_state.smem,
- sizeof (struct filemask_section_name));
- yyval.output_rule->val.section.input->val.section->filemask = NULL;
- yyval.output_rule->val.section.input->val.section->excludemask = NULL;
- yyval.output_rule->val.section.input->val.section->section_name =
- new_input_section_name (yyvsp[-1].str, false);
- yyval.output_rule->val.section.input->val.section->keep_flag = false;
- if (ld_state.strip == strip_debug
- && ebl_debugscn_p (ld_state.ebl, yyvsp[-1].str))
- yyval.output_rule->val.section.ignored = true;
- else
- yyval.output_rule->val.section.ignored = false;
- }
- break;
-
- case 21:
-#line 236 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.assignment = new_assignment (yyvsp[-2].str, yyvsp[0].expr, false); }
- break;
-
- case 22:
-#line 238 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.assignment = new_assignment (yyvsp[-3].str, yyvsp[-1].expr, true); }
- break;
-
- case 23:
-#line 242 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyvsp[0].input_rule->next = yyvsp[-1].input_rule->next;
- yyval.input_rule = yyvsp[-1].input_rule->next = yyvsp[0].input_rule;
- }
- break;
-
- case 24:
-#line 247 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.input_rule = yyvsp[0].input_rule; }
- break;
-
- case 25:
-#line 251 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyval.input_rule = new_input_rule (input_section);
- yyval.input_rule->val.section = yyvsp[0].filemask_section_name;
- }
- break;
-
- case 26:
-#line 256 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyvsp[-1].filemask_section_name->keep_flag = true;
-
- yyval.input_rule = new_input_rule (input_section);
- yyval.input_rule->val.section = yyvsp[-1].filemask_section_name;
- }
- break;
-
- case 27:
-#line 263 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyval.input_rule = new_input_rule (input_assignment);
- yyval.input_rule->val.assignment = yyvsp[-1].assignment;
- }
- break;
-
- case 28:
-#line 270 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyval.filemask_section_name = (struct filemask_section_name *)
- obstack_alloc (&ld_state.smem, sizeof (*yyval.filemask_section_name));
- yyval.filemask_section_name->filemask = yyvsp[-4].str;
- yyval.filemask_section_name->excludemask = yyvsp[-2].str;
- yyval.filemask_section_name->section_name = yyvsp[-1].sectionname;
- yyval.filemask_section_name->keep_flag = false;
- }
- break;
-
- case 29:
-#line 281 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.sectionname = new_input_section_name (yyvsp[0].str, false); }
- break;
-
- case 30:
-#line 283 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.sectionname = new_input_section_name (yyvsp[-1].str, true); }
- break;
-
- case 31:
-#line 287 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.str = yyvsp[-1].str; }
- break;
-
- case 32:
-#line 289 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.str = NULL; }
- break;
-
- case 33:
-#line 293 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyval.expr = new_expr (exp_align);
- yyval.expr->val.child = yyvsp[-1].expr;
- }
- break;
-
- case 34:
-#line 298 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.expr = yyvsp[-1].expr; }
- break;
-
- case 35:
-#line 300 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyval.expr = new_expr (exp_mult);
- yyval.expr->val.binary.left = yyvsp[-2].expr;
- yyval.expr->val.binary.right = yyvsp[0].expr;
- }
- break;
-
- case 36:
-#line 306 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyval.expr = new_expr (yyvsp[-1].op);
- yyval.expr->val.binary.left = yyvsp[-2].expr;
- yyval.expr->val.binary.right = yyvsp[0].expr;
- }
- break;
-
- case 37:
-#line 312 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyval.expr = new_expr (yyvsp[-1].op);
- yyval.expr->val.binary.left = yyvsp[-2].expr;
- yyval.expr->val.binary.right = yyvsp[0].expr;
- }
- break;
-
- case 38:
-#line 318 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyval.expr = new_expr (exp_and);
- yyval.expr->val.binary.left = yyvsp[-2].expr;
- yyval.expr->val.binary.right = yyvsp[0].expr;
- }
- break;
-
- case 39:
-#line 324 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyval.expr = new_expr (exp_or);
- yyval.expr->val.binary.left = yyvsp[-2].expr;
- yyval.expr->val.binary.right = yyvsp[0].expr;
- }
- break;
-
- case 40:
-#line 330 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyval.expr = new_expr (exp_num);
- yyval.expr->val.num = yyvsp[0].num;
- }
- break;
-
- case 41:
-#line 335 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyval.expr = new_expr (exp_id);
- yyval.expr->val.str = yyvsp[0].str;
- }
- break;
-
- case 42:
-#line 340 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.expr = new_expr (exp_sizeof_headers); }
- break;
-
- case 43:
-#line 342 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.expr = new_expr (exp_pagesize); }
- break;
-
- case 44:
-#line 346 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- struct filename_list *newp = new_filename_listelem (yyvsp[0].str);
- newp->next = yyvsp[-2].filename_list->next;
- yyval.filename_list = yyvsp[-2].filename_list->next = newp;
- }
- break;
-
- case 45:
-#line 352 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.filename_list = new_filename_listelem (yyvsp[0].str); }
- break;
-
- case 48:
-#line 360 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyvsp[0].version->next = yyvsp[-1].version->next;
- yyval.version = yyvsp[-1].version->next = yyvsp[0].version;
- }
- break;
-
- case 49:
-#line 365 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.version = yyvsp[0].version; }
- break;
-
- case 50:
-#line 369 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyvsp[-2].version->versionname = "";
- yyvsp[-2].version->parentname = NULL;
- yyval.version = yyvsp[-2].version;
- }
- break;
-
- case 51:
-#line 375 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyvsp[-2].version->versionname = yyvsp[-4].str;
- yyvsp[-2].version->parentname = NULL;
- yyval.version = yyvsp[-2].version;
- }
- break;
-
- case 52:
-#line 381 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- yyvsp[-3].version->versionname = yyvsp[-5].str;
- yyvsp[-3].version->parentname = yyvsp[-1].str;
- yyval.version = yyvsp[-3].version;
- }
- break;
-
- case 53:
-#line 390 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.version = merge_versions (yyvsp[-1].version, yyvsp[0].version); }
- break;
-
- case 54:
-#line 392 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.version = yyvsp[0].version; }
- break;
-
- case 55:
-#line 396 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.version = new_version (NULL, yyvsp[0].id_list); }
- break;
-
- case 56:
-#line 398 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.version = new_version (yyvsp[0].id_list, NULL); }
- break;
-
- case 57:
-#line 403 "/home/drepper/gnu/elfutils/src/ldscript.y"
- {
- struct id_list *newp = new_id_listelem (yyvsp[-1].str);
- newp->next = yyvsp[-2].id_list->next;
- yyval.id_list = yyvsp[-2].id_list->next = newp;
- }
- break;
-
- case 58:
-#line 409 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.id_list = new_id_listelem (yyvsp[-1].str); }
- break;
-
- case 59:
-#line 413 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.str = yyvsp[0].str; }
- break;
-
- case 60:
-#line 415 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.str = yyvsp[0].str; }
- break;
-
- case 61:
-#line 419 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.str = yyvsp[0].str; }
- break;
-
- case 62:
-#line 421 "/home/drepper/gnu/elfutils/src/ldscript.y"
- { yyval.str = NULL; }
- break;
-
-
- }
-
-/* Line 1000 of yacc.c. */
-#line 1654 "ldscript.c"
-
- yyvsp -= yylen;
- yyssp -= yylen;
-
-
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-
-
- /* Now `shift' the result of the reduction. Determine what state
- that goes to, based on the state we popped back to and the rule
- number reduced by. */
-
- yyn = yyr1[yyn];
-
- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
- yystate = yytable[yystate];
- else
- yystate = yydefgoto[yyn - YYNTOKENS];
-
- goto yynewstate;
-
-
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
-yyerrlab:
- /* If not already recovering from an error, report this error. */
- if (!yyerrstatus)
- {
- ++yynerrs;
-#if YYERROR_VERBOSE
- yyn = yypact[yystate];
-
- if (YYPACT_NINF < yyn && yyn < YYLAST)
- {
- YYSIZE_T yysize = 0;
- int yytype = YYTRANSLATE (yychar);
- const char* yyprefix;
- char *yymsg;
- int yyx;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 0;
-
- yyprefix = ", expecting ";
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
- yycount += 1;
- if (yycount == 5)
- {
- yysize = 0;
- break;
- }
- }
- yysize += (sizeof ("syntax error, unexpected ")
- + yystrlen (yytname[yytype]));
- yymsg = (char *) YYSTACK_ALLOC (yysize);
- if (yymsg != 0)
- {
- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
- yyp = yystpcpy (yyp, yytname[yytype]);
-
- if (yycount < 5)
- {
- yyprefix = ", expecting ";
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- yyp = yystpcpy (yyp, yyprefix);
- yyp = yystpcpy (yyp, yytname[yyx]);
- yyprefix = " or ";
- }
- }
- yyerror (yymsg);
- YYSTACK_FREE (yymsg);
- }
- else
- yyerror ("syntax error; also virtual memory exhausted");
- }
- else
-#endif /* YYERROR_VERBOSE */
- yyerror ("syntax error");
- }
-
-
-
- if (yyerrstatus == 3)
- {
- /* If just tried and failed to reuse lookahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
- {
- /* If at end of input, pop the error token,
- then the rest of the stack, then return failure. */
- if (yychar == YYEOF)
- for (;;)
- {
- YYPOPSTACK;
- if (yyssp == yyss)
- YYABORT;
- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
- yydestruct (yystos[*yyssp], yyvsp);
- }
- }
- else
- {
- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
- yydestruct (yytoken, &yylval);
- yychar = YYEMPTY;
-
- }
- }
-
- /* Else will try to reuse lookahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR. |
-`---------------------------------------------------*/
-yyerrorlab:
-
-#ifdef __GNUC__
- /* Pacify GCC when the user code never invokes YYERROR and the label
- yyerrorlab therefore never appears in user code. */
- if (0)
- goto yyerrorlab;
-#endif
-
- yyvsp -= yylen;
- yyssp -= yylen;
- yystate = *yyssp;
- goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR. |
-`-------------------------------------------------------------*/
-yyerrlab1:
- yyerrstatus = 3; /* Each real token shifted decrements this. */
-
- for (;;)
- {
- yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
- {
- yyn += YYTERROR;
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
- {
- yyn = yytable[yyn];
- if (0 < yyn)
- break;
- }
- }
-
- /* Pop the current state because it cannot handle the error token. */
- if (yyssp == yyss)
- YYABORT;
-
- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
- yydestruct (yystos[yystate], yyvsp);
- YYPOPSTACK;
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- YYDPRINTF ((stderr, "Shifting error token, "));
-
- *++yyvsp = yylval;
-
-
- yystate = yyn;
- goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here. |
-`-------------------------------------*/
-yyacceptlab:
- yyresult = 0;
- goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here. |
-`-----------------------------------*/
-yyabortlab:
- yyresult = 1;
- goto yyreturn;
-
-#ifndef yyoverflow
-/*----------------------------------------------.
-| yyoverflowlab -- parser overflow comes here. |
-`----------------------------------------------*/
-yyoverflowlab:
- yyerror ("parser stack overflow");
- yyresult = 2;
- /* Fall through. */
-#endif
-
-yyreturn:
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
-#endif
- return yyresult;
-}
-
-
-#line 424 "/home/drepper/gnu/elfutils/src/ldscript.y"
-
-
-static void
-yyerror (const char *s)
-{
- error (0, 0, (ld_scan_version_script
- ? gettext ("while reading version script '%s': %s at line %d")
- : gettext ("while reading linker script '%s': %s at line %d")),
- ldin_fname, gettext (s), ldlineno);
-}
-
-
-static struct expression *
-new_expr (int tag)
-{
- struct expression *newp = (struct expression *)
- obstack_alloc (&ld_state.smem, sizeof (*newp));
-
- newp->tag = tag;
- return newp;
-}
-
-
-static struct input_section_name *
-new_input_section_name (const char *name, bool sort_flag)
-{
- struct input_section_name *newp = (struct input_section_name *)
- obstack_alloc (&ld_state.smem, sizeof (*newp));
-
- newp->name = name;
- newp->sort_flag = sort_flag;
- return newp;
-}
-
-
-static struct input_rule *
-new_input_rule (int tag)
-{
- struct input_rule *newp = (struct input_rule *)
- obstack_alloc (&ld_state.smem, sizeof (*newp));
-
- newp->tag = tag;
- newp->next = newp;
- return newp;
-}
-
-
-static struct output_rule *
-new_output_rule (int tag)
-{
- struct output_rule *newp = (struct output_rule *)
- memset (obstack_alloc (&ld_state.smem, sizeof (*newp)),
- '\0', sizeof (*newp));
-
- newp->tag = tag;
- newp->next = newp;
- return newp;
-}
-
-
-static struct assignment *
-new_assignment (const char *variable, struct expression *expression,
- bool provide_flag)
-{
- struct assignment *newp = (struct assignment *)
- obstack_alloc (&ld_state.smem, sizeof (*newp));
-
- newp->variable = variable;
- newp->expression = expression;
- newp->sym = NULL;
- newp->provide_flag = provide_flag;
-
- /* Insert the symbol into a hash table. We will later have to matc*/
- return newp;
-}
-
-
-static void
-new_segment (int mode, struct output_rule *output_rule)
-{
- struct output_segment *newp;
-
- newp
- = (struct output_segment *) obstack_alloc (&ld_state.smem, sizeof (*newp));
- newp->mode = mode;
- newp->next = newp;
-
- newp->output_rules = output_rule->next;
- output_rule->next = NULL;
-
- /* Enqueue the output segment description. */
- if (ld_state.output_segments == NULL)
- ld_state.output_segments = newp;
- else
- {
- newp->next = ld_state.output_segments->next;
- ld_state.output_segments = ld_state.output_segments->next = newp;
- }
-
- /* If the output file should be stripped of all symbol set the flag
- in the structures of all output sections. */
- if (mode == 0 && ld_state.strip == strip_all)
- {
- struct output_rule *runp;
-
- for (runp = newp->output_rules; runp != NULL; runp = runp->next)
- if (runp->tag == output_section)
- runp->val.section.ignored = true;
- }
-}
-
-
-static struct filename_list *
-new_filename_listelem (const char *string)
-{
- struct filename_list *newp;
-
- /* We use calloc and not the obstack since this object can be freed soon. */
- newp = (struct filename_list *) xcalloc (1, sizeof (*newp));
- newp->name = string;
- newp->next = newp;
- return newp;
-}
-
-
-static void
-add_inputfiles (struct filename_list *fnames)
-{
- assert (fnames != NULL);
-
- if (ld_state.srcfiles == NULL)
- ld_state.srcfiles = fnames;
- else
- {
- struct filename_list *first = ld_state.srcfiles->next;
-
- ld_state.srcfiles->next = fnames->next;
- fnames->next = first;
- ld_state.srcfiles->next = fnames;
- }
-}
-
-
-static _Bool
-special_char_p (const char *str)
-{
- while (*str != '\0')
- {
- if (__builtin_expect (*str == '*', 0)
- || __builtin_expect (*str == '?', 0)
- || __builtin_expect (*str == '[', 0))
- return true;
-
- ++str;
- }
-
- return false;
-}
-
-
-static struct id_list *
-new_id_listelem (const char *str)
-{
- struct id_list *newp;
-
- newp = (struct id_list *) obstack_alloc (&ld_state.smem, sizeof (*newp));
- if (str == NULL)
- newp->u.id_type = id_all;
- else if (__builtin_expect (special_char_p (str), false))
- newp->u.id_type = id_wild;
- else
- newp->u.id_type = id_str;
- newp->id = str;
- newp->next = newp;
-
- return newp;
-}
-
-
-static struct version *
-new_version (struct id_list *local, struct id_list *global)
-{
- struct version *newp;
-
- newp = (struct version *) obstack_alloc (&ld_state.smem, sizeof (*newp));
- newp->next = newp;
- newp->local_names = local;
- newp->global_names = global;
- newp->versionname = NULL;
- newp->parentname = NULL;
-
- return newp;
-}
-
-
-static struct version *
-merge_versions (struct version *one, struct version *two)
-{
- assert (two->local_names == NULL || two->global_names == NULL);
-
- if (two->local_names != NULL)
- {
- if (one->local_names == NULL)
- one->local_names = two->local_names;
- else
- {
- two->local_names->next = one->local_names->next;
- one->local_names = one->local_names->next = two->local_names;
- }
- }
- else
- {
- if (one->global_names == NULL)
- one->global_names = two->global_names;
- else
- {
- two->global_names->next = one->global_names->next;
- one->global_names = one->global_names->next = two->global_names;
- }
- }
-
- return one;
-}
-
-
-static void
-add_id_list (const char *versionname, struct id_list *runp, _Bool local)
-{
- struct id_list *lastp = runp;
-
- if (runp == NULL)
- /* Nothing to do. */
- return;
-
- /* Convert into a simple single-linked list. */
- runp = runp->next;
- assert (runp != NULL);
- lastp->next = NULL;
-
- do
- if (runp->u.id_type == id_str)
- {
- struct id_list *curp;
- struct id_list *defp;
- unsigned long int hval = elf_hash (runp->id);
-
- curp = runp;
- runp = runp->next;
-
- defp = ld_version_str_tab_find (&ld_state.version_str_tab, hval, curp);
- if (defp != NULL)
- {
- /* There is already a version definition for this symbol. */
- while (strcmp (defp->u.s.versionname, versionname) != 0)
- {
- if (defp->next == NULL)
- {
- /* No version like this so far. */
- defp->next = curp;
- curp->u.s.local = local;
- curp->u.s.versionname = versionname;
- curp->next = NULL;
- defp = NULL;
- break;
- }
-
- defp = defp->next;
- }
-
- if (defp != NULL && defp->u.s.local != local)
- error (EXIT_FAILURE, 0, versionname[0] == '\0'
- ? gettext ("\
-symbol '%s' in declared both local and global for unnamed version")
- : gettext ("\
-symbol '%s' in declared both local and global for version '%s'"),
- runp->id, versionname);
- }
- else
- {
- /* This is the first version definition for this symbol. */
- ld_version_str_tab_insert (&ld_state.version_str_tab, hval, curp);
-
- curp->u.s.local = local;
- curp->u.s.versionname = versionname;
- curp->next = NULL;
- }
- }
- else if (runp->u.id_type == id_all)
- {
- if (local)
- {
- if (ld_state.default_bind_global)
- error (EXIT_FAILURE, 0,
- gettext ("default visibility set as local and global"));
- ld_state.default_bind_local = true;
- }
- else
- {
- if (ld_state.default_bind_local)
- error (EXIT_FAILURE, 0,
- gettext ("default visibility set as local and global"));
- ld_state.default_bind_global = true;
- }
-
- runp = runp->next;
- }
- else
- {
- assert (runp->u.id_type == id_wild);
- /* XXX TBI */
- abort ();
- }
- while (runp != NULL);
-}
-
-
-static void
-add_versions (struct version *versions)
-{
- struct version *lastp = versions;
-
- if (versions == NULL)
- return;
-
- /* Convert into a simple single-linked list. */
- versions = versions->next;
- assert (versions != NULL);
- lastp->next = NULL;
-
- do
- {
- struct version *oldp;
-
- add_id_list (versions->versionname, versions->local_names, true);
- add_id_list (versions->versionname, versions->global_names, false);
-
- oldp = versions;
- versions = versions->next;
- }
- while (versions != NULL);
-}
-
diff --git a/src/ldscript.h b/src/ldscript.h
deleted file mode 100644
index 6464d8da..00000000
--- a/src/ldscript.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* A Bison parser, made by GNU Bison 1.875c. */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-/* As a special exception, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 of Bison. */
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- kADD_OP = 258,
- kALIGN = 259,
- kENTRY = 260,
- kEXCLUDE_FILE = 261,
- kFILENAME = 262,
- kGLOBAL = 263,
- kGROUP = 264,
- kID = 265,
- kINPUT = 266,
- kINTERP = 267,
- kKEEP = 268,
- kLOCAL = 269,
- kMODE = 270,
- kMUL_OP = 271,
- kNUM = 272,
- kOUTPUT_FORMAT = 273,
- kPAGESIZE = 274,
- kPROVIDE = 275,
- kSEARCH_DIR = 276,
- kSEGMENT = 277,
- kSIZEOF_HEADERS = 278,
- kSORT = 279,
- kVERSION = 280,
- kVERSION_SCRIPT = 281,
- ADD_OP = 282,
- MUL_OP = 283
- };
-#endif
-#define kADD_OP 258
-#define kALIGN 259
-#define kENTRY 260
-#define kEXCLUDE_FILE 261
-#define kFILENAME 262
-#define kGLOBAL 263
-#define kGROUP 264
-#define kID 265
-#define kINPUT 266
-#define kINTERP 267
-#define kKEEP 268
-#define kLOCAL 269
-#define kMODE 270
-#define kMUL_OP 271
-#define kNUM 272
-#define kOUTPUT_FORMAT 273
-#define kPAGESIZE 274
-#define kPROVIDE 275
-#define kSEARCH_DIR 276
-#define kSEGMENT 277
-#define kSIZEOF_HEADERS 278
-#define kSORT 279
-#define kVERSION 280
-#define kVERSION_SCRIPT 281
-#define ADD_OP 282
-#define MUL_OP 283
-
-
-
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 58 "/home/drepper/gnu/elfutils/src/ldscript.y"
-typedef union YYSTYPE {
- uintmax_t num;
- enum expression_tag op;
- char *str;
- struct expression *expr;
- struct input_section_name *sectionname;
- struct filemask_section_name *filemask_section_name;
- struct input_rule *input_rule;
- struct output_rule *output_rule;
- struct assignment *assignment;
- struct filename_list *filename_list;
- struct version *version;
- struct id_list *id_list;
-} YYSTYPE;
-/* Line 1275 of yacc.c. */
-#line 108 "ldscript.h"
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-extern YYSTYPE ldlval;
-
-
-
diff --git a/src/ldscript.y b/src/ldscript.y
deleted file mode 100644
index 8f68078d..00000000
--- a/src/ldscript.y
+++ /dev/null
@@ -1,764 +0,0 @@
-%{
-/* Parser for linker scripts.
- Copyright (C) 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <assert.h>
-#include <error.h>
-#include <libintl.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <system.h>
-#include <ld.h>
-
-/* The error handler. */
-static void yyerror (const char *s);
-
-/* Some helper functions we need to construct the data structures
- describing information from the file. */
-static struct expression *new_expr (int tag);
-static struct input_section_name *new_input_section_name (const char *name,
- bool sort_flag);
-static struct input_rule *new_input_rule (int tag);
-static struct output_rule *new_output_rule (int tag);
-static struct assignment *new_assignment (const char *variable,
- struct expression *expression,
- bool provide_flag);
-static void new_segment (int mode, struct output_rule *output_rule);
-static struct filename_list *new_filename_listelem (const char *string);
-static void add_inputfiles (struct filename_list *fnames);
-static struct id_list *new_id_listelem (const char *str);
-static struct version *new_version (struct id_list *local,
- struct id_list *global);
-static struct version *merge_versions (struct version *one,
- struct version *two);
-static void add_versions (struct version *versions);
-
-extern int yylex (void);
-%}
-
-%union {
- uintmax_t num;
- enum expression_tag op;
- char *str;
- struct expression *expr;
- struct input_section_name *sectionname;
- struct filemask_section_name *filemask_section_name;
- struct input_rule *input_rule;
- struct output_rule *output_rule;
- struct assignment *assignment;
- struct filename_list *filename_list;
- struct version *version;
- struct id_list *id_list;
-}
-
-%token kADD_OP
-%token kALIGN
-%token kENTRY
-%token kEXCLUDE_FILE
-%token <str> kFILENAME
-%token kGLOBAL
-%token kGROUP
-%token <str> kID
-%token kINPUT
-%token kINTERP
-%token kKEEP
-%token kLOCAL
-%token <num> kMODE
-%token kMUL_OP
-%token <num> kNUM
-%token kOUTPUT_FORMAT
-%token kPAGESIZE
-%token kPROVIDE
-%token kSEARCH_DIR
-%token kSEGMENT
-%token kSIZEOF_HEADERS
-%token kSORT
-%token kVERSION
-%token kVERSION_SCRIPT
-
-%left '|'
-%left '&'
-%left ADD_OP
-%left MUL_OP '*'
-
-%type <op> kADD_OP
-%type <op> kMUL_OP
-%type <str> filename_id
-%type <str> filename_id_star
-%type <str> exclude_opt
-%type <expr> expr
-%type <sectionname> sort_opt_name
-%type <filemask_section_name> sectionname
-%type <input_rule> inputsection
-%type <input_rule> inputsections
-%type <output_rule> outputsection
-%type <output_rule> outputsections
-%type <assignment> assignment
-%type <filename_list> filename_id_list
-%type <version> versionlist
-%type <version> version
-%type <version> version_stmt_list
-%type <version> version_stmt
-%type <id_list> filename_id_star_list
-
-%expect 16
-
-%%
-
-script_or_version:
- file
- | kVERSION_SCRIPT versionlist
- { add_versions ($2); }
- ;
-
-file: file content
- | content
- ;
-
-content: kENTRY '(' kID ')' ';'
- {
- if (likely (ld_state.entry == NULL))
- ld_state.entry = $3;
- }
- | kSEARCH_DIR '(' filename_id ')' ';'
- {
- ld_new_searchdir ($3);
- }
- | kPAGESIZE '(' kNUM ')' ';'
- {
- if (likely (ld_state.pagesize == 0))
- ld_state.pagesize = $3;
- }
- | kINTERP '(' filename_id ')' ';'
- {
- if (likely (ld_state.interp == NULL))
- ld_state.interp = $3;
- }
- | kSEGMENT kMODE '{' outputsections '}'
- {
- new_segment ($2, $4);
- }
- | kSEGMENT error '{' outputsections '}'
- {
- fputs_unlocked (gettext ("mode for segment invalid\n"),
- stderr);
- new_segment (0, $4);
- }
- | kGROUP '(' filename_id_list ')'
- {
- /* First little optimization. If there is only one
- file in the group don't do anything. */
- if ($3 != $3->next)
- {
- $3->next->group_start = 1;
- $3->group_end = 1;
- }
- add_inputfiles ($3);
- }
- | kINPUT '(' filename_id_list ')'
- { add_inputfiles ($3); }
- | kVERSION '{' versionlist '}'
- { add_versions ($3); }
- | kOUTPUT_FORMAT '(' filename_id ')'
- { /* XXX TODO */ }
- ;
-
-outputsections: outputsections outputsection
- {
- $2->next = $1->next;
- $$ = $1->next = $2;
- }
- | outputsection
- { $$ = $1; }
- ;
-
-outputsection: assignment ';'
- {
- $$ = new_output_rule (output_assignment);
- $$->val.assignment = $1;
- }
- | kID '{' inputsections '}'
- {
- $$ = new_output_rule (output_section);
- $$->val.section.name = $1;
- $$->val.section.input = $3->next;
- if (ld_state.strip == strip_debug
- && ebl_debugscn_p (ld_state.ebl, $1))
- $$->val.section.ignored = true;
- else
- $$->val.section.ignored = false;
- $3->next = NULL;
- }
- | kID ';'
- {
- /* This is a short cut for "ID { *(ID) }". */
- $$ = new_output_rule (output_section);
- $$->val.section.name = $1;
- $$->val.section.input = new_input_rule (input_section);
- $$->val.section.input->next = NULL;
- $$->val.section.input->val.section =
- (struct filemask_section_name *)
- obstack_alloc (&ld_state.smem,
- sizeof (struct filemask_section_name));
- $$->val.section.input->val.section->filemask = NULL;
- $$->val.section.input->val.section->excludemask = NULL;
- $$->val.section.input->val.section->section_name =
- new_input_section_name ($1, false);
- $$->val.section.input->val.section->keep_flag = false;
- if (ld_state.strip == strip_debug
- && ebl_debugscn_p (ld_state.ebl, $1))
- $$->val.section.ignored = true;
- else
- $$->val.section.ignored = false;
- }
- ;
-
-assignment: kID '=' expr
- { $$ = new_assignment ($1, $3, false); }
- | kPROVIDE '(' kID '=' expr ')'
- { $$ = new_assignment ($3, $5, true); }
- ;
-
-inputsections: inputsections inputsection
- {
- $2->next = $1->next;
- $$ = $1->next = $2;
- }
- | inputsection
- { $$ = $1; }
- ;
-
-inputsection: sectionname
- {
- $$ = new_input_rule (input_section);
- $$->val.section = $1;
- }
- | kKEEP '(' sectionname ')'
- {
- $3->keep_flag = true;
-
- $$ = new_input_rule (input_section);
- $$->val.section = $3;
- }
- | assignment ';'
- {
- $$ = new_input_rule (input_assignment);
- $$->val.assignment = $1;
- }
- ;
-
-sectionname: filename_id_star '(' exclude_opt sort_opt_name ')'
- {
- $$ = (struct filemask_section_name *)
- obstack_alloc (&ld_state.smem, sizeof (*$$));
- $$->filemask = $1;
- $$->excludemask = $3;
- $$->section_name = $4;
- $$->keep_flag = false;
- }
- ;
-
-sort_opt_name: kID
- { $$ = new_input_section_name ($1, false); }
- | kSORT '(' kID ')'
- { $$ = new_input_section_name ($3, true); }
- ;
-
-exclude_opt: kEXCLUDE_FILE '(' filename_id ')'
- { $$ = $3; }
- |
- { $$ = NULL; }
- ;
-
-expr: kALIGN '(' expr ')'
- {
- $$ = new_expr (exp_align);
- $$->val.child = $3;
- }
- | '(' expr ')'
- { $$ = $2; }
- | expr '*' expr
- {
- $$ = new_expr (exp_mult);
- $$->val.binary.left = $1;
- $$->val.binary.right = $3;
- }
- | expr kMUL_OP expr
- {
- $$ = new_expr ($2);
- $$->val.binary.left = $1;
- $$->val.binary.right = $3;
- }
- | expr kADD_OP expr
- {
- $$ = new_expr ($2);
- $$->val.binary.left = $1;
- $$->val.binary.right = $3;
- }
- | expr '&' expr
- {
- $$ = new_expr (exp_and);
- $$->val.binary.left = $1;
- $$->val.binary.right = $3;
- }
- | expr '|' expr
- {
- $$ = new_expr (exp_or);
- $$->val.binary.left = $1;
- $$->val.binary.right = $3;
- }
- | kNUM
- {
- $$ = new_expr (exp_num);
- $$->val.num = $1;
- }
- | kID
- {
- $$ = new_expr (exp_id);
- $$->val.str = $1;
- }
- | kSIZEOF_HEADERS
- { $$ = new_expr (exp_sizeof_headers); }
- | kPAGESIZE
- { $$ = new_expr (exp_pagesize); }
- ;
-
-filename_id_list: filename_id_list comma_opt filename_id
- {
- struct filename_list *newp = new_filename_listelem ($3);
- newp->next = $1->next;
- $$ = $1->next = newp;
- }
- | filename_id
- { $$ = new_filename_listelem ($1); }
- ;
-
-comma_opt: ','
- |
- ;
-
-versionlist: versionlist version
- {
- $2->next = $1->next;
- $$ = $1->next = $2;
- }
- | version
- { $$ = $1; }
- ;
-
-version: '{' version_stmt_list '}' ';'
- {
- $2->versionname = "";
- $2->parentname = NULL;
- $$ = $2;
- }
- | filename_id '{' version_stmt_list '}' ';'
- {
- $3->versionname = $1;
- $3->parentname = NULL;
- $$ = $3;
- }
- | filename_id '{' version_stmt_list '}' filename_id ';'
- {
- $3->versionname = $1;
- $3->parentname = $5;
- $$ = $3;
- }
- ;
-
-version_stmt_list:
- version_stmt_list version_stmt
- { $$ = merge_versions ($1, $2); }
- | version_stmt
- { $$ = $1; }
- ;
-
-version_stmt: kGLOBAL filename_id_star_list
- { $$ = new_version (NULL, $2); }
- | kLOCAL filename_id_star_list
- { $$ = new_version ($2, NULL); }
- ;
-
-filename_id_star_list:
- filename_id_star_list filename_id_star ';'
- {
- struct id_list *newp = new_id_listelem ($2);
- newp->next = $1->next;
- $$ = $1->next = newp;
- }
- | filename_id_star ';'
- { $$ = new_id_listelem ($1); }
- ;
-
-filename_id: kFILENAME
- { $$ = $1; }
- | kID
- { $$ = $1; }
- ;
-
-filename_id_star: filename_id
- { $$ = $1; }
- | '*'
- { $$ = NULL; }
- ;
-
-%%
-
-static void
-yyerror (const char *s)
-{
- error (0, 0, (ld_scan_version_script
- ? gettext ("while reading version script '%s': %s at line %d")
- : gettext ("while reading linker script '%s': %s at line %d")),
- ldin_fname, gettext (s), ldlineno);
-}
-
-
-static struct expression *
-new_expr (int tag)
-{
- struct expression *newp = (struct expression *)
- obstack_alloc (&ld_state.smem, sizeof (*newp));
-
- newp->tag = tag;
- return newp;
-}
-
-
-static struct input_section_name *
-new_input_section_name (const char *name, bool sort_flag)
-{
- struct input_section_name *newp = (struct input_section_name *)
- obstack_alloc (&ld_state.smem, sizeof (*newp));
-
- newp->name = name;
- newp->sort_flag = sort_flag;
- return newp;
-}
-
-
-static struct input_rule *
-new_input_rule (int tag)
-{
- struct input_rule *newp = (struct input_rule *)
- obstack_alloc (&ld_state.smem, sizeof (*newp));
-
- newp->tag = tag;
- newp->next = newp;
- return newp;
-}
-
-
-static struct output_rule *
-new_output_rule (int tag)
-{
- struct output_rule *newp = (struct output_rule *)
- memset (obstack_alloc (&ld_state.smem, sizeof (*newp)),
- '\0', sizeof (*newp));
-
- newp->tag = tag;
- newp->next = newp;
- return newp;
-}
-
-
-static struct assignment *
-new_assignment (const char *variable, struct expression *expression,
- bool provide_flag)
-{
- struct assignment *newp = (struct assignment *)
- obstack_alloc (&ld_state.smem, sizeof (*newp));
-
- newp->variable = variable;
- newp->expression = expression;
- newp->sym = NULL;
- newp->provide_flag = provide_flag;
-
- /* Insert the symbol into a hash table. We will later have to matc*/
- return newp;
-}
-
-
-static void
-new_segment (int mode, struct output_rule *output_rule)
-{
- struct output_segment *newp;
-
- newp
- = (struct output_segment *) obstack_alloc (&ld_state.smem, sizeof (*newp));
- newp->mode = mode;
- newp->next = newp;
-
- newp->output_rules = output_rule->next;
- output_rule->next = NULL;
-
- /* Enqueue the output segment description. */
- if (ld_state.output_segments == NULL)
- ld_state.output_segments = newp;
- else
- {
- newp->next = ld_state.output_segments->next;
- ld_state.output_segments = ld_state.output_segments->next = newp;
- }
-
- /* If the output file should be stripped of all symbol set the flag
- in the structures of all output sections. */
- if (mode == 0 && ld_state.strip == strip_all)
- {
- struct output_rule *runp;
-
- for (runp = newp->output_rules; runp != NULL; runp = runp->next)
- if (runp->tag == output_section)
- runp->val.section.ignored = true;
- }
-}
-
-
-static struct filename_list *
-new_filename_listelem (const char *string)
-{
- struct filename_list *newp;
-
- /* We use calloc and not the obstack since this object can be freed soon. */
- newp = (struct filename_list *) xcalloc (1, sizeof (*newp));
- newp->name = string;
- newp->next = newp;
- return newp;
-}
-
-
-static void
-add_inputfiles (struct filename_list *fnames)
-{
- assert (fnames != NULL);
-
- if (ld_state.srcfiles == NULL)
- ld_state.srcfiles = fnames;
- else
- {
- struct filename_list *first = ld_state.srcfiles->next;
-
- ld_state.srcfiles->next = fnames->next;
- fnames->next = first;
- ld_state.srcfiles->next = fnames;
- }
-}
-
-
-static _Bool
-special_char_p (const char *str)
-{
- while (*str != '\0')
- {
- if (__builtin_expect (*str == '*', 0)
- || __builtin_expect (*str == '?', 0)
- || __builtin_expect (*str == '[', 0))
- return true;
-
- ++str;
- }
-
- return false;
-}
-
-
-static struct id_list *
-new_id_listelem (const char *str)
-{
- struct id_list *newp;
-
- newp = (struct id_list *) obstack_alloc (&ld_state.smem, sizeof (*newp));
- if (str == NULL)
- newp->u.id_type = id_all;
- else if (__builtin_expect (special_char_p (str), false))
- newp->u.id_type = id_wild;
- else
- newp->u.id_type = id_str;
- newp->id = str;
- newp->next = newp;
-
- return newp;
-}
-
-
-static struct version *
-new_version (struct id_list *local, struct id_list *global)
-{
- struct version *newp;
-
- newp = (struct version *) obstack_alloc (&ld_state.smem, sizeof (*newp));
- newp->next = newp;
- newp->local_names = local;
- newp->global_names = global;
- newp->versionname = NULL;
- newp->parentname = NULL;
-
- return newp;
-}
-
-
-static struct version *
-merge_versions (struct version *one, struct version *two)
-{
- assert (two->local_names == NULL || two->global_names == NULL);
-
- if (two->local_names != NULL)
- {
- if (one->local_names == NULL)
- one->local_names = two->local_names;
- else
- {
- two->local_names->next = one->local_names->next;
- one->local_names = one->local_names->next = two->local_names;
- }
- }
- else
- {
- if (one->global_names == NULL)
- one->global_names = two->global_names;
- else
- {
- two->global_names->next = one->global_names->next;
- one->global_names = one->global_names->next = two->global_names;
- }
- }
-
- return one;
-}
-
-
-static void
-add_id_list (const char *versionname, struct id_list *runp, _Bool local)
-{
- struct id_list *lastp = runp;
-
- if (runp == NULL)
- /* Nothing to do. */
- return;
-
- /* Convert into a simple single-linked list. */
- runp = runp->next;
- assert (runp != NULL);
- lastp->next = NULL;
-
- do
- if (runp->u.id_type == id_str)
- {
- struct id_list *curp;
- struct id_list *defp;
- unsigned long int hval = elf_hash (runp->id);
-
- curp = runp;
- runp = runp->next;
-
- defp = ld_version_str_tab_find (&ld_state.version_str_tab, hval, curp);
- if (defp != NULL)
- {
- /* There is already a version definition for this symbol. */
- while (strcmp (defp->u.s.versionname, versionname) != 0)
- {
- if (defp->next == NULL)
- {
- /* No version like this so far. */
- defp->next = curp;
- curp->u.s.local = local;
- curp->u.s.versionname = versionname;
- curp->next = NULL;
- defp = NULL;
- break;
- }
-
- defp = defp->next;
- }
-
- if (defp != NULL && defp->u.s.local != local)
- error (EXIT_FAILURE, 0, versionname[0] == '\0'
- ? gettext ("\
-symbol '%s' in declared both local and global for unnamed version")
- : gettext ("\
-symbol '%s' in declared both local and global for version '%s'"),
- runp->id, versionname);
- }
- else
- {
- /* This is the first version definition for this symbol. */
- ld_version_str_tab_insert (&ld_state.version_str_tab, hval, curp);
-
- curp->u.s.local = local;
- curp->u.s.versionname = versionname;
- curp->next = NULL;
- }
- }
- else if (runp->u.id_type == id_all)
- {
- if (local)
- {
- if (ld_state.default_bind_global)
- error (EXIT_FAILURE, 0,
- gettext ("default visibility set as local and global"));
- ld_state.default_bind_local = true;
- }
- else
- {
- if (ld_state.default_bind_local)
- error (EXIT_FAILURE, 0,
- gettext ("default visibility set as local and global"));
- ld_state.default_bind_global = true;
- }
-
- runp = runp->next;
- }
- else
- {
- assert (runp->u.id_type == id_wild);
- /* XXX TBI */
- abort ();
- }
- while (runp != NULL);
-}
-
-
-static void
-add_versions (struct version *versions)
-{
- struct version *lastp = versions;
-
- if (versions == NULL)
- return;
-
- /* Convert into a simple single-linked list. */
- versions = versions->next;
- assert (versions != NULL);
- lastp->next = NULL;
-
- do
- {
- struct version *oldp;
-
- add_id_list (versions->versionname, versions->local_names, true);
- add_id_list (versions->versionname, versions->global_names, false);
-
- oldp = versions;
- versions = versions->next;
- }
- while (versions != NULL);
-}
diff --git a/src/libld_elf_i386.map b/src/libld_elf_i386.map
deleted file mode 100644
index 703af6d8..00000000
--- a/src/libld_elf_i386.map
+++ /dev/null
@@ -1,7 +0,0 @@
-ELFUTILS_1.0 {
- global:
- elf_i386_ld_init;
-
- local:
- *;
-};
diff --git a/src/nm.c b/src/nm.c
deleted file mode 100644
index 1a297054..00000000
--- a/src/nm.c
+++ /dev/null
@@ -1,1302 +0,0 @@
-/* Print information from ELF file in human-readable form.
- Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <ar.h>
-#include <argp.h>
-#include <assert.h>
-#include <ctype.h>
-#include <dwarf.h>
-#include <errno.h>
-#include <error.h>
-#include <fcntl.h>
-#include <gelf.h>
-#include <inttypes.h>
-#include <libdw.h>
-#include <libebl.h>
-#include <libintl.h>
-#include <locale.h>
-#include <mcheck.h>
-#include <obstack.h>
-#include <search.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/param.h>
-
-#include <system.h>
-
-
-/* Name and version of program. */
-static void print_version (FILE *stream, struct argp_state *state);
-void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
-
-
-/* Values for the parameters which have no short form. */
-#define OPT_DEFINED 0x100
-#define OPT_MARK_WEAK 0x101
-
-/* Definitions of arguments for argp functions. */
-static const struct argp_option options[] =
-{
- { NULL, 0, NULL, 0, N_("Output selection:"), 0 },
- { "debug-syms", 'a', NULL, 0, N_("Display debugger-only symbols"), 0 },
- { "defined-only", OPT_DEFINED, NULL, 0, N_("Display only defined symbols"),
- 0 },
- { "dynamic", 'D', NULL, 0,
- N_("Display dynamic symbols instead of normal symbols"), 0 },
- { "extern-only", 'g', NULL, 0, N_("Display only external symbols"), 0 },
- { "undefined-only", 'u', NULL, 0, N_("Display only undefined symbols"), 0 },
- { "print-armap", 's', NULL, 0,
- N_("Include index for symbols from archive members"), 0 },
-
- { NULL, 0, NULL, 0, N_("Output format:"), 0 },
- { "print-file-name", 'A', NULL, 0,
- N_("Print name of the input file before every symbol"), 0 },
- { NULL, 'o', NULL, OPTION_HIDDEN, "Same as -A", 0 },
- { "format", 'f', "FORMAT", 0,
- N_("Use the output format FORMAT. FORMAT can be `bsd', `sysv' or `posix'. The default is `sysv'"),
- 0 },
- { NULL, 'B', NULL, 0, N_("Same as --format=bsd"), 0 },
- { "portability", 'P', NULL, 0, N_("Same as --format=posix"), 0 },
- { "radix", 't', "RADIX", 0, N_("Use RADIX for printing symbol values"), 0 },
- { "mark-weak", OPT_MARK_WEAK, NULL, 0, N_("Mark weak symbols"), 0 },
- { "print-size", 'S', NULL, 0, N_("Print size of defined symbols"), 0 },
-
- { NULL, 0, NULL, 0, N_("Output options:"), 0 },
- { "numeric-sort", 'n', NULL, 0, N_("Sort symbols numerically by address"),
- 0 },
- { "no-sort", 'p', NULL, 0, N_("Do not sort the symbols"), 0 },
- { "reverse-sort", 'r', NULL, 0, N_("Reverse the sense of the sort"), 0 },
- { NULL, 0, NULL, 0, N_("Miscellaneous:"), 0 },
- { NULL, 0, NULL, 0, NULL, 0 }
-};
-
-/* Short description of program. */
-static const char doc[] = N_("List symbols from FILEs (a.out by default).");
-
-/* Strings for arguments in help texts. */
-static const char args_doc[] = N_("[FILE...]");
-
-/* Prototype for option handler. */
-static error_t parse_opt (int key, char *arg, struct argp_state *state);
-
-/* Function to print some extra text in the help message. */
-static char *more_help (int key, const char *text, void *input);
-
-/* Data structure to communicate with argp functions. */
-static struct argp argp =
-{
- options, parse_opt, args_doc, doc, NULL, more_help, NULL
-};
-
-
-/* Print symbols in file named FNAME. */
-static int process_file (const char *fname, bool more_than_one);
-
-/* Handle content of archive. */
-static int handle_ar (int fd, Elf *elf, const char *prefix, const char *fname,
- const char *suffix);
-
-/* Handle ELF file. */
-static int handle_elf (Elf *elf, const char *prefix, const char *fname,
- const char *suffix);
-
-
-#define INTERNAL_ERROR(fname) \
- error (EXIT_FAILURE, 0, gettext ("%s: INTERNAL ERROR %d (%s-%s): %s"), \
- fname, __LINE__, VERSION, __DATE__, elf_errmsg (-1))
-
-
-/* Internal representation of symbols. */
-typedef struct GElf_SymX
-{
- GElf_Sym sym;
- Elf32_Word xndx;
- char *where;
-} GElf_SymX;
-
-
-/* User-selectable options. */
-
-/* The selected output format. */
-static enum
-{
- format_sysv = 0,
- format_bsd,
- format_posix
-} format;
-
-/* Print defined, undefined, or both? */
-static bool hide_undefined;
-static bool hide_defined;
-
-/* Print local symbols also? */
-static bool hide_local;
-
-/* Nonzero if full filename should precede every symbol. */
-static bool print_file_name;
-
-/* If true print size of defined symbols in BSD format. */
-static bool print_size;
-
-/* If true print archive index. */
-static bool print_armap;
-
-/* If true reverse sorting. */
-static bool reverse_sort;
-
-/* Type of the section we are printing. */
-static GElf_Word symsec_type = SHT_SYMTAB;
-
-/* Sorting selection. */
-static enum
-{
- sort_name = 0,
- sort_numeric,
- sort_nosort
-} sort;
-
-/* Radix for printed numbers. */
-static enum
-{
- radix_hex = 0,
- radix_decimal,
- radix_octal
-} radix;
-
-/* If nonzero weak symbols are distinguished from global symbols by adding
- a `*' after the identifying letter for the symbol class and type. */
-static bool mark_weak;
-
-
-int
-main (int argc, char *argv[])
-{
- int remaining;
- int result = 0;
-
- /* Make memory leak detection possible. */
- mtrace ();
-
- /* We use no threads here which can interfere with handling a stream. */
- (void) __fsetlocking (stdin, FSETLOCKING_BYCALLER);
- (void) __fsetlocking (stdout, FSETLOCKING_BYCALLER);
- (void) __fsetlocking (stderr, FSETLOCKING_BYCALLER);
-
- /* Set locale. */
- (void) setlocale (LC_ALL, "");
-
- /* Make sure the message catalog can be found. */
- (void) bindtextdomain (PACKAGE, LOCALEDIR);
-
- /* Initialize the message catalog. */
- (void) textdomain (PACKAGE);
-
- /* Parse and process arguments. */
- (void) argp_parse (&argp, argc, argv, 0, &remaining, NULL);
-
- /* Tell the library which version we are expecting. */
- (void) elf_version (EV_CURRENT);
-
- if (remaining == argc)
- /* The user didn't specify a name so we use a.out. */
- result = process_file ("a.out", false);
- else
- {
- /* Process all the remaining files. */
- const bool more_than_one = remaining + 1 < argc;
-
- do
- result |= process_file (argv[remaining], more_than_one);
- while (++remaining < argc);
- }
-
- return result;
-}
-
-
-/* Print the version information. */
-static void
-print_version (FILE *stream, /*@unused@*/ struct argp_state *state)
-{
- fprintf (stream, "nm (%s) %s\n", PACKAGE_NAME, VERSION);
- fprintf (stream, gettext ("\
-Copyright (C) %s Red Hat, Inc.\n\
-This is free software; see the source for copying conditions. There is NO\n\
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2004");
- fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
-}
-
-
-/* Handle program arguments. */
-static error_t
-parse_opt (int key, char *arg, /*@unused@*/ struct argp_state *state)
-{
- switch (key)
- {
- case 'a':
- /* XXX */
- break;
-
- case 'f':
- if (strcmp (arg, "bsd") == 0)
- format = format_bsd;
- else if (strcmp (arg, "posix") == 0)
- format = format_posix;
- else
- /* Be bug compatible. The BFD implementation also defaulted to
- using the SysV format if nothing else matches. */
- format = format_sysv;
- break;
-
- case 'g':
- hide_local = true;
- break;
-
- case 'n':
- sort = sort_numeric;
- break;
-
- case 'p':
- sort = sort_nosort;
- break;
-
- case 't':
- if (strcmp (arg, "10") == 0 || strcmp (arg, "d") == 0)
- radix = radix_decimal;
- else if (strcmp (arg, "8") == 0 || strcmp (arg, "o") == 0)
- radix = radix_octal;
- else
- radix = radix_hex;
- break;
-
- case 'u':
- hide_undefined = false;
- hide_defined = true;
- break;
-
- case 'A':
- case 'o':
- print_file_name = true;
- break;
-
- case 'B':
- format = format_bsd;
- break;
-
- case 'D':
- symsec_type = SHT_DYNSYM;
- break;
-
- case 'P':
- format = format_posix;
- break;
-
- case OPT_DEFINED:
- hide_undefined = true;
- hide_defined = false;
- break;
-
- case OPT_MARK_WEAK:
- mark_weak = true;
- break;
-
- case 'S':
- print_size = true;
- break;
-
- case 's':
- print_armap = true;
- break;
-
- case 'r':
- reverse_sort = true;
- break;
-
- default:
- return ARGP_ERR_UNKNOWN;
- }
- return 0;
-}
-
-
-static char *
-more_help (int key, const char *text, /*@unused@*/ void *input)
-{
- char *buf;
-
- switch (key)
- {
- case ARGP_KEY_HELP_EXTRA:
- /* We print some extra information. */
- if (asprintf (&buf, gettext ("Please report bugs to %s.\n"),
- PACKAGE_BUGREPORT) < 0)
- buf = NULL;
- return buf;
-
- default:
- break;
- }
- return (char *) text;
-}
-
-
-/* Open the file and determine the type. */
-static int
-process_file (const char *fname, bool more_than_one)
-{
- /* Open the file. */
- int fd = open (fname, O_RDONLY);
- if (fd == -1)
- {
- error (0, errno, fname);
- return 1;
- }
-
- /* Now get the ELF descriptor. */
- Elf *elf = elf_begin (fd, ELF_C_READ_MMAP, NULL);
- if (elf != NULL)
- {
- if (elf_kind (elf) == ELF_K_ELF)
- {
- int result = handle_elf (elf, more_than_one ? "" : NULL,
- fname, NULL);
-
- if (elf_end (elf) != 0)
- INTERNAL_ERROR (fname);
-
- if (close (fd) != 0)
- error (EXIT_FAILURE, errno, gettext ("while close `%s'"), fname);
-
- return result;
- }
- else if (elf_kind (elf) == ELF_K_AR)
- {
- int result = handle_ar (fd, elf, NULL, fname, NULL);
-
- if (elf_end (elf) != 0)
- INTERNAL_ERROR (fname);
-
- if (close (fd) != 0)
- error (EXIT_FAILURE, errno, gettext ("while close `%s'"), fname);
-
- return result;
- }
-
- /* We cannot handle this type. Close the descriptor anyway. */
- if (elf_end (elf) != 0)
- INTERNAL_ERROR (fname);
- }
-
- error (0, 0, gettext ("%s: File format not recognized"), fname);
-
- return 1;
-}
-
-
-static int
-handle_ar (int fd, Elf *elf, const char *prefix, const char *fname,
- const char *suffix)
-{
- size_t fname_len = strlen (fname) + 1;
- size_t prefix_len = prefix != NULL ? strlen (prefix) : 0;
- char new_prefix[prefix_len + fname_len + 2];
- size_t suffix_len = suffix != NULL ? strlen (suffix) : 0;
- char new_suffix[suffix_len + 2];
- Elf *subelf;
- Elf_Cmd cmd = ELF_C_READ_MMAP;
- int result = 0;
-
- char *cp = new_prefix;
- if (prefix != NULL)
- cp = stpcpy (cp, prefix);
- cp = stpcpy (cp, fname);
- stpcpy (cp, "[");
-
- cp = new_suffix;
- if (suffix != NULL)
- cp = stpcpy (cp, suffix);
- stpcpy (cp, "]");
-
- /* First print the archive index if this is wanted. */
- if (print_armap)
- {
- Elf_Arsym *arsym = elf_getarsym (elf, NULL);
-
- if (arsym != NULL)
- {
- Elf_Arhdr *arhdr = NULL;
- size_t arhdr_off = 0; /* Note: 0 is no valid offset. */
-
- puts (gettext("\nArchive index:"));
-
- while (arsym->as_off != 0)
- {
- if (arhdr_off != arsym->as_off
- && (elf_rand (elf, arsym->as_off) != arsym->as_off
- || (subelf = elf_begin (fd, cmd, elf)) == NULL
- || (arhdr = elf_getarhdr (subelf)) == NULL))
- {
- error (0, 0, gettext ("invalid offset %zu for symbol %s"),
- arsym->as_off, arsym->as_name);
- continue;
- }
-
- printf (gettext ("%s in %s\n"), arsym->as_name, arhdr->ar_name);
-
- ++arsym;
- }
-
- if (elf_rand (elf, SARMAG) != SARMAG)
- {
- error (0, 0,
- gettext ("cannot reset archive offset to beginning"));
- return 1;
- }
- }
- }
-
- /* Process all the files contained in the archive. */
- while ((subelf = elf_begin (fd, cmd, elf)) != NULL)
- {
- /* The the header for this element. */
- Elf_Arhdr *arhdr = elf_getarhdr (subelf);
-
- /* Skip over the index entries. */
- if (strcmp (arhdr->ar_name, "/") != 0
- && strcmp (arhdr->ar_name, "//") != 0)
- {
- if (elf_kind (subelf) == ELF_K_ELF)
- result |= handle_elf (subelf, new_prefix, arhdr->ar_name,
- new_suffix);
- else if (elf_kind (subelf) == ELF_K_AR)
- result |= handle_ar (fd, subelf, new_prefix, arhdr->ar_name,
- new_suffix);
- else
- {
- error (0, 0, gettext ("%s%s%s: file format not recognized"),
- new_prefix, arhdr->ar_name, new_suffix);
- result = 1;
- }
- }
-
- /* Get next archive element. */
- cmd = elf_next (subelf);
- if (elf_end (subelf) != 0)
- INTERNAL_ERROR (fname);
- }
-
- return result;
-}
-
-
-/* Mapping of radix and binary class to length. */
-static const int length_map[2][3] =
-{
- [ELFCLASS32 - 1] =
- {
- [radix_hex] = 8,
- [radix_decimal] = 10,
- [radix_octal] = 11
- },
- [ELFCLASS64 - 1] =
- {
- [radix_hex] = 16,
- [radix_decimal] = 20,
- [radix_octal] = 22
- }
-};
-
-
-struct global_name
-{
- Dwarf_Global global;
- const char *name;
-};
-
-
-static int
-global_compare (const void *p1, const void *p2)
-{
- const Dwarf_Global *g1 = (const Dwarf_Global *) p1;
- const Dwarf_Global *g2 = (const Dwarf_Global *) p2;
-
- return strcmp (g1->name, g2->name);
-}
-
-
-static void *global_root;
-
-
-static int
-get_global (Dwarf *dbg, Dwarf_Global *global, void *arg)
-{
- tsearch (memcpy (xmalloc (sizeof (Dwarf_Global)), global,
- sizeof (Dwarf_Global)),
- &global_root, global_compare);
-
- return DWARF_CB_OK;
-}
-
-
-struct local_name
-{
- const char *name;
- const char *file;
- Dwarf_Word lineno;
- Dwarf_Addr lowpc;
- Dwarf_Addr highpc;
-};
-
-
-static int
-local_compare (const void *p1, const void *p2)
-{
- struct local_name *g1 = (struct local_name *) p1;
- struct local_name *g2 = (struct local_name *) p2;
- int result;
-
- result = strcmp (g1->name, g2->name);
- if (result == 0)
- {
- if (g1->lowpc <= g2->lowpc && g1->highpc >= g2->highpc)
- {
- /* g2 is contained in g1. Update the data. */
- g2->lowpc = g1->lowpc;
- g2->highpc = g1->highpc;
- result = 0;
- }
- else if (g2->lowpc <= g1->lowpc && g2->highpc >= g1->highpc)
- {
- /* g1 is contained in g2. Update the data. */
- g1->lowpc = g2->lowpc;
- g1->highpc = g2->highpc;
- result = 0;
- }
- else
- result = g1->lowpc < g2->lowpc ? -1 : 1;
- }
-
- return result;
-}
-
-
-static int
-get_var_range (Dwarf_Die *die, Dwarf_Word *lowpc, Dwarf_Word *highpc)
-{
- Dwarf_Attribute locattr_mem;
- Dwarf_Attribute *locattr = dwarf_attr (die, DW_AT_location, &locattr_mem);
- if (locattr == NULL)
- return 1;
-
- Dwarf_Loc *loc;
- size_t nloc;
- if (dwarf_getloclist (locattr, &loc, &nloc) != 0)
- return 1;
-
- /* Interpret the location expressions. */
- // XXX For now just the simple one:
- if (nloc == 1 && loc[0].atom == DW_OP_addr)
- {
- *lowpc = *highpc = loc[0].number;
- return 0;
- }
-
- return 1;
-}
-
-
-
-static void *local_root;
-
-
-static void
-get_local_names (Ebl *ebl, Dwarf *dbg)
-{
- Dwarf_Off offset = 0;
- Dwarf_Off old_offset;
- size_t hsize;
-
- while (dwarf_nextcu (dbg, old_offset = offset, &offset, &hsize, NULL, NULL,
- NULL) == 0)
- {
- Dwarf_Die cudie_mem;
- Dwarf_Die *cudie = dwarf_offdie (dbg, old_offset + hsize, &cudie_mem);
-
- /* If we cannot get the CU DIE there is no need to go on with
- this CU. */
- if (cudie == NULL)
- continue;
- /* This better be a CU DIE. */
- if (dwarf_tag (cudie) != DW_TAG_compile_unit)
- continue;
-
- /* Get the line information. */
- Dwarf_Files *files;
- size_t nfiles;
- if (dwarf_getsrcfiles (cudie, &files, &nfiles) != 0)
- continue;
-
- Dwarf_Die die_mem;
- Dwarf_Die *die = &die_mem;
- if (dwarf_child (cudie, die) == 0)
- /* Iterate over all immediate children of the CU DIE. */
- do
- {
- int tag = dwarf_tag (die);
- if (tag != DW_TAG_subprogram && tag != DW_TAG_variable)
- continue;
-
- /* We are interested in five attributes: name, decl_file,
- decl_line, low_pc, and high_pc. */
- Dwarf_Attribute attr_mem;
- Dwarf_Attribute *attr = dwarf_attr (die, DW_AT_name, &attr_mem);
- const char *name = dwarf_formstring (attr);
- if (name == NULL)
- continue;
-
- Dwarf_Word fileidx;
- attr = dwarf_attr (die, DW_AT_decl_file, &attr_mem);
- if (dwarf_formudata (attr, &fileidx) != 0 || fileidx >= nfiles)
- continue;
-
- Dwarf_Word lineno;
- attr = dwarf_attr (die, DW_AT_decl_line, &attr_mem);
- if (dwarf_formudata (attr, &lineno) != 0 || lineno == 0)
- continue;
-
- Dwarf_Addr lowpc;
- Dwarf_Addr highpc;
- if (tag == DW_TAG_subprogram)
- {
- if (dwarf_lowpc (die, &lowpc) != 0
- || dwarf_highpc (die, &highpc) != 0)
- continue;
- }
- else
- {
- if (get_var_range (die, &lowpc, &highpc) != 0)
- continue;
- }
-
- /* We have all the information. Create a record. */
- struct local_name *newp
- = (struct local_name *) xmalloc (sizeof (*newp));
- newp->name = name;
- newp->file = dwarf_filesrc (files, fileidx, NULL, NULL);
- newp->lineno = lineno;
- newp->lowpc = lowpc;
- newp->highpc = highpc;
-
- /* Since we cannot deallocate individual memory we do not test
- for duplicates in the tree. This should not happen anyway. */
- if (tsearch (newp, &local_root, local_compare) == NULL)
- error (EXIT_FAILURE, errno,
- gettext ("cannot create search tree"));
- }
- while (dwarf_siblingof (die, die) == 0);
- }
-}
-
-
-/* Show symbols in SysV format. */
-static void
-show_symbols_sysv (Ebl *ebl, GElf_Word strndx,
- const char *prefix, const char *fname, const char *fullname,
- GElf_SymX *syms, size_t nsyms, int longest_name,
- int longest_where)
-{
- size_t shnum;
- if (elf_getshnum (ebl->elf, &shnum) < 0)
- INTERNAL_ERROR (fullname);
-
- bool scnnames_malloced = shnum * sizeof (const char *) > 128 * 1024;
- const char **scnnames;
- if (scnnames_malloced)
- scnnames = (const char **) xmalloc (sizeof (const char *) * shnum);
- else
- scnnames = (const char **) alloca (sizeof (const char *) * shnum);
- /* Get the section header string table index. */
- size_t shstrndx;
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- /* Cache the section names. */
- Elf_Scn *scn = NULL;
- size_t cnt = 1;
- while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
- {
- GElf_Shdr shdr_mem;
-
- assert (elf_ndxscn (scn) == cnt++);
-
- scnnames[elf_ndxscn (scn)]
- = elf_strptr (ebl->elf, shstrndx,
- gelf_getshdr (scn, &shdr_mem)->sh_name);
- }
-
- int digits = length_map[gelf_getclass (ebl->elf) - 1][radix];
-
- /* We always print this prolog. */
- if (prefix == NULL || 1)
- printf (gettext ("\n\nSymbols from %s:\n\n"), fullname);
- else
- printf (gettext ("\n\nSymbols from %s[%s]:\n\n"), prefix, fname);
-
- /* The header line. */
- printf (gettext ("%*s%-*s %-*s Class Type %-*s %*s Section\n\n"),
- print_file_name ? (int) strlen (fullname) + 1: 0, "",
- longest_name, sgettext ("sysv|Name"),
- /* TRANS: the "sysv|" parts makes the string unique. */
- digits, sgettext ("sysv|Value"),
- /* TRANS: the "sysv|" parts makes the string unique. */
- digits, sgettext ("sysv|Size"),
- /* TRANS: the "sysv|" parts makes the string unique. */
- longest_where, sgettext ("sysv|Line"));
-
- /* Which format string to use (different radix for numbers). */
- const char *fmtstr;
- if (radix == radix_hex)
- fmtstr = "%-*s|%0*" PRIx64 "|%-6s|%-8s|%*" PRIx64 "|%*s|%s\n";
- else if (radix == radix_decimal)
- fmtstr = "%-*s|%*" PRId64 "|%-6s|%-8s|%*" PRId64 "|%*s|%s\n";
- else
- fmtstr = "%-*s|%0*" PRIo64 "|%-6s|%-8s|%*" PRIo64 "|%*s|%s\n";
-
- /* Iterate over all symbols. */
- for (cnt = 0; cnt < nsyms; ++cnt)
- {
- const char *symstr = elf_strptr (ebl->elf, strndx,
- syms[cnt].sym.st_name);
- char symbindbuf[50];
- char symtypebuf[50];
- char secnamebuf[1024];
-
- /* If we have to precede the line with the file name. */
- if (print_file_name)
- {
- fputs_unlocked (fullname, stdout);
- putchar_unlocked (':');
- }
-
- /* Print the actual string. */
- printf (fmtstr,
- longest_name, symstr,
- digits, syms[cnt].sym.st_value,
- ebl_symbol_binding_name (ebl,
- GELF_ST_BIND (syms[cnt].sym.st_info),
- symbindbuf, sizeof (symbindbuf)),
- ebl_symbol_type_name (ebl, GELF_ST_TYPE (syms[cnt].sym.st_info),
- symtypebuf, sizeof (symtypebuf)),
- digits, syms[cnt].sym.st_size, longest_where, syms[cnt].where,
- ebl_section_name (ebl, syms[cnt].sym.st_shndx, syms[cnt].xndx,
- secnamebuf, sizeof (secnamebuf), scnnames,
- shnum));
- }
-
- if (scnnames_malloced)
- free (scnnames);
-}
-
-
-static char
-class_type_char (GElf_Sym *sym)
-{
- int local_p = GELF_ST_BIND (sym->st_info) == STB_LOCAL;
-
- /* XXX Add support for architecture specific types and classes. */
- if (sym->st_shndx == SHN_ABS)
- return local_p ? 'a' : 'A';
-
- if (sym->st_shndx == SHN_UNDEF)
- /* Undefined symbols must be global. */
- return 'U';
-
- char result = "NDTSFB "[GELF_ST_TYPE (sym->st_info)];
-
- return local_p ? tolower (result) : result;
-}
-
-
-static void
-show_symbols_bsd (Elf *elf, GElf_Ehdr *ehdr, GElf_Word strndx,
- const char *prefix, const char *fname, const char *fullname,
- GElf_SymX *syms, size_t nsyms)
-{
- int digits = length_map[gelf_getclass (elf) - 1][radix];
-
- if (prefix != NULL && ! print_file_name)
- printf ("\n%s:\n", fname);
-
- static const char *const fmtstrs[] =
- {
- [radix_hex] = "%0*" PRIx64 " %c%s %s\n",
- [radix_decimal] = "%*" PRId64 " %c%s %s\n",
- [radix_octal] = "%0*" PRIo64 " %c%s %s\n"
- };
- static const char *const sfmtstrs[] =
- {
- [radix_hex] = "%2$0*1$" PRIx64 " %7$0*6$" PRIx64 " %3$c%4$s %5$s\n",
- [radix_decimal] = "%2$*1$" PRId64 " %7$*6$" PRId64 " %3$c%4$s %5$s\n",
- [radix_octal] = "%2$0*1$" PRIo64 " %7$0*6$" PRIo64 " %3$c%4$s %5$s\n"
- };
-
- /* Iterate over all symbols. */
- for (size_t cnt = 0; cnt < nsyms; ++cnt)
- {
- const char *symstr = elf_strptr (elf, strndx, syms[cnt].sym.st_name);
-
- /* Printing entries with a zero-length name makes the output
- not very well parseable. Since these entries don't carry
- much information we leave them out. */
- if (symstr[0] == '\0')
- continue;
-
- /* If we have to precede the line with the file name. */
- if (print_file_name)
- {
- fputs_unlocked (fullname, stdout);
- putchar_unlocked (':');
- }
-
- if (syms[cnt].sym.st_shndx == SHN_UNDEF)
- printf ("%*s U%s %s\n",
- digits, "",
- mark_weak
- ? (GELF_ST_BIND (syms[cnt].sym.st_info) == STB_WEAK
- ? "*" : " ")
- : "",
- elf_strptr (elf, strndx, syms[cnt].sym.st_name));
- else
- printf (print_size ? sfmtstrs[radix] : fmtstrs[radix],
- digits, syms[cnt].sym.st_value,
- class_type_char (&syms[cnt].sym),
- mark_weak
- ? (GELF_ST_BIND (syms[cnt].sym.st_info) == STB_WEAK
- ? "*" : " ")
- : "",
- elf_strptr (elf, strndx, syms[cnt].sym.st_name),
- digits, (uint64_t) syms[cnt].sym.st_size);
- }
-}
-
-
-static void
-show_symbols_posix (Elf *elf, GElf_Ehdr *ehdr, GElf_Word strndx,
- const char *prefix, const char *fname,
- const char *fullname, GElf_SymX *syms, size_t nsyms)
-{
- if (prefix != NULL && ! print_file_name)
- printf ("%s:\n", fullname);
-
- const char *fmtstr;
- if (radix == radix_hex)
- fmtstr = "%s %c%s %0*" PRIx64 " %0*" PRIx64 "\n";
- else if (radix == radix_decimal)
- fmtstr = "%s %c%s %*" PRId64 " %*" PRId64 "\n";
- else
- fmtstr = "%s %c%s %0*" PRIo64 " %0*" PRIo64 "\n";
-
- int digits = length_map[gelf_getclass (elf) - 1][radix];
-
- /* Iterate over all symbols. */
- for (size_t cnt = 0; cnt < nsyms; ++cnt)
- {
- const char *symstr = elf_strptr (elf, strndx, syms[cnt].sym.st_name);
-
- /* Printing entries with a zero-length name makes the output
- not very well parseable. Since these entries don't carry
- much information we leave them out. */
- if (symstr[0] == '\0')
- continue;
-
- /* If we have to precede the line with the file name. */
- if (print_file_name)
- {
- fputs_unlocked (fullname, stdout);
- putchar_unlocked (':');
- putchar_unlocked (' ');
- }
-
- printf (fmtstr,
- symstr,
- class_type_char (&syms[cnt].sym),
- mark_weak
- ? (GELF_ST_BIND (syms[cnt].sym.st_info) == STB_WEAK ? "*" : " ")
- : "",
- digits, syms[cnt].sym.st_value,
- digits, syms[cnt].sym.st_size);
- }
-}
-
-
-/* Maximum size of memory we allocate on the stack. */
-#define MAX_STACK_ALLOC 65536
-
-static void
-show_symbols (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, Elf_Scn *xndxscn,
- GElf_Shdr *shdr, const char *prefix, const char *fname,
- const char *fullname)
-{
- int sort_by_name (const void *p1, const void *p2)
- {
- GElf_SymX *s1 = (GElf_SymX *) p1;
- GElf_SymX *s2 = (GElf_SymX *) p2;
- int result;
-
- result = strcmp (elf_strptr (ebl->elf, shdr->sh_link, s1->sym.st_name),
- elf_strptr (ebl->elf, shdr->sh_link, s2->sym.st_name));
-
- return reverse_sort ? -result : result;
- }
-
- int sort_by_address (const void *p1, const void *p2)
- {
- GElf_SymX *s1 = (GElf_SymX *) p1;
- GElf_SymX *s2 = (GElf_SymX *) p2;
-
- int result = (s1->sym.st_value < s2->sym.st_value
- ? -1 : (s1->sym.st_value == s2->sym.st_value ? 0 : 1));
-
- return reverse_sort ? -result : result;
- }
-
- /* Get the section header string table index. */
- size_t shstrndx;
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- /* The section is that large. */
- size_t size = shdr->sh_size;
- /* One entry is this large. */
- size_t entsize = shdr->sh_entsize;
-
- /* Consistency checks. */
- if (entsize != gelf_fsize (ebl->elf, ELF_T_SYM, 1, ehdr->e_version))
- error (0, 0,
- gettext ("%s: entry size in section `%s' is not what we expect"),
- fullname, elf_strptr (ebl->elf, shstrndx, shdr->sh_name));
- else if (size % entsize != 0)
- error (0, 0,
- gettext ("%s: size of section `%s' is not multiple of entry size"),
- fullname, elf_strptr (ebl->elf, shstrndx, shdr->sh_name));
-
- /* Compute number of entries. Handle buggy entsize values. */
- size_t nentries = size / (entsize ?: 1);
-
-
-#define obstack_chunk_alloc xmalloc
-#define obstack_chunk_free free
- struct obstack whereob;
- obstack_init (&whereob);
-
- /* Get a DWARF debugging descriptor. It's no problem if this isn't
- possible. We just won't print any line number information. */
- Dwarf *dbg = NULL;
- if (format == format_sysv)
- {
- dbg = dwarf_begin_elf (ebl->elf, DWARF_C_READ, NULL);
- if (dbg != NULL)
- {
- (void) dwarf_getpubnames (dbg, get_global, NULL, 0);
-
- get_local_names (ebl, dbg);
- }
- }
-
- /* Allocate the memory.
-
- XXX We can use a dirty trick here. Since GElf_Sym == Elf64_Sym we
- can use the data memory instead of copying again if what we read
- is a 64 bit file. */
- GElf_SymX *sym_mem;
- if (nentries * sizeof (GElf_SymX) < MAX_STACK_ALLOC)
- sym_mem = (GElf_SymX *) alloca (nentries * sizeof (GElf_SymX));
- else
- sym_mem = (GElf_SymX *) xmalloc (nentries * sizeof (GElf_SymX));
-
- /* Get the data of the section. */
- Elf_Data *data = elf_getdata (scn, NULL);
- Elf_Data *xndxdata = elf_getdata (xndxscn, NULL);
- if (data == NULL || (xndxscn != NULL && xndxdata == NULL))
- INTERNAL_ERROR (fullname);
-
- /* Iterate over all symbols. */
- int longest_name = 4;
- int longest_where = 4;
- size_t nentries_used = 0;
- for (size_t cnt = 0; cnt < nentries; ++cnt)
- {
- GElf_Sym *sym = gelf_getsymshndx (data, xndxdata, cnt,
- &sym_mem[nentries_used].sym,
- &sym_mem[nentries_used].xndx);
- if (sym == NULL)
- INTERNAL_ERROR (fullname);
-
- /* Filter out administrative symbols without a name and those
- deselected by ther user with command line options. */
- if ((hide_undefined && sym->st_shndx == SHN_UNDEF)
- || (hide_defined && sym->st_shndx != SHN_UNDEF)
- || (hide_local && GELF_ST_BIND (sym->st_info) == STB_LOCAL))
- continue;
-
- sym_mem[nentries_used].where = "";
- if (format == format_sysv)
- {
- const char *symstr = elf_strptr (ebl->elf, shdr->sh_link,
- sym->st_name);
-
- longest_name = MAX ((size_t) longest_name, strlen (symstr));
-
- if (sym->st_shndx != SHN_UNDEF
- && GELF_ST_BIND (sym->st_info) != STB_LOCAL
- && global_root != NULL)
- {
- Dwarf_Global fake = { .name = symstr };
- Dwarf_Global **found = tfind (&fake, &global_root,
- global_compare);
- if (found != NULL)
- {
- Dwarf_Die die_mem;
- Dwarf_Die *die = dwarf_offdie (dbg, (*found)->die_offset,
- &die_mem);
-
- Dwarf_Die cudie_mem;
- Dwarf_Die *cudie = NULL;
-
- Dwarf_Addr lowpc;
- Dwarf_Addr highpc;
- if (die != NULL
- && dwarf_lowpc (die, &lowpc) == 0
- && lowpc <= sym->st_value
- && dwarf_highpc (die, &highpc) == 0
- && highpc > sym->st_value)
- cudie = dwarf_offdie (dbg, (*found)->cu_offset,
- &cudie_mem);
- if (cudie != NULL)
- {
- Dwarf_Line *line = dwarf_getsrc_die (cudie,
- sym->st_value);
- if (line != NULL)
- {
- /* We found the line. */
- int lineno;
- (void) dwarf_lineno (line, &lineno);
- int n;
- n = obstack_printf (&whereob, "%s:%d%c",
- basename (dwarf_linesrc (line,
- NULL,
- NULL)),
- lineno, '\0');
- sym_mem[nentries_used].where
- = obstack_finish (&whereob);
-
- /* The return value of obstack_print included the
- NUL byte, so subtract one. */
- if (--n > (int) longest_where)
- longest_where = (size_t) n;
- }
- }
- }
- }
-
- /* Try to find the symol among the local symbols. */
- if (sym_mem[nentries_used].where[0] == '\0')
- {
- struct local_name fake =
- {
- .name = symstr,
- .lowpc = sym->st_value,
- .highpc = sym->st_value,
- };
- struct local_name **found = tfind (&fake, &local_root,
- local_compare);
- if (found != NULL)
- {
- /* We found the line. */
- int n = obstack_printf (&whereob, "%s:%" PRIu64 "%c",
- basename ((*found)->file),
- (*found)->lineno,
- '\0');
- sym_mem[nentries_used].where = obstack_finish (&whereob);
-
- /* The return value of obstack_print included the
- NUL byte, so subtract one. */
- if (--n > (int) longest_where)
- longest_where = (size_t) n;
- }
- }
- }
-
- /* We use this entry. */
- ++nentries_used;
- }
- /* Now we know the exact number. */
- nentries = nentries_used;
-
- /* Sort the entries according to the users wishes. */
- if (sort == sort_name)
- qsort (sym_mem, nentries, sizeof (GElf_SymX), sort_by_name);
- else if (sort == sort_numeric)
- qsort (sym_mem, nentries, sizeof (GElf_SymX), sort_by_address);
-
- /* Finally print according to the users selection. */
- switch (format)
- {
- case format_sysv:
- show_symbols_sysv (ebl, shdr->sh_link, prefix, fname,
- fullname, sym_mem, nentries, longest_name,
- longest_where);
- break;
-
- case format_bsd:
- show_symbols_bsd (ebl->elf, ehdr, shdr->sh_link, prefix, fname,
- fullname, sym_mem, nentries);
- break;
-
- case format_posix:
- default:
- assert (format == format_posix);
- show_symbols_posix (ebl->elf, ehdr, shdr->sh_link, prefix, fname,
- fullname, sym_mem, nentries);
- break;
- }
-
- /* Free all memory. */
- if (nentries * sizeof (GElf_Sym) >= MAX_STACK_ALLOC)
- free (sym_mem);
-
- obstack_free (&whereob, NULL);
-
- if (dbg != NULL)
- {
- tdestroy (global_root, free);
- global_root = NULL;
-
- tdestroy (local_root, free);
- local_root = NULL;
-
- (void) dwarf_end (dbg);
- }
-}
-
-
-static int
-handle_elf (Elf *elf, const char *prefix, const char *fname,
- const char *suffix)
-{
- size_t prefix_len = prefix == NULL ? 0 : strlen (prefix);
- size_t suffix_len = suffix == NULL ? 0 : strlen (suffix);
- size_t fname_len = strlen (fname) + 1;
- char fullname[prefix_len + 1 + fname_len + suffix_len];
- char *cp = fullname;
- Elf_Scn *scn = NULL;
- int any = 0;
- int result = 0;
- GElf_Ehdr ehdr_mem;
- GElf_Ehdr *ehdr;
- Ebl *ebl;
-
- /* Get the backend for this object file type. */
- ebl = ebl_openbackend (elf);
-
- /* We need the ELF header in a few places. */
- ehdr = gelf_getehdr (elf, &ehdr_mem);
- if (ehdr == NULL)
- INTERNAL_ERROR (fullname);
-
- /* If we are asked to print the dynamic symbol table and this is
- executable or dynamic executable, fail. */
- if (symsec_type == SHT_DYNSYM
- && ehdr->e_type != ET_EXEC && ehdr->e_type != ET_DYN)
- {
- /* XXX Add machine specific object file types. */
- error (0, 0, gettext ("%s%s%s%s: Invalid operation"),
- prefix ?: "", prefix ? "(" : "", fname, prefix ? ")" : "");
- result = 1;
- goto out;
- }
-
- /* Create the full name of the file. */
- if (prefix != NULL)
- cp = mempcpy (cp, prefix, prefix_len);
- cp = mempcpy (cp, fname, fname_len);
- if (suffix != NULL)
- memcpy (cp - 1, suffix, suffix_len + 1);
-
- /* Find the symbol table.
-
- XXX Can there be more than one? Do we print all? Currently we do. */
- while ((scn = elf_nextscn (elf, scn)) != NULL)
- {
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-
- if (shdr == NULL)
- INTERNAL_ERROR (fullname);
-
- if (shdr->sh_type == symsec_type)
- {
- Elf_Scn *xndxscn = NULL;
-
- /* We have a symbol table. First make sure we remember this. */
- any = 1;
-
- /* Look for an extended section index table for this section. */
- if (symsec_type == SHT_SYMTAB)
- {
- size_t scnndx = elf_ndxscn (scn);
-
- while ((xndxscn = elf_nextscn (elf, xndxscn)) != NULL)
- {
- GElf_Shdr xndxshdr_mem;
- GElf_Shdr *xndxshdr = gelf_getshdr (xndxscn, &xndxshdr_mem);
-
- if (xndxshdr == NULL)
- INTERNAL_ERROR (fullname);
-
- if (xndxshdr->sh_type == SHT_SYMTAB_SHNDX
- && xndxshdr->sh_link == scnndx)
- break;
- }
- }
-
- show_symbols (ebl, ehdr, scn, xndxscn, shdr, prefix, fname,
- fullname);
- }
- }
-
- if (! any)
- {
- error (0, 0, gettext ("%s%s%s: no symbols"),
- prefix ?: "", prefix ? ":" : "", fname);
- result = 1;
- }
-
- out:
- /* Close the ELF backend library descriptor. */
- ebl_closebackend (ebl);
-
- return result;
-}
diff --git a/src/none_ld.c b/src/none_ld.c
deleted file mode 100644
index fb0f0fb2..00000000
--- a/src/none_ld.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Nothing here. This is just a testimony of automake inflexibility. */
diff --git a/src/readelf.c b/src/readelf.c
deleted file mode 100644
index 6129e29d..00000000
--- a/src/readelf.c
+++ /dev/null
@@ -1,4541 +0,0 @@
-/* Print information from ELF file in human-readable form.
- Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <argp.h>
-#include <assert.h>
-#include <dwarf.h>
-#include <errno.h>
-#include <error.h>
-#include <fcntl.h>
-#include <gelf.h>
-#include <inttypes.h>
-#include <langinfo.h>
-#include <libdw.h>
-#include <libebl.h>
-#include <libintl.h>
-#include <locale.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/param.h>
-
-#include <system.h>
-#include "../libdw/libdwP.h"
-#include "../libdw/memory-access.h"
-
-
-/* Name and version of program. */
-static void print_version (FILE *stream, struct argp_state *state);
-void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
-
-/* Definitions of arguments for argp functions. */
-static const struct argp_option options[] =
-{
- { NULL, 0, NULL, 0, N_("Output selection:") },
- { "all", 'a', NULL, 0, N_("Equivalent to: -h -l") },
- { "dynamic", 'd', NULL, 0, N_("Display the dynamic segment") },
- { "file-header", 'h', NULL, 0, N_("Display the ELF file header") },
- { "histogram", 'I', NULL, 0,
- N_("Display histogram of bucket list lengths") },
- { "program-headers", 'l', NULL, 0, N_("Display the program headers") },
- { "relocs", 'r', NULL, 0, N_("Display relocations") },
- { "section-headers", 'S', NULL, 0, N_("Display the sections' header") },
- { "symbols", 's', NULL, 0, N_("Display the symbol table") },
- { "version-info", 'V', NULL, 0, N_("Display versioning information") },
- { "debug-dump", 'w', "SECTION", OPTION_ARG_OPTIONAL,
- N_("Display DWARF section content. SECTION can be one of abbrev, "
- "aranges, frame, info, loc, line, pubnames, str, or macinfo.") },
- { "notes", 'n', NULL, 0, N_("Display the core notes") },
- { "arch-specific", 'A', NULL, 0,
- N_("Display architecture specific information (if any)") },
-
- { NULL, 0, NULL, 0, N_("Output control:") },
-
- { NULL, 0, NULL, 0, NULL }
-};
-
-/* Short description of program. */
-static const char doc[] = N_("\
-Print information from ELF file in human-readable form.");
-
-/* Strings for arguments in help texts. */
-static const char args_doc[] = N_("FILE...");
-
-/* Prototype for option handler. */
-static error_t parse_opt (int key, char *arg, struct argp_state *state);
-
-/* Function to print some extra text in the help message. */
-static char *more_help (int key, const char *text, void *input);
-
-/* Data structure to communicate with argp functions. */
-static struct argp argp =
-{
- options, parse_opt, args_doc, doc, NULL, more_help
-};
-
-
-/* Flags set by the option controlling the output. */
-
-/* True if any of the control options is set. */
-static bool any_control_option;
-
-/* True if dynamic segment should be printed. */
-static bool print_dynamic_table;
-
-/* True if the file header should be printed. */
-static bool print_file_header;
-
-/* True if the program headers should be printed. */
-static bool print_program_header;
-
-/* True if relocations should be printed. */
-static bool print_relocations;
-
-/* True if the section headers should be printed. */
-static bool print_section_header;
-
-/* True if the symbol table should be printed. */
-static bool print_symbol_table;
-
-/* True if the version information should be printed. */
-static bool print_version_info;
-
-/* True if section groups should be printed. */
-static bool print_section_groups;
-
-/* True if bucket list length histogram should be printed. */
-static bool print_histogram;
-
-/* True if the architecture specific data should be printed. */
-static bool print_arch;
-
-/* True if note section content should be printed. */
-static bool print_notes;
-
-/* Select printing of debugging sections. */
-static enum section_e
-{
- section_abbrev = 1, /* .debug_abbrev */
- section_aranges = 2, /* .debug_aranges */
- section_frame = 4, /* .debug_frame or .eh_frame */
- section_info = 8, /* .debug_info */
- section_line = 16, /* .debug_line */
- section_loc = 32, /* .debug_loc */
- section_pubnames = 64,/* .debug_pubnames */
- section_str = 128, /* .debug_str */
- section_macinfo = 256,/* .debug_macinfo */
- section_all = (section_abbrev | section_aranges | section_frame
- | section_info | section_line | section_loc
- | section_pubnames | section_str | section_macinfo)
-} print_debug_sections;
-
-/* Number of sections in the file. */
-static size_t shnum;
-
-
-/* Declarations of local functions. */
-static void process_file (int fd, Elf *elf, const char *prefix,
- const char *fname, bool only_one);
-static void process_elf_file (Elf *elf, const char *prefix, const char *fname,
- bool only_one);
-static void print_ehdr (Ebl *ebl, GElf_Ehdr *ehdr);
-static void print_shdr (Ebl *ebl, GElf_Ehdr *ehdr);
-static void print_phdr (Ebl *ebl, GElf_Ehdr *ehdr);
-static void print_scngrp (Ebl *ebl, GElf_Ehdr *ehdr);
-static void print_dynamic (Ebl *ebl, GElf_Ehdr *ehdr);
-static void print_relocs (Ebl *ebl, GElf_Ehdr *ehdr);
-static void handle_relocs_rel (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr);
-static void handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr);
-static void print_symtab (Ebl *ebl, GElf_Ehdr *ehdr, int type);
-static void handle_symtab (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr);
-static void print_verinfo (Ebl *ebl, GElf_Ehdr *ehdr);
-static void handle_verneed (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr);
-static void handle_verdef (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr);
-static void handle_versym (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr);
-static void print_debug (Ebl *ebl, GElf_Ehdr *ehdr);
-static void handle_hash (Ebl *ebl, GElf_Ehdr *ehdr);
-static void handle_notes (Ebl *ebl, GElf_Ehdr *ehdr);
-static void print_liblist (Ebl *ebl, GElf_Ehdr *ehdr);
-
-
-int
-main (int argc, char *argv[])
-{
- int remaining;
- bool only_one;
-
- /* Set locale. */
- setlocale (LC_ALL, "");
-
- /* Initialize the message catalog. */
- textdomain (PACKAGE);
-
- /* Parse and process arguments. */
- argp_parse (&argp, argc, argv, 0, &remaining, NULL);
-
- /* If no control option or no ELF file is given punt. */
- if ((any_control_option == 0 && print_debug_sections == 0)
- || remaining >= argc)
- {
- argp_help (&argp, stdout, ARGP_HELP_SEE | ARGP_HELP_EXIT_ERR,
- program_invocation_short_name);
- exit (1);
- }
-
- /* Before we start tell the ELF library which version we are using. */
- elf_version (EV_CURRENT);
-
- /* Now process all the files given at the command line. */
- only_one = remaining + 1 == argc;
- do
- {
- int fd;
- Elf *elf;
-
- /* Open the file. */
- fd = open (argv[remaining], O_RDONLY);
- if (fd == -1)
- {
- error (0, errno, gettext ("cannot open input file"));
- continue;
- }
-
- /* Create an `Elf' descriptor. */
- elf = elf_begin (fd, ELF_C_READ_MMAP, NULL);
- if (elf == NULL)
- error (0, 0, gettext ("cannot generate Elf descriptor: %s\n"),
- elf_errmsg (-1));
- else
- {
- process_file (fd, elf, NULL, argv[remaining], only_one);
-
- /* Now we can close the descriptor. */
- if (elf_end (elf) != 0)
- error (0, 0, gettext ("error while closing Elf descriptor: %s"),
- elf_errmsg (-1));
- }
-
- close (fd);
- }
- while (++remaining < argc);
-
- return error_message_count != 0;
-}
-
-
-/* Handle program arguments. */
-static error_t
-parse_opt (int key, char *arg, struct argp_state *state)
-{
- switch (key)
- {
- case 'a':
- print_file_header = true;
- print_program_header = true;
- print_relocations = true;
- print_section_header = true;
- print_symbol_table = true;
- print_version_info = true;
- print_dynamic_table = true;
- print_section_groups = true;
- print_histogram = true;
- print_arch = true;
- print_notes = true;
- any_control_option = true;
- break;
- case 'A':
- print_arch = true;
- any_control_option = true;
- break;
- case 'd':
- print_dynamic_table = true;
- any_control_option = true;
- break;
- case 'g':
- print_section_groups = true;
- any_control_option = true;
- break;
- case 'h':
- print_file_header = true;
- any_control_option = true;
- break;
- case 'I':
- print_histogram = true;
- any_control_option = true;
- break;
- case 'l':
- print_program_header = true;
- any_control_option = true;
- break;
- case 'n':
- print_notes = true;
- any_control_option = true;
- break;
- case 'r':
- print_relocations = true;
- any_control_option = true;
- break;
- case 'S':
- print_section_header = true;
- any_control_option = true;
- break;
- case 's':
- print_symbol_table = true;
- any_control_option = true;
- break;
- case 'V':
- print_version_info = true;
- any_control_option = true;
- break;
- case 'w':
- if (arg == NULL)
- print_debug_sections = section_all;
- else if (strcmp (arg, "abbrev") == 0)
- print_debug_sections |= section_abbrev;
- else if (strcmp (arg, "aranges") == 0)
- print_debug_sections |= section_aranges;
- else if (strcmp (arg, "frame") == 0)
- print_debug_sections |= section_frame;
- else if (strcmp (arg, "info") == 0)
- print_debug_sections |= section_info;
- else if (strcmp (arg, "loc") == 0)
- print_debug_sections |= section_loc;
- else if (strcmp (arg, "line") == 0)
- print_debug_sections |= section_line;
- else if (strcmp (arg, "pubnames") == 0)
- print_debug_sections |= section_pubnames;
- else if (strcmp (arg, "str") == 0)
- print_debug_sections |= section_str;
- else if (strcmp (arg, "macinfo") == 0)
- print_debug_sections |= section_macinfo;
- else
- {
- fprintf (stderr, gettext ("Unknown DWARF debug section `%s'.\n"),
- arg);
- argp_help (&argp, stderr, ARGP_HELP_SEE,
- program_invocation_short_name);
- exit (1);
- }
- break;
- default:
- return ARGP_ERR_UNKNOWN;
- }
- return 0;
-}
-
-
-static char *
-more_help (int key, const char *text, void *input)
-{
- char *buf;
-
- switch (key)
- {
- case ARGP_KEY_HELP_EXTRA:
- /* We print some extra information. */
- if (asprintf (&buf, gettext ("Please report bugs to %s.\n"),
- PACKAGE_BUGREPORT) < 0)
- buf = NULL;
- return buf;
-
- default:
- break;
- }
- return (char *) text;
-}
-
-
-/* Print the version information. */
-static void
-print_version (FILE *stream, struct argp_state *state)
-{
- fprintf (stream, "readelf (%s) %s\n", PACKAGE_NAME, VERSION);
- fprintf (stream, gettext ("\
-Copyright (C) %s Red Hat, Inc.\n\
-This is free software; see the source for copying conditions. There is NO\n\
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2004");
- fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
-}
-
-
-/* Process one file. */
-static void
-process_file (int fd, Elf *elf, const char *prefix, const char *fname,
- bool only_one)
-{
- /* We can handle two types of files: ELF files and archives. */
- Elf_Kind kind = elf_kind (elf);
- struct stat64 st;
-
- switch (kind)
- {
- case ELF_K_ELF:
- /* Yes! It's an ELF file. */
- process_elf_file (elf, prefix, fname, only_one);
- break;
-
- case ELF_K_AR:
- {
- Elf *subelf;
- Elf_Cmd cmd = ELF_C_READ_MMAP;
- size_t prefix_len = prefix == NULL ? 0 : strlen (prefix);
- size_t fname_len = strlen (fname) + 1;
- char new_prefix[prefix_len + 1 + fname_len];
- char *cp = new_prefix;
-
- /* Create the full name of the file. */
- if (prefix != NULL)
- {
- cp = mempcpy (cp, prefix, prefix_len);
- *cp++ = ':';
- }
- memcpy (cp, fname, fname_len);
-
- /* It's an archive. We process each file in it. */
- while ((subelf = elf_begin (fd, cmd, elf)) != NULL)
- {
- kind = elf_kind (subelf);
-
- /* Call this function recursively. */
- if (kind == ELF_K_ELF || kind == ELF_K_AR)
- {
- Elf_Arhdr *arhdr = elf_getarhdr (subelf);
- assert (arhdr != NULL);
-
- process_file (fd, subelf, new_prefix, arhdr->ar_name, false);
- }
-
- /* Get next archive element. */
- cmd = elf_next (subelf);
- if (elf_end (subelf) != 0)
- error (0, 0,
- gettext (" error while freeing sub-ELF descriptor: %s\n"),
- elf_errmsg (-1));
- }
- }
- break;
-
- default:
- if (fstat64 (fd, &st) != 0)
- error (0, errno, gettext ("cannot stat input file"));
- else if (st.st_size == 0)
- error (0, 0, gettext ("input file is empty"));
- else
- /* We cannot do anything. */
- error (0, 0, gettext ("\
-Not an ELF file - it has the wrong magic bytes at the start"));
- break;
- }
-}
-
-
-/* Process one file. */
-static void
-process_elf_file (Elf *elf, const char *prefix, const char *fname,
- bool only_one)
-{
- GElf_Ehdr ehdr_mem;
- GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem);
- Ebl *ebl;
-
- /* Print the file name. */
- if (!only_one)
- {
- if (prefix != NULL)
- printf ("\n%s(%s):\n\n", prefix, fname);
- else
- printf ("\n%s:\n\n", fname);
- }
-
- if (ehdr == NULL)
- {
- error (0, 0, gettext ("cannot read ELF header: %s"), elf_errmsg (-1));
- return;
- }
-
- ebl = ebl_openbackend (elf);
- if (ebl == NULL)
- {
- error (0, errno, gettext ("cannot create EBL handle"));
- return;
- }
-
- /* Determine the number of sections. */
- if (elf_getshnum (ebl->elf, &shnum) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot determine number of sections: %s"),
- elf_errmsg (-1));
-
- if (print_file_header)
- print_ehdr (ebl, ehdr);
- if (print_section_header)
- print_shdr (ebl, ehdr);
- if (print_program_header)
- print_phdr (ebl, ehdr);
- if (print_section_groups)
- print_scngrp (ebl, ehdr);
- if (print_dynamic_table)
- print_dynamic (ebl, ehdr);
- if (print_relocations)
- print_relocs (ebl, ehdr);
- if (print_histogram)
- handle_hash (ebl, ehdr);
- if (print_symbol_table)
- print_symtab (ebl, ehdr, SHT_DYNSYM);
- if (print_version_info)
- print_verinfo (ebl, ehdr);
- if (print_symbol_table)
- print_symtab (ebl, ehdr, SHT_SYMTAB);
- if (print_arch)
- print_liblist (ebl, ehdr);
- if (print_debug_sections != 0)
- print_debug (ebl, ehdr);
- if (print_notes)
- handle_notes (ebl, ehdr);
-
- ebl_closebackend (ebl);
-}
-
-
-/* Print file type. */
-static void
-print_file_type (unsigned short int e_type)
-{
- if (e_type <= ET_CORE)
- {
- static const char *knowntypes[] =
- {
- N_("NONE (None)"),
- N_("REL (Relocatable file)"),
- N_("EXEC (Executable file)"),
- N_("DYN (Shared object file)"),
- N_("CORE (Core file)")
- };
- puts (gettext (knowntypes[e_type]));
- }
- else if (e_type >= ET_LOOS && e_type <= ET_HIOS)
- printf (gettext ("OS Specific: (%x)\n"), e_type);
- else if (e_type >= ET_LOPROC /* && e_type <= ET_HIPROC always true */)
- printf (gettext ("Processor Specific: (%x)\n"), e_type);
- else
- puts ("???");
-}
-
-
-/* Print ELF header. */
-static void
-print_ehdr (Ebl *ebl, GElf_Ehdr *ehdr)
-{
- char buf[512];
- size_t cnt;
-
- fputs_unlocked (gettext ("ELF Header:\n Magic: "), stdout);
- for (cnt = 0; cnt < EI_NIDENT; ++cnt)
- printf (" %02hhx", ehdr->e_ident[cnt]);
-
- printf (gettext ("\n Class: %s\n"),
- ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? "ELF32"
- : ehdr->e_ident[EI_CLASS] == ELFCLASS64 ? "ELF64"
- : "\?\?\?");
-
- printf (gettext (" Data: %s\n"),
- ehdr->e_ident[EI_DATA] == ELFDATA2LSB
- ? "2's complement, little endian"
- : ehdr->e_ident[EI_DATA] == ELFDATA2MSB
- ? "2's complement, big endian" : "\?\?\?");
-
- printf (gettext (" Version: %hhd %s\n"),
- ehdr->e_ident[EI_VERSION],
- ehdr->e_ident[EI_VERSION] == EV_CURRENT ? gettext ("(current)")
- : "(\?\?\?)");
-
- printf (gettext (" OS/ABI: %s\n"),
- ebl_osabi_name (ebl, ehdr->e_ident[EI_OSABI], buf, sizeof (buf)));
-
- printf (gettext (" ABI Version: %hhd\n"),
- ehdr->e_ident[EI_ABIVERSION]);
-
- fputs_unlocked (gettext (" Type: "), stdout);
- print_file_type (ehdr->e_type);
-
- printf (gettext (" Machine: %s\n"), ebl->name);
-
- printf (gettext (" Version: %d %s\n"),
- ehdr->e_version,
- ehdr->e_version == EV_CURRENT ? gettext ("(current)") : "(\?\?\?)");
-
- printf (gettext (" Entry point address: %#" PRIx64 "\n"),
- ehdr->e_entry);
-
- printf (gettext (" Start of program headers: %" PRId64 " %s\n"),
- ehdr->e_phoff, gettext ("(bytes into file)"));
-
- printf (gettext (" Start of section headers: %" PRId64 " %s\n"),
- ehdr->e_shoff, gettext ("(bytes into file)"));
-
- printf (gettext (" Flags: %s\n"),
- ebl_machine_flag_name (ebl, ehdr->e_flags, buf, sizeof (buf)));
-
- printf (gettext (" Size of this header: %" PRId16 " %s\n"),
- ehdr->e_ehsize, gettext ("(bytes)"));
-
- printf (gettext (" Size of program header entries: %" PRId16 " %s\n"),
- ehdr->e_phentsize, gettext ("(bytes)"));
-
- printf (gettext (" Number of program headers entries: %" PRId16 "\n"),
- ehdr->e_phnum);
-
- printf (gettext (" Size of section header entries: %" PRId16 " %s\n"),
- ehdr->e_shentsize, gettext ("(bytes)"));
-
- printf (gettext (" Number of section headers entries: %" PRId16),
- ehdr->e_shnum);
- if (ehdr->e_shnum == 0)
- {
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
-
- shdr = gelf_getshdr (elf_getscn (ebl->elf, 0), &shdr_mem);
- if (shdr != NULL)
- printf (gettext (" (%" PRIu32 " in [0].sh_size)"),
- (uint32_t) shdr->sh_size);
- else
- fputs_unlocked (gettext (" ([0] not available)"), stdout);
- }
- fputc_unlocked ('\n', stdout);
-
- if (ehdr->e_shstrndx == SHN_XINDEX)
- {
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
-
- shdr = gelf_getshdr (elf_getscn (ebl->elf, 0), &shdr_mem);
- if (shdr != NULL)
- /* We managed to get the zeroth section. */
- snprintf (buf, sizeof (buf), gettext (" (%" PRIu32 " in [0].sh_link)"),
- (uint32_t) shdr->sh_link);
- else
- {
- strncpy (buf, gettext (" ([0] not available)"), sizeof (buf));
- buf[sizeof (buf) - 1] = '\0';
- }
-
- printf (gettext (" Section header string table index: XINDEX%s\n\n"),
- buf);
- }
- else
- printf (gettext (" Section header string table index: %" PRId16 "\n\n"),
- ehdr->e_shstrndx);
-}
-
-
-static const char *
-get_visibility_type (int value)
-{
- switch (value)
- {
- case STV_DEFAULT:
- return "DEFAULT";
- case STV_INTERNAL:
- return "INTERNAL";
- case STV_HIDDEN:
- return "HIDDEN";
- case STV_PROTECTED:
- return "PROTECTED";
- default:
- return "???";
- }
-}
-
-
-/* Print the section headers. */
-static void
-print_shdr (Ebl *ebl, GElf_Ehdr *ehdr)
-{
- size_t cnt;
- size_t shstrndx;
-
- if (! print_file_header)
- printf (gettext ("\
-There are %d section headers, starting at offset %#" PRIx64 ":\n\
-\n"),
- ehdr->e_shnum, ehdr->e_shoff);
-
- /* Get the section header string table index. */
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- puts (gettext ("Section Headers:"));
-
- if (ehdr->e_ident[EI_CLASS] == ELFCLASS32)
- puts (gettext ("[Nr] Name Type Addr Off Size ES Flags Lk Inf Al"));
- else
- puts (gettext ("[Nr] Name Type Addr Off Size ES Flags Lk Inf Al"));
-
- for (cnt = 0; cnt < shnum; ++cnt)
- {
- char buf[128];
- char flagbuf[20];
- char *cp;
- Elf_Scn *scn = elf_getscn (ebl->elf, cnt);
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
-
- if (scn == NULL)
- error (EXIT_FAILURE, 0, gettext ("cannot get section: %s"),
- elf_errmsg (-1));
-
- /* Get the section header. */
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- error (EXIT_FAILURE, 0, gettext ("cannot get section header: %s"),
- elf_errmsg (-1));
-
- cp = flagbuf;
- if (shdr->sh_flags & SHF_WRITE)
- *cp++ = 'W';
- if (shdr->sh_flags & SHF_ALLOC)
- *cp++ = 'A';
- if (shdr->sh_flags & SHF_EXECINSTR)
- *cp++ = 'X';
- if (shdr->sh_flags & SHF_MERGE)
- *cp++ = 'M';
- if (shdr->sh_flags & SHF_STRINGS)
- *cp++ = 'S';
- if (shdr->sh_flags & SHF_INFO_LINK)
- *cp++ = 'I';
- if (shdr->sh_flags & SHF_LINK_ORDER)
- *cp++ = 'L';
- if (shdr->sh_flags & SHF_OS_NONCONFORMING)
- *cp++ = 'N';
- if (shdr->sh_flags & SHF_GROUP)
- *cp++ = 'G';
- if (shdr->sh_flags & SHF_TLS)
- *cp++ = 'T';
- if (shdr->sh_flags & SHF_ORDERED)
- *cp++ = 'O';
- if (shdr->sh_flags & SHF_EXCLUDE)
- *cp++ = 'E';
- *cp = '\0';
-
- printf ("[%2zu] %-20s %-12s %0*" PRIx64 " %0*" PRIx64 " %0*" PRIx64
- " %2" PRId64 " %-5s %2" PRId32 " %3" PRId32
- " %2" PRId64 "\n",
- cnt,
- elf_strptr (ebl->elf, shstrndx, shdr->sh_name)
- ?: "<corrupt>",
- ebl_section_type_name (ebl, shdr->sh_type, buf, sizeof (buf)),
- ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 8 : 16, shdr->sh_addr,
- ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 6 : 8, shdr->sh_offset,
- ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 6 : 8, shdr->sh_size,
- shdr->sh_entsize, flagbuf, shdr->sh_link, shdr->sh_info,
- shdr->sh_addralign);
- }
-
- fputc_unlocked ('\n', stdout);
-}
-
-
-/* Print the program header. */
-static void
-print_phdr (Ebl *ebl, GElf_Ehdr *ehdr)
-{
- size_t cnt;
- size_t shstrndx;
-
- if (ehdr->e_phnum == 0)
- /* No program header, this is OK in relocatable objects. */
- return;
-
- puts (gettext ("Program Headers:"));
- if (ehdr->e_ident[EI_CLASS] == ELFCLASS32)
- puts (gettext ("\
- Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"));
- else
- puts (gettext ("\
- Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"));
-
- /* Process all program headers. */
- bool has_relro = false;
- GElf_Addr relro_from = 0;
- GElf_Addr relro_to = 0;
- for (cnt = 0; cnt < ehdr->e_phnum; ++cnt)
- {
- char buf[128];
- GElf_Phdr mem;
- GElf_Phdr *phdr = gelf_getphdr (ebl->elf, cnt, &mem);
-
- /* If for some reason the header cannot be returned show this. */
- if (phdr == NULL)
- {
- puts (" ???");
- continue;
- }
-
- printf (" %-14s 0x%06" PRIx64 " 0x%0*" PRIx64 " 0x%0*" PRIx64
- " 0x%06" PRIx64 " 0x%06" PRIx64 " %c%c%c 0x%" PRIx64 "\n",
- ebl_segment_type_name (ebl, phdr->p_type, buf, sizeof (buf)),
- phdr->p_offset,
- ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 8 : 16, phdr->p_vaddr,
- ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 8 : 16, phdr->p_paddr,
- phdr->p_filesz,
- phdr->p_memsz,
- phdr->p_flags & PF_R ? 'R' : ' ',
- phdr->p_flags & PF_W ? 'W' : ' ',
- phdr->p_flags & PF_X ? 'E' : ' ',
- phdr->p_align);
-
- if (phdr->p_type == PT_INTERP)
- {
- /* We can show the user the name of the interpreter. */
- size_t maxsize;
- char *filedata = elf_rawfile (ebl->elf, &maxsize);
-
- if (filedata != NULL && phdr->p_offset < maxsize)
- printf (gettext ("\t[Requesting program interpreter: %s]\n"),
- filedata + phdr->p_offset);
- }
- else if (phdr->p_type == PT_GNU_RELRO)
- {
- has_relro = true;
- relro_from = phdr->p_vaddr;
- relro_to = relro_from + phdr->p_memsz;
- }
- }
-
- /* Get the section header string table index. */
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- puts (gettext ("\n Section to Segment mapping:\n Segment Sections..."));
-
- for (cnt = 0; cnt < ehdr->e_phnum; ++cnt)
- {
- GElf_Phdr phdr_mem;
- GElf_Phdr *phdr = gelf_getphdr (ebl->elf, cnt, &phdr_mem);
- size_t inner;
-
- /* Print the segment number. */
- printf (" %2.2zu ", cnt);
-
- /* This must not happen. */
- if (phdr == NULL)
- error (EXIT_FAILURE, 0, gettext ("cannot get program header: %s"),
- elf_errmsg (-1));
-
- /* Iterate over the sections. */
- bool in_relro = false;
- for (inner = 1; inner < shnum; ++inner)
- {
- Elf_Scn *scn = elf_getscn (ebl->elf, inner);
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
-
- /* It should not happen. */
- if (scn == NULL)
- error (EXIT_FAILURE, 0, gettext ("cannot get section: %s"),
- elf_errmsg (-1));
-
- /* Get the section header. */
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header: %s"),
- elf_errmsg (-1));
-
- if (shdr->sh_size > 0
- /* Compare allocated sections by VMA, unallocated
- sections by file offset. */
- && (shdr->sh_flags & SHF_ALLOC
- ? (shdr->sh_addr >= phdr->p_vaddr
- && (shdr->sh_addr + shdr->sh_size
- <= phdr->p_vaddr + phdr->p_memsz))
- : (shdr->sh_offset >= phdr->p_offset
- && (shdr->sh_offset + shdr->sh_size
- <= phdr->p_offset + phdr->p_filesz))))
- {
- if (has_relro && !in_relro
- && shdr->sh_addr >= relro_from
- && shdr->sh_addr + shdr->sh_size <= relro_to)
- {
- fputs_unlocked (" [RELRO:", stdout);
- in_relro = true;
- }
- else if (has_relro && in_relro && shdr->sh_addr >= relro_to)
- {
- fputs_unlocked ("]", stdout);
- in_relro = false;
- }
- else if (has_relro && in_relro
- && shdr->sh_addr + shdr->sh_size > relro_to)
- fputs_unlocked ("] <RELRO:", stdout);
-
- printf (" %s",
- elf_strptr (ebl->elf, shstrndx, shdr->sh_name));
-
- /* Signal that this sectin is only partially covered. */
- if (has_relro && in_relro
- && shdr->sh_addr + shdr->sh_size > relro_to)
- {
- fputs_unlocked (">", stdout);
- in_relro = false;
- }
- }
- }
- if (in_relro)
- fputs_unlocked ("]", stdout);
-
- /* Finish the line. */
- fputc_unlocked ('\n', stdout);
- }
-}
-
-
-static void
-handle_scngrp (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
-{
- Elf_Data *data;
- Elf32_Word *grpref;
- Elf_Scn *symscn;
- GElf_Shdr symshdr_mem;
- GElf_Shdr *symshdr;
- Elf_Data *symdata;
- GElf_Sym sym_mem;
- size_t cnt;
- size_t shstrndx;
-
- /* Get the data of the section. */
- data = elf_getdata (scn, NULL);
-
- symscn = elf_getscn (ebl->elf, shdr->sh_link);
- symshdr = gelf_getshdr (symscn, &symshdr_mem);
- symdata = elf_getdata (symscn, NULL);
-
- if (data == NULL || data->d_size < sizeof (Elf32_Word) || symshdr == NULL
- || symdata == NULL)
- return;
-
- /* Get the section header string table index. */
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- grpref = (Elf32_Word *) data->d_buf;
-
- printf ((grpref[0] & GRP_COMDAT)
- ? ngettext ("\
-\nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n",
- "\
-\nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entries:\n",
- data->d_size / sizeof (Elf32_Word) - 1)
- : ngettext ("\
-\nSection group [%2zu] '%s' with signature '%s' contains %zu entry:\n", "\
-\nSection group [%2zu] '%s' with signature '%s' contains %zu entries:\n",
- data->d_size / sizeof (Elf32_Word) - 1),
- elf_ndxscn (scn),
- elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
- elf_strptr (ebl->elf, symshdr->sh_link,
- gelf_getsym (symdata, shdr->sh_info, &sym_mem)->st_name)
- ?: gettext ("<INVALID SYMBOL>"),
- data->d_size / sizeof (Elf32_Word) - 1);
-
- for (cnt = 1; cnt < data->d_size / sizeof (Elf32_Word); ++cnt)
- {
- GElf_Shdr grpshdr_mem;
- GElf_Shdr *grpshdr;
-
- grpshdr = gelf_getshdr (elf_getscn (ebl->elf, grpref[cnt]),
- &grpshdr_mem);
-
- if (grpshdr == NULL)
- printf (gettext (" [%2u] <INVALID SECTION>\n"), grpref[cnt]);
- else
- printf (" [%2u] %s\n",
- grpref[cnt],
- elf_strptr (ebl->elf, shstrndx, grpshdr->sh_name)
- ?: gettext ("<INVALID SECTION>"));
- }
-}
-
-
-static void
-print_scngrp (Ebl *ebl, GElf_Ehdr *ehdr)
-{
- /* Find all relocation sections and handle them. */
- Elf_Scn *scn = NULL;
-
- while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
- {
- /* Handle the section if it is a symbol table. */
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-
- if (shdr != NULL && shdr->sh_type == SHT_GROUP)
- handle_scngrp (ebl, ehdr, scn, shdr);
- }
-}
-
-
-static const struct flags
-{
- int mask;
- const char *str;
-} dt_flags[] =
- {
- { DF_ORIGIN, "ORIGIN" },
- { DF_SYMBOLIC, "SYMBOLIC" },
- { DF_TEXTREL, "TEXTREL" },
- { DF_BIND_NOW, "BIND_NOW" },
- { DF_STATIC_TLS, "STATIC_TLS" }
- };
-static const int ndt_flags = sizeof (dt_flags) / sizeof (dt_flags[0]);
-
-static const struct flags dt_flags_1[] =
- {
- { DF_1_NOW, "NOW" },
- { DF_1_GLOBAL, "GLOBAL" },
- { DF_1_GROUP, "GROUP" },
- { DF_1_NODELETE, "NODELETE" },
- { DF_1_LOADFLTR, "LOADFLTR" },
- { DF_1_INITFIRST, "INITFIRST" },
- { DF_1_NOOPEN, "NOOPEN" },
- { DF_1_ORIGIN, "ORIGIN" },
- { DF_1_DIRECT, "DIRECT" },
- { DF_1_TRANS, "TRANS" },
- { DF_1_INTERPOSE, "INTERPOSE" },
- { DF_1_NODEFLIB, "NODEFLIB" },
- { DF_1_NODUMP, "NODUMP" },
- { DF_1_CONFALT, "CONFALT" },
- { DF_1_ENDFILTEE, "ENDFILTEE" },
- { DF_1_DISPRELDNE, "DISPRELDNE" },
- { DF_1_DISPRELPND, "DISPRELPND" },
- };
-static const int ndt_flags_1 = sizeof (dt_flags_1) / sizeof (dt_flags_1[0]);
-
-static const struct flags dt_feature_1[] =
- {
- { DTF_1_PARINIT, "PARINIT" },
- { DTF_1_CONFEXP, "CONFEXP" }
- };
-static const int ndt_feature_1 = (sizeof (dt_feature_1)
- / sizeof (dt_feature_1[0]));
-
-static const struct flags dt_posflag_1[] =
- {
- { DF_P1_LAZYLOAD, "LAZYLOAD" },
- { DF_P1_GROUPPERM, "GROUPPERM" }
- };
-static const int ndt_posflag_1 = (sizeof (dt_posflag_1)
- / sizeof (dt_posflag_1[0]));
-
-
-static void
-print_flags (int class, GElf_Xword d_val, const struct flags *flags,
- int nflags)
-{
- bool first = true;
- int cnt;
-
- for (cnt = 0; cnt < nflags; ++cnt)
- if (d_val & flags[cnt].mask)
- {
- if (!first)
- putchar_unlocked (' ');
- fputs_unlocked (flags[cnt].str, stdout);
- d_val &= ~flags[cnt].mask;
- first = false;
- }
-
- if (d_val != 0)
- {
- if (!first)
- putchar_unlocked (' ');
- printf ("%#0*" PRIx64, class == ELFCLASS32 ? 10 : 18, d_val);
- }
-
- putchar_unlocked ('\n');
-}
-
-
-static void
-print_dt_flags (int class, GElf_Xword d_val)
-{
- print_flags (class, d_val, dt_flags, ndt_flags);
-}
-
-
-static void
-print_dt_flags_1 (int class, GElf_Xword d_val)
-{
- print_flags (class, d_val, dt_flags_1, ndt_flags_1);
-}
-
-
-static void
-print_dt_feature_1 (int class, GElf_Xword d_val)
-{
- print_flags (class, d_val, dt_feature_1, ndt_feature_1);
-}
-
-
-static void
-print_dt_posflag_1 (int class, GElf_Xword d_val)
-{
- print_flags (class, d_val, dt_posflag_1, ndt_posflag_1);
-}
-
-
-static void
-handle_dynamic (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
-{
- int class = gelf_getclass (ebl->elf);
- GElf_Shdr glink;
- Elf_Data *data;
- size_t cnt;
- size_t shstrndx;
-
- /* Get the data of the section. */
- data = elf_getdata (scn, NULL);
- if (data == NULL)
- return;
-
- /* Get the section header string table index. */
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- printf (ngettext ("\
-\nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
- "\
-\nDynamic segment contains %lu entries:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
- shdr->sh_size / shdr->sh_entsize),
- (unsigned long int) (shdr->sh_size / shdr->sh_entsize),
- class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
- shdr->sh_offset,
- (int) shdr->sh_link,
- elf_strptr (ebl->elf, shstrndx,
- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
- &glink)->sh_name));
- fputs_unlocked (gettext (" Type Value\n"), stdout);
-
- for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
- {
- char buf[64];
- GElf_Dyn dynmem;
- GElf_Dyn *dyn;
-
- dyn = gelf_getdyn (data, cnt, &dynmem);
- if (dyn == NULL)
- break;
-
- printf (" %-17s ",
- ebl_dynamic_tag_name (ebl, dyn->d_tag, buf, sizeof (buf)));
-
- switch (dyn->d_tag)
- {
- case DT_NULL:
- case DT_DEBUG:
- case DT_BIND_NOW:
- case DT_TEXTREL:
- /* No further output. */
- fputc ('\n', stdout);
- break;
-
- case DT_NEEDED:
- printf (gettext ("Shared library: [%s]\n"),
- elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val));
- break;
-
- case DT_SONAME:
- printf (gettext ("Library soname: [%s]\n"),
- elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val));
- break;
-
- case DT_RPATH:
- printf (gettext ("Library rpath: [%s]\n"),
- elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val));
- break;
-
- case DT_RUNPATH:
- printf (gettext ("Library runpath: [%s]\n"),
- elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val));
- break;
-
- case DT_PLTRELSZ:
- case DT_RELASZ:
- case DT_STRSZ:
- case DT_RELSZ:
- case DT_RELAENT:
- case DT_SYMENT:
- case DT_RELENT:
- case DT_PLTPADSZ:
- case DT_MOVEENT:
- case DT_MOVESZ:
- case DT_INIT_ARRAYSZ:
- case DT_FINI_ARRAYSZ:
- case DT_SYMINSZ:
- case DT_SYMINENT:
- case DT_GNU_CONFLICTSZ:
- case DT_GNU_LIBLISTSZ:
- printf (gettext ("%" PRId64 " (bytes)\n"), dyn->d_un.d_val);
- break;
-
- case DT_VERDEFNUM:
- case DT_VERNEEDNUM:
- case DT_RELACOUNT:
- case DT_RELCOUNT:
- printf ("%" PRId64 "\n", dyn->d_un.d_val);
- break;
-
- case DT_PLTREL:
- puts (ebl_dynamic_tag_name (ebl, dyn->d_un.d_val, NULL, 0));
- break;
-
- case DT_FLAGS:
- print_dt_flags (class, dyn->d_un.d_val);
- break;
-
- case DT_FLAGS_1:
- print_dt_flags_1 (class, dyn->d_un.d_val);
- break;
-
- case DT_FEATURE_1:
- print_dt_feature_1 (class, dyn->d_un.d_val);
- break;
-
- case DT_POSFLAG_1:
- print_dt_posflag_1 (class, dyn->d_un.d_val);
- break;
-
- default:
- printf ("%#0*" PRIx64 "\n",
- class == ELFCLASS32 ? 10 : 18, dyn->d_un.d_val);
- break;
- }
- }
-}
-
-
-/* Print the dynamic segment. */
-static void
-print_dynamic (Ebl *ebl, GElf_Ehdr *ehdr)
-{
- /* Find all relocation sections and handle them. */
- Elf_Scn *scn = NULL;
-
- while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
- {
- /* Handle the section if it is a symbol table. */
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-
- if (shdr != NULL && shdr->sh_type == SHT_DYNAMIC)
- {
- handle_dynamic (ebl, ehdr, scn, shdr);
- break;
- }
- }
-}
-
-
-/* Print relocations. */
-static void
-print_relocs (Ebl *ebl, GElf_Ehdr *ehdr)
-{
- /* Find all relocation sections and handle them. */
- Elf_Scn *scn = NULL;
-
- while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
- {
- /* Handle the section if it is a symbol table. */
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-
- if (shdr != NULL)
- {
- if (shdr->sh_type == SHT_REL)
- handle_relocs_rel (ebl, ehdr, scn, shdr);
- else if (shdr->sh_type == SHT_RELA)
- handle_relocs_rela (ebl, ehdr, scn, shdr);
- }
- }
-}
-
-
-/* Handle a relocation section. */
-static void
-handle_relocs_rel (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
-{
- int class = gelf_getclass (ebl->elf);
- int nentries = shdr->sh_size / shdr->sh_entsize;
- int cnt;
- Elf_Data *data;
- Elf_Scn *symscn;
- GElf_Shdr symshdr_mem;
- GElf_Shdr *symshdr;
- Elf_Data *symdata;
- GElf_Shdr destshdr_mem;
- GElf_Shdr *destshdr;
- Elf_Scn *xndxscn;
- Elf_Data *xndxdata = NULL;
- size_t shstrndx;
-
- /* Get the data of the section. */
- data = elf_getdata (scn, NULL);
- if (data == NULL)
- return;
-
- /* Get the symbol table information. */
- symscn = elf_getscn (ebl->elf, shdr->sh_link);
- symshdr = gelf_getshdr (symscn, &symshdr_mem);
- symdata = elf_getdata (symscn, NULL);
-
- /* Get the section header of the section the relocations are for. */
- destshdr = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_info),
- &destshdr_mem);
-
- if (symshdr == NULL || symdata == NULL || destshdr == NULL)
- {
- printf (gettext ("\nInvalid symbol table at offset %#0" PRIx64 "\n"),
- shdr->sh_offset);
- return;
- }
-
- /* Search for the optional extended section index table. */
- xndxscn = NULL;
- while ((xndxscn = elf_nextscn (ebl->elf, xndxscn)) != NULL)
- {
- GElf_Shdr xndxshdr_mem;
- GElf_Shdr *xndxshdr;
-
- xndxshdr = gelf_getshdr (xndxscn, &xndxshdr_mem);
- if (xndxshdr != NULL && xndxshdr->sh_type == SHT_SYMTAB_SHNDX
- && xndxshdr->sh_link == elf_ndxscn (symscn))
- {
- /* Found it. */
- xndxdata = elf_getdata (xndxscn, NULL);
- break;
- }
- }
-
- /* Get the section header string table index. */
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- if (shdr->sh_info != 0)
- printf (ngettext ("\
-\nRelocation section [%2u] '%s' for section [%2u] '%s' at offset %#0" PRIx64 " contains %d entry:\n",
- "\
-\nRelocation section [%2u] '%s' for section [%2u] '%s' at offset %#0" PRIx64 " contains %d entries:\n",
- nentries),
- (unsigned int) elf_ndxscn (scn),
- elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
- (unsigned int) shdr->sh_info,
- elf_strptr (ebl->elf, shstrndx, destshdr->sh_name),
- shdr->sh_offset,
- nentries);
- else
- /* The .rel.dyn section does not refer to a specific section but
- instead of section index zero. Do not try to print a section
- name. */
- printf (ngettext ("\
-\nRelocation section [%2u] '%s' at offset %#0" PRIx64 " contains %d entry:\n",
- "\
-\nRelocation section [%2u] '%s' at offset %#0" PRIx64 " contains %d entries:\n",
- nentries),
- (unsigned int) elf_ndxscn (scn),
- elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
- shdr->sh_offset,
- nentries);
- fputs_unlocked (class == ELFCLASS32
- ? gettext ("\
- Offset Type Value Name\n")
- : gettext ("\
- Offset Type Value Name\n"),
- stdout);
-
- for (cnt = 0; cnt < nentries; ++cnt)
- {
- GElf_Rel relmem;
- GElf_Rel *rel;
-
- rel = gelf_getrel (data, cnt, &relmem);
- if (rel != NULL)
- {
- char buf[128];
- GElf_Sym symmem;
- GElf_Sym *sym;
- Elf32_Word xndx;
-
- sym = gelf_getsymshndx (symdata, xndxdata, GELF_R_SYM (rel->r_info),
- &symmem, &xndx);
- if (sym == NULL)
- printf (" %#0*" PRIx64 " %-20s <%s %ld>\n",
- class == ELFCLASS32 ? 10 : 18, rel->r_offset,
- ebl_reloc_type_check (ebl, GELF_R_TYPE (rel->r_info))
- /* Avoid the leading R_ which isn't carrying any
- information. */
- ? ebl_reloc_type_name (ebl, GELF_R_TYPE (rel->r_info),
- buf, sizeof (buf)) + 2
- : gettext ("<INVALID RELOC>"),
- gettext ("INVALID SYMBOL"),
- (long int) GELF_R_SYM (rel->r_info));
- else if (GELF_ST_TYPE (sym->st_info) != STT_SECTION)
- printf (" %#0*" PRIx64 " %-20s %#0*" PRIx64 " %s\n",
- class == ELFCLASS32 ? 10 : 18, rel->r_offset,
- ebl_reloc_type_check (ebl, GELF_R_TYPE (rel->r_info))
- /* Avoid the leading R_ which isn't carrying any
- information. */
- ? ebl_reloc_type_name (ebl, GELF_R_TYPE (rel->r_info),
- buf, sizeof (buf)) + 2
- : gettext ("<INVALID RELOC>"),
- class == ELFCLASS32 ? 10 : 18, sym->st_value,
- elf_strptr (ebl->elf, symshdr->sh_link, sym->st_name));
- else
- {
- destshdr = gelf_getshdr (elf_getscn (ebl->elf,
- sym->st_shndx == SHN_XINDEX
- ? xndx : sym->st_shndx),
- &destshdr_mem);
-
- if (shdr == NULL)
- printf (" %#0*" PRIx64 " %-20s <%s %ld>\n",
- class == ELFCLASS32 ? 10 : 18, rel->r_offset,
- ebl_reloc_type_check (ebl, GELF_R_TYPE (rel->r_info))
- /* Avoid the leading R_ which isn't carrying any
- information. */
- ? ebl_reloc_type_name (ebl, GELF_R_TYPE (rel->r_info),
- buf, sizeof (buf)) + 2
- : gettext ("<INVALID RELOC>"),
- gettext ("INVALID SECTION"),
- (long int) (sym->st_shndx == SHN_XINDEX
- ? xndx : sym->st_shndx));
- else
- printf (" %#0*" PRIx64 " %-20s %#0*" PRIx64 " %s\n",
- class == ELFCLASS32 ? 10 : 18, rel->r_offset,
- ebl_reloc_type_check (ebl, GELF_R_TYPE (rel->r_info))
- /* Avoid the leading R_ which isn't carrying any
- information. */
- ? ebl_reloc_type_name (ebl, GELF_R_TYPE (rel->r_info),
- buf, sizeof (buf)) + 2
- : gettext ("<INVALID RELOC>"),
- class == ELFCLASS32 ? 10 : 18, sym->st_value,
- elf_strptr (ebl->elf, shstrndx, destshdr->sh_name));
- }
- }
- }
-}
-
-
-/* Handle a relocation section. */
-static void
-handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
-{
- int class = gelf_getclass (ebl->elf);
- int nentries = shdr->sh_size / shdr->sh_entsize;
-
- /* Get the data of the section. */
- Elf_Data *data = elf_getdata (scn, NULL);
- if (data == NULL)
- return;
-
- /* Get the symbol table information. */
- Elf_Scn *symscn = elf_getscn (ebl->elf, shdr->sh_link);
- GElf_Shdr symshdr_mem;
- GElf_Shdr *symshdr = gelf_getshdr (symscn, &symshdr_mem);
- Elf_Data *symdata = elf_getdata (symscn, NULL);
-
- /* Get the section header of the section the relocations are for. */
- GElf_Shdr destshdr_mem;
- GElf_Shdr *destshdr = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_info),
- &destshdr_mem);
-
- if (symshdr == NULL || symdata == NULL || destshdr == NULL)
- {
- printf (gettext ("\nInvalid symbol table at offset %#0" PRIx64 "\n"),
- shdr->sh_offset);
- return;
- }
-
- /* Search for the optional extended section index table. */
- Elf_Data *xndxdata = NULL;
- Elf_Scn *xndxscn = NULL;
- while ((xndxscn = elf_nextscn (ebl->elf, xndxscn)) != NULL)
- {
- GElf_Shdr xndxshdr_mem;
- GElf_Shdr *xndxshdr;
-
- xndxshdr = gelf_getshdr (xndxscn, &xndxshdr_mem);
- if (xndxshdr != NULL && xndxshdr->sh_type == SHT_SYMTAB_SHNDX
- && xndxshdr->sh_link == elf_ndxscn (symscn))
- {
- /* Found it. */
- xndxdata = elf_getdata (xndxscn, NULL);
- break;
- }
- }
-
- /* Get the section header string table index. */
- size_t shstrndx;
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- printf (ngettext ("\
-\nRelocation section [%2zu] '%s' for section [%2u] '%s' at offset %#0" PRIx64 " contains %d entry:\n",
- "\
-\nRelocation section [%2zu] '%s' for section [%2u] '%s' at offset %#0" PRIx64 " contains %d entries:\n",
- nentries),
- elf_ndxscn (scn),
- elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
- (unsigned int) shdr->sh_info,
- elf_strptr (ebl->elf, shstrndx, destshdr->sh_name),
- shdr->sh_offset,
- nentries);
- fputs_unlocked (class == ELFCLASS32
- ? gettext ("\
- Offset Type Value Addend Name\n")
- : gettext ("\
- Offset Type Value Addend Name\n"),
- stdout);
-
- for (int cnt = 0; cnt < nentries; ++cnt)
- {
- GElf_Rela relmem;
- GElf_Rela *rel = gelf_getrela (data, cnt, &relmem);
- if (rel != NULL)
- {
- char buf[64];
- GElf_Sym symmem;
- GElf_Sym *sym;
- Elf32_Word xndx;
-
- sym = gelf_getsymshndx (symdata, xndxdata, GELF_R_SYM (rel->r_info),
- &symmem, &xndx);
-
- if (sym == NULL)
- printf (" %#0*" PRIx64 " %-15s <%s %ld>\n",
- class == ELFCLASS32 ? 10 : 18, rel->r_offset,
- ebl_reloc_type_check (ebl, GELF_R_TYPE (rel->r_info))
- /* Avoid the leading R_ which isn't carrying any
- information. */
- ? ebl_reloc_type_name (ebl, GELF_R_TYPE (rel->r_info),
- buf, sizeof (buf)) + 2
- : gettext ("<INVALID RELOC>"),
- gettext ("INVALID SYMBOL"),
- (long int) GELF_R_SYM (rel->r_info));
- else if (GELF_ST_TYPE (sym->st_info) != STT_SECTION)
- printf ("\
- %#0*" PRIx64 " %-15s %#0*" PRIx64 " +%5" PRId64 " %s\n",
- class == ELFCLASS32 ? 10 : 18, rel->r_offset,
- ebl_reloc_type_check (ebl, GELF_R_TYPE (rel->r_info))
- /* Avoid the leading R_ which isn't carrying any
- information. */
- ? ebl_reloc_type_name (ebl, GELF_R_TYPE (rel->r_info),
- buf, sizeof (buf)) + 2
- : gettext ("<INVALID RELOC>"),
- class == ELFCLASS32 ? 10 : 18, sym->st_value,
- rel->r_addend,
- elf_strptr (ebl->elf, symshdr->sh_link, sym->st_name));
- else
- {
- destshdr = gelf_getshdr (elf_getscn (ebl->elf,
- sym->st_shndx == SHN_XINDEX
- ? xndx : sym->st_shndx),
- &destshdr_mem);
-
- if (shdr == NULL)
- printf (" %#0*" PRIx64 " %-15s <%s %ld>\n",
- class == ELFCLASS32 ? 10 : 18, rel->r_offset,
- ebl_reloc_type_check (ebl, GELF_R_TYPE (rel->r_info))
- /* Avoid the leading R_ which isn't carrying any
- information. */
- ? ebl_reloc_type_name (ebl, GELF_R_TYPE (rel->r_info),
- buf, sizeof (buf)) + 2
- : gettext ("<INVALID RELOC>"),
- gettext ("INVALID SECTION"),
- (long int) (sym->st_shndx == SHN_XINDEX
- ? xndx : sym->st_shndx));
- else
- printf ("\
- %#0*" PRIx64 " %-15s %#0*" PRIx64 " +%5" PRId64 " %s\n",
- class == ELFCLASS32 ? 10 : 18, rel->r_offset,
- ebl_reloc_type_check (ebl, GELF_R_TYPE (rel->r_info))
- /* Avoid the leading R_ which isn't carrying any
- information. */
- ? ebl_reloc_type_name (ebl, GELF_R_TYPE (rel->r_info),
- buf, sizeof (buf)) + 2
- : gettext ("<INVALID RELOC>"),
- class == ELFCLASS32 ? 10 : 18, sym->st_value,
- rel->r_addend,
- elf_strptr (ebl->elf, shstrndx, destshdr->sh_name));
- }
- }
- }
-}
-
-
-/* Print the program header. */
-static void
-print_symtab (Ebl *ebl, GElf_Ehdr *ehdr, int type)
-{
- /* Find the symbol table(s). For this we have to search through the
- section table. */
- Elf_Scn *scn = NULL;
-
- while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
- {
- /* Handle the section if it is a symbol table. */
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-
- if (shdr != NULL && shdr->sh_type == (GElf_Word) type)
- handle_symtab (ebl, ehdr, scn, shdr);
- }
-}
-
-
-static void
-handle_symtab (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
-{
- Elf_Data *versym_data = NULL;
- Elf_Data *verneed_data = NULL;
- Elf_Data *verdef_data = NULL;
- Elf_Data *xndx_data = NULL;
- Elf_Scn *runscn;
- Elf_Data *data;
- int class = gelf_getclass (ebl->elf);
- unsigned int nsyms;
- unsigned int cnt;
- Elf32_Word verneed_stridx = 0;
- Elf32_Word verdef_stridx = 0;
- GElf_Shdr glink;
- size_t shstrndx;
-
- /* Get the data of the section. */
- data = elf_getdata (scn, NULL);
- if (data == NULL)
- return;
-
- /* Find out whether we have other sections we might need. */
- runscn = NULL;
- while ((runscn = elf_nextscn (ebl->elf, runscn)) != NULL)
- {
- GElf_Shdr runshdr_mem;
- GElf_Shdr *runshdr = gelf_getshdr (runscn, &runshdr_mem);
-
- if (runshdr != NULL)
- {
- if (runshdr->sh_type == SHT_GNU_versym
- && runshdr->sh_link == elf_ndxscn (scn))
- /* Bingo, found the version information. Now get the data. */
- versym_data = elf_getdata (runscn, NULL);
- else if (runshdr->sh_type == SHT_GNU_verneed)
- {
- /* This is the information about the needed versions. */
- verneed_data = elf_getdata (runscn, NULL);
- verneed_stridx = runshdr->sh_link;
- }
- else if (runshdr->sh_type == SHT_GNU_verdef)
- {
- /* This is the information about the defined versions. */
- verdef_data = elf_getdata (runscn, NULL);
- verdef_stridx = runshdr->sh_link;
- }
- else if (runshdr->sh_type == SHT_SYMTAB_SHNDX
- && runshdr->sh_link == elf_ndxscn (scn))
- /* Extended section index. */
- xndx_data = elf_getdata (runscn, NULL);
- }
- }
-
- /* Get the section header string table index. */
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- /* Now we can compute the number of entries in the section. */
- nsyms = data->d_size / (class == ELFCLASS32
- ? sizeof (Elf32_Sym) : sizeof (Elf64_Sym));
-
- printf (ngettext ("\nSymbol table [%2u] '%s' contains %u entry:\n",
- "\nSymbol table [%2u] '%s' contains %u entries:\n",
- nsyms),
- (unsigned int) elf_ndxscn (scn),
- elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms);
- printf (ngettext (" %lu local symbol String table: [%2u] '%s'\n",
- " %lu local symbols String table: [%2u] '%s'\n",
- shdr->sh_info),
- (unsigned long int) shdr->sh_info,
- (unsigned int) shdr->sh_link,
- elf_strptr (ebl->elf, shstrndx,
- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
- &glink)->sh_name));
-
- fputs_unlocked (class == ELFCLASS32
- ? gettext ("\
- Num: Value Size Type Bind Vis Ndx Name\n")
- : gettext ("\
- Num: Value Size Type Bind Vis Ndx Name\n"),
- stdout);
-
- for (cnt = 0; cnt < nsyms; ++cnt)
- {
- char typebuf[64];
- char bindbuf[64];
- char scnbuf[64];
- Elf32_Word xndx;
- GElf_Sym sym_mem;
- GElf_Sym *sym = gelf_getsymshndx (data, xndx_data, cnt, &sym_mem, &xndx);
-
- if (sym == NULL)
- continue;
-
- /* Determine the real section index. */
- if (sym->st_shndx != SHN_XINDEX)
- xndx = sym->st_shndx;
-
- printf (gettext ("\
-%5u: %0*" PRIx64 " %6" PRId64 " %-7s %-6s %-9s %6s %s"),
- cnt,
- class == ELFCLASS32 ? 8 : 16,
- sym->st_value,
- sym->st_size,
- ebl_symbol_type_name (ebl, GELF_ST_TYPE (sym->st_info),
- typebuf, sizeof (typebuf)),
- ebl_symbol_binding_name (ebl, GELF_ST_BIND (sym->st_info),
- bindbuf, sizeof (bindbuf)),
- get_visibility_type (GELF_ST_VISIBILITY (sym->st_other)),
- ebl_section_name (ebl, sym->st_shndx, xndx, scnbuf,
- sizeof (scnbuf), NULL, shnum),
- elf_strptr (ebl->elf, shdr->sh_link, sym->st_name));
-
- if (versym_data != NULL)
- {
- /* Get the version information. */
- GElf_Versym versym_mem;
- GElf_Versym *versym;
-
- versym = gelf_getversym (versym_data, cnt, &versym_mem);
-
- if (versym != NULL && ((*versym & 0x8000) != 0 || *versym > 1))
- {
- bool is_nobits = false;
- bool check_def = xndx != SHN_UNDEF;
-
- if (xndx < SHN_LORESERVE || sym->st_shndx == SHN_XINDEX)
- {
- GElf_Shdr symshdr_mem;
- GElf_Shdr *symshdr =
- gelf_getshdr (elf_getscn (ebl->elf, xndx), &symshdr_mem);
-
- is_nobits = (symshdr != NULL
- && symshdr->sh_type == SHT_NOBITS);
- }
-
- if (is_nobits || ! check_def)
- {
- /* We must test both. */
- GElf_Verneed verneed_mem;
- GElf_Verneed *verneed;
- GElf_Vernaux vernaux_mem;
- GElf_Vernaux *vernaux = NULL;
- size_t vn_offset = 0;
-
- verneed = gelf_getverneed (verneed_data, 0, &verneed_mem);
- while (verneed != NULL)
- {
- size_t vna_offset = vn_offset;
-
- vernaux = gelf_getvernaux (verneed_data,
- vna_offset += verneed->vn_aux,
- &vernaux_mem);
- while (vernaux != NULL
- && vernaux->vna_other != *versym
- && vernaux->vna_next != 0)
- {
- /* Update the offset. */
- vna_offset += vernaux->vna_next;
-
- vernaux = (vernaux->vna_next == 0
- ? NULL
- : gelf_getvernaux (verneed_data,
- vna_offset,
- &vernaux_mem));
- }
-
- /* Check whether we found the version. */
- if (vernaux != NULL && vernaux->vna_other == *versym)
- /* Found it. */
- break;
-
- vn_offset += verneed->vn_next;
- verneed = (verneed->vn_next == 0
- ? NULL
- : gelf_getverneed (verneed_data, vn_offset,
- &verneed_mem));
- }
-
- if (vernaux != NULL && vernaux->vna_other == *versym)
- {
- printf ("@%s (%u)",
- elf_strptr (ebl->elf, verneed_stridx,
- vernaux->vna_name),
- (unsigned int) vernaux->vna_other);
- check_def = 0;
- }
- else if (! is_nobits)
- error (0, 0, gettext ("bad dynamic symbol"));
- else
- check_def = 1;
- }
-
- if (check_def && *versym != 0x8001)
- {
- /* We must test both. */
- GElf_Verdef verdef_mem;
- GElf_Verdef *verdef;
- size_t vd_offset = 0;
-
- verdef = gelf_getverdef (verdef_data, 0, &verdef_mem);
- while (verdef != NULL)
- {
- if (verdef->vd_ndx == (*versym & 0x7fff))
- /* Found the definition. */
- break;
-
- vd_offset += verdef->vd_next;
- verdef = (verdef->vd_next == 0
- ? NULL
- : gelf_getverdef (verdef_data, vd_offset,
- &verdef_mem));
- }
-
- if (verdef != NULL)
- {
- GElf_Verdaux verdaux_mem;
- GElf_Verdaux *verdaux;
-
- verdaux = gelf_getverdaux (verdef_data,
- vd_offset + verdef->vd_aux,
- &verdaux_mem);
-
- if (verdaux != NULL)
- printf ((*versym & 0x8000) ? "@%s" : "@@%s",
- elf_strptr (ebl->elf, verdef_stridx,
- verdaux->vda_name));
- }
- }
- }
- }
-
- putchar ('\n');
- }
-}
-
-
-/* Print version information. */
-static void
-print_verinfo (Ebl *ebl, GElf_Ehdr *ehdr)
-{
- /* Find the version information sections. For this we have to
- search through the section table. */
- Elf_Scn *scn = NULL;
-
- while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
- {
- /* Handle the section if it is part of the versioning handling. */
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-
- if (shdr != NULL)
- {
- if (shdr->sh_type == SHT_GNU_verneed)
- handle_verneed (ebl, ehdr, scn, shdr);
- else if (shdr->sh_type == SHT_GNU_verdef)
- handle_verdef (ebl, ehdr, scn, shdr);
- else if (shdr->sh_type == SHT_GNU_versym)
- handle_versym (ebl, ehdr, scn, shdr);
- }
- }
-}
-
-
-static const char *
-get_ver_flags (unsigned int flags)
-{
- static char buf[32];
- char *endp;
-
- if (flags == 0)
- return gettext ("none");
-
- if (flags & VER_FLG_BASE)
- endp = stpcpy (buf, "BASE ");
- else
- endp = buf;
-
- if (flags & VER_FLG_WEAK)
- {
- if (endp != buf)
- endp = stpcpy (endp, "| ");
-
- endp = stpcpy (endp, "WEAK ");
- }
-
- if (flags & ~(VER_FLG_BASE | VER_FLG_WEAK))
- {
- strncpy (endp, gettext ("| <unknown>"), buf + sizeof (buf) - endp);
- buf[sizeof (buf) - 1] = '\0';
- }
-
- return buf;
-}
-
-
-static void
-handle_verneed (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
-{
- Elf_Data *data;
- int class = gelf_getclass (ebl->elf);
- GElf_Shdr glink;
- int cnt;
- unsigned int offset;
- size_t shstrndx;
-
- /* Get the data of the section. */
- data = elf_getdata (scn, NULL);
- if (data == NULL)
- return;
-
- /* Get the section header string table index. */
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- printf (ngettext ("\
-\nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
- "\
-\nVersion needs section [%2u] '%s' contains %d entries:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
- shdr->sh_info),
- (unsigned int) elf_ndxscn (scn),
- elf_strptr (ebl->elf, shstrndx, shdr->sh_name), shdr->sh_info,
- class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
- shdr->sh_offset,
- (unsigned int) shdr->sh_link,
- elf_strptr (ebl->elf, shstrndx,
- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
- &glink)->sh_name));
-
- offset = 0;
- for (cnt = shdr->sh_info; --cnt >= 0; )
- {
- GElf_Verneed needmem;
- GElf_Verneed *need;
- unsigned int auxoffset;
- int cnt2;
-
- /* Get the data at the next offset. */
- need = gelf_getverneed (data, offset, &needmem);
- if (need == NULL)
- break;
-
- printf (gettext (" %#06x: Version: %hu File: %s Cnt: %hu\n"),
- offset, (unsigned short int) need->vn_version,
- elf_strptr (ebl->elf, shdr->sh_link, need->vn_file),
- (unsigned short int) need->vn_cnt);
-
- auxoffset = offset + need->vn_aux;
- for (cnt2 = need->vn_cnt; --cnt2 >= 0; )
- {
- GElf_Vernaux auxmem;
- GElf_Vernaux *aux;
-
- aux = gelf_getvernaux (data, auxoffset, &auxmem);
- if (aux == NULL)
- break;
-
- printf (gettext (" %#06x: Name: %s Flags: %s Version: %hu\n"),
- auxoffset,
- elf_strptr (ebl->elf, shdr->sh_link, aux->vna_name),
- get_ver_flags (aux->vna_flags),
- (unsigned short int) aux->vna_other);
-
- auxoffset += aux->vna_next;
- }
-
- /* Find the next offset. */
- offset += need->vn_next;
- }
-}
-
-
-static void
-handle_verdef (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
-{
- Elf_Data *data;
- int class = gelf_getclass (ebl->elf);
- GElf_Shdr glink;
- int cnt;
- unsigned int offset;
- size_t shstrndx;
-
- /* Get the data of the section. */
- data = elf_getdata (scn, NULL);
- if (data == NULL)
- return;
-
- /* Get the section header string table index. */
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- printf (ngettext ("\
-\nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
- "\
-\nVersion definition section [%2u] '%s' contains %d entries:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
- shdr->sh_info),
- (unsigned int) elf_ndxscn (scn),
- elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
- shdr->sh_info,
- class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
- shdr->sh_offset,
- (unsigned int) shdr->sh_link,
- elf_strptr (ebl->elf, shstrndx,
- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
- &glink)->sh_name));
-
- offset = 0;
- for (cnt = shdr->sh_info; --cnt >= 0; )
- {
- GElf_Verdef defmem;
- GElf_Verdef *def;
- GElf_Verdaux auxmem;
- GElf_Verdaux *aux;
- unsigned int auxoffset;
- int cnt2;
-
- /* Get the data at the next offset. */
- def = gelf_getverdef (data, offset, &defmem);
- if (def == NULL)
- break;
-
- auxoffset = offset + def->vd_aux;
- aux = gelf_getverdaux (data, auxoffset, &auxmem);
- if (aux == NULL)
- break;
-
- printf (gettext ("\
- %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n"),
- offset, def->vd_version,
- get_ver_flags (def->vd_flags),
- def->vd_ndx,
- def->vd_cnt,
- elf_strptr (ebl->elf, shdr->sh_link, aux->vda_name));
-
- auxoffset += aux->vda_next;
- for (cnt2 = 1; cnt2 < def->vd_cnt; ++cnt2)
- {
- aux = gelf_getverdaux (data, auxoffset, &auxmem);
- if (aux == NULL)
- break;
-
- printf (gettext (" %#06x: Parent %d: %s\n"),
- auxoffset, cnt2,
- elf_strptr (ebl->elf, shdr->sh_link, aux->vda_name));
-
- auxoffset += aux->vda_next;
- }
-
- /* Find the next offset. */
- offset += def->vd_next;
- }
-}
-
-
-static void
-handle_versym (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
-{
- Elf_Data *data;
- int class = gelf_getclass (ebl->elf);
- Elf_Scn *verscn;
- GElf_Shdr glink;
- Elf_Scn *defscn;
- Elf_Scn *needscn;
- const char **vername;
- const char **filename;
- size_t nvername;
- unsigned int cnt;
- size_t shstrndx;
-
- /* Get the data of the section. */
- data = elf_getdata (scn, NULL);
- if (data == NULL)
- return;
-
- /* Get the section header string table index. */
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- /* We have to find the version definition section and extract the
- version names. */
- defscn = NULL;
- needscn = NULL;
-
- verscn = NULL;
- while ((verscn = elf_nextscn (ebl->elf, verscn)) != NULL)
- {
- GElf_Shdr vershdr_mem;
- GElf_Shdr *vershdr = gelf_getshdr (verscn, &vershdr_mem);
-
- if (vershdr != NULL)
- {
- if (vershdr->sh_type == SHT_GNU_verdef)
- defscn = verscn;
- else if (vershdr->sh_type == SHT_GNU_verneed)
- needscn = verscn;
- }
- }
-
- if (defscn != NULL || needscn != NULL)
- {
- /* We have a version information (better should have). Now get
- the version names. First find the maximum version number. */
- nvername = 0;
- if (defscn != NULL)
- {
- /* Run through the version definitions and find the highest
- index. */
- unsigned int offset = 0;
- Elf_Data *defdata;
- GElf_Shdr defshdrmem;
- GElf_Shdr *defshdr;
-
- defdata = elf_getdata (defscn, NULL);
- if (defdata == NULL)
- return;
-
- defshdr = gelf_getshdr (defscn, &defshdrmem);
- if (defshdr == NULL)
- return;
-
- for (cnt = 0; cnt < defshdr->sh_info; ++cnt)
- {
- GElf_Verdef defmem;
- GElf_Verdef *def;
-
- /* Get the data at the next offset. */
- def = gelf_getverdef (defdata, offset, &defmem);
- if (def == NULL)
- break;
-
- nvername = MAX (nvername, (size_t) (def->vd_ndx & 0x7fff));
-
- offset += def->vd_next;
- }
- }
- if (needscn != NULL)
- {
- unsigned int offset = 0;
- Elf_Data *needdata;
- GElf_Shdr needshdrmem;
- GElf_Shdr *needshdr;
-
- needdata = elf_getdata (needscn, NULL);
- if (needdata == NULL)
- return;
-
- needshdr = gelf_getshdr (needscn, &needshdrmem);
- if (needshdr == NULL)
- return;
-
- for (cnt = 0; cnt < needshdr->sh_info; ++cnt)
- {
- GElf_Verneed needmem;
- GElf_Verneed *need;
- unsigned int auxoffset;
- int cnt2;
-
- /* Get the data at the next offset. */
- need = gelf_getverneed (needdata, offset, &needmem);
- if (need == NULL)
- break;
-
- /* Run through the auxiliary entries. */
- auxoffset = offset + need->vn_aux;
- for (cnt2 = need->vn_cnt; --cnt2 >= 0; )
- {
- GElf_Vernaux auxmem;
- GElf_Vernaux *aux;
-
- aux = gelf_getvernaux (needdata, auxoffset, &auxmem);
- if (aux == NULL)
- break;
-
- nvername = MAX (nvername,
- (size_t) (aux->vna_other & 0x7fff));
-
- auxoffset += aux->vna_next;
- }
-
- offset += need->vn_next;
- }
- }
-
- /* This is the number of versions we know about. */
- ++nvername;
-
- /* Allocate the array. */
- vername = (const char **) alloca (nvername * sizeof (const char *));
- filename = (const char **) alloca (nvername * sizeof (const char *));
-
- /* Run through the data structures again and collect the strings. */
- if (defscn != NULL)
- {
- /* Run through the version definitions and find the highest
- index. */
- unsigned int offset = 0;
- Elf_Data *defdata;
- GElf_Shdr defshdrmem;
- GElf_Shdr *defshdr;
-
- defdata = elf_getdata (defscn, NULL);
- if (defdata == NULL)
- return;
-
- defshdr = gelf_getshdr (defscn, &defshdrmem);
- if (defshdr == NULL)
- return;
-
- for (cnt = 0; cnt < defshdr->sh_info; ++cnt)
- {
- GElf_Verdef defmem;
- GElf_Verdef *def;
- GElf_Verdaux auxmem;
- GElf_Verdaux *aux;
-
- /* Get the data at the next offset. */
- def = gelf_getverdef (defdata, offset, &defmem);
- if (def == NULL)
- break;
-
- aux = gelf_getverdaux (defdata, offset + def->vd_aux, &auxmem);
- if (aux == NULL)
- break;
-
- vername[def->vd_ndx & 0x7fff]
- = elf_strptr (ebl->elf, defshdr->sh_link, aux->vda_name);
- filename[def->vd_ndx & 0x7fff] = NULL;
-
- offset += def->vd_next;
- }
- }
- if (needscn != NULL)
- {
- unsigned int offset = 0;
- Elf_Data *needdata;
- GElf_Shdr needshdrmem;
- GElf_Shdr *needshdr;
-
- needdata = elf_getdata (needscn, NULL);
- if (needdata == NULL)
- return;
-
- needshdr = gelf_getshdr (needscn, &needshdrmem);
- if (needshdr == NULL)
- return;
-
- for (cnt = 0; cnt < needshdr->sh_info; ++cnt)
- {
- GElf_Verneed needmem;
- GElf_Verneed *need;
- unsigned int auxoffset;
- int cnt2;
-
- /* Get the data at the next offset. */
- need = gelf_getverneed (needdata, offset, &needmem);
- if (need == NULL)
- break;
-
- /* Run through the auxiliary entries. */
- auxoffset = offset + need->vn_aux;
- for (cnt2 = need->vn_cnt; --cnt2 >= 0; )
- {
- GElf_Vernaux auxmem;
- GElf_Vernaux *aux;
-
- aux = gelf_getvernaux (needdata, auxoffset, &auxmem);
- if (aux == NULL)
- break;
-
- vername[aux->vna_other & 0x7fff]
- = elf_strptr (ebl->elf, needshdr->sh_link, aux->vna_name);
- filename[aux->vna_other & 0x7fff]
- = elf_strptr (ebl->elf, needshdr->sh_link, need->vn_file);
-
- auxoffset += aux->vna_next;
- }
-
- offset += need->vn_next;
- }
- }
- }
- else
- {
- vername = NULL;
- nvername = 1;
- filename = NULL;
- }
-
- /* Print the header. */
- printf (ngettext ("\
-\nVersion symbols section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'",
- "\
-\nVersion symbols section [%2u] '%s' contains %d entries:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'",
- shdr->sh_size / shdr->sh_entsize),
- (unsigned int) elf_ndxscn (scn),
- elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
- (int) (shdr->sh_size / shdr->sh_entsize),
- class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
- shdr->sh_offset,
- (unsigned int) shdr->sh_link,
- elf_strptr (ebl->elf, shstrndx,
- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
- &glink)->sh_name));
-
- /* Now we can finally look at the actual contents of this section. */
- for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
- {
- GElf_Versym symmem;
- GElf_Versym *sym;
- ssize_t n;
-
- if (cnt % 2 == 0)
- printf ("\n %4d:", cnt);
-
- sym = gelf_getversym (data, cnt, &symmem);
- if (sym == NULL)
- break;
-
- switch (*sym)
- {
- case 0:
- fputs_unlocked (gettext (" 0 *local* "),
- stdout);
- break;
-
- case 1:
- fputs_unlocked (gettext (" 1 *global* "),
- stdout);
- break;
-
- default:
- n = printf ("%4d%c%s",
- *sym & 0x7fff, *sym & 0x8000 ? 'h' : ' ',
- (unsigned int) (*sym & 0x7fff) < nvername
- ? vername[*sym & 0x7fff] : "???");
- if ((unsigned int) (*sym & 0x7fff) < nvername
- && filename[*sym & 0x7fff] != NULL)
- n += printf ("(%s)", filename[*sym & 0x7fff]);
- printf ("%*s", MAX (0, 33 - (int) n), " ");
- break;
- }
- }
- putchar ('\n');
-}
-
-
-static void
-handle_hash (Ebl *ebl, GElf_Ehdr *ehdr)
-{
- /* Find the symbol table(s). For this we have to search through the
- section table. */
- Elf_Scn *scn = NULL;
- size_t shstrndx;
-
- /* Get the section header string table index. */
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
- {
- /* Handle the section if it is a symbol table. */
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-
- if (shdr != NULL && shdr->sh_type == SHT_HASH)
- {
- Elf_Data *data = elf_getdata (scn, NULL);
- Elf32_Word nbucket;
- Elf32_Word nchain;
- Elf32_Word *bucket;
- Elf32_Word *chain;
- uint32_t *lengths;
- uint32_t *counts;
- Elf32_Word cnt;
- Elf32_Word maxlength = 0;
- Elf32_Word nsyms = 0;
- uint64_t nzero_counts = 0;
- GElf_Shdr glink;
-
- if (data == NULL)
- {
- error (0, 0, gettext ("cannot get data for section %d: %s"),
- (int) elf_ndxscn (scn), elf_errmsg (-1));
- continue;
- }
-
- nbucket = ((Elf32_Word *) data->d_buf)[0];
- nchain = ((Elf32_Word *) data->d_buf)[1];
- bucket = &((Elf32_Word *) data->d_buf)[2];
- chain = &((Elf32_Word *) data->d_buf)[2 + nbucket];
-
- printf (ngettext ("\
-\nHistogram for bucket list length in section [%2u] '%s' (total of %d bucket):\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
- "\
-\nHistogram for bucket list length in section [%2u] '%s' (total of %d buckets):\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
- nbucket),
- (unsigned int) elf_ndxscn (scn),
- elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
- (int) nbucket,
- gelf_getclass (ebl->elf) == ELFCLASS32 ? 10 : 18,
- shdr->sh_addr,
- shdr->sh_offset,
- (unsigned int) shdr->sh_link,
- elf_strptr (ebl->elf, shstrndx,
- gelf_getshdr (elf_getscn (ebl->elf,
- shdr->sh_link),
- &glink)->sh_name));
-
- lengths = (uint32_t *) xcalloc (nbucket, sizeof (uint32_t));
-
- for (cnt = 0; cnt < nbucket; ++cnt)
- if (bucket[cnt] != 0)
- {
- Elf32_Word inner;
-
- inner = bucket[cnt];
- while (inner > 0 && inner < nchain)
- {
- ++nsyms;
- if (maxlength < ++lengths[cnt])
- ++maxlength;
-
- inner = chain[inner];
- }
- }
-
- counts = (uint32_t *) xcalloc (maxlength + 1, sizeof (uint32_t));
-
- for (cnt = 0; cnt < nbucket; ++cnt)
- ++counts[lengths[cnt]];
-
- if (nbucket > 0)
- {
- uint64_t success = 0;
- Elf32_Word acc;
-
- puts (gettext (" Length Number % of total Coverage"));
- printf (gettext (" 0 %6" PRIu32 " %5.1f%%\n"),
- counts[0], (counts[0] * 100.0) / nbucket);
-
- for (cnt = 1; cnt <= maxlength; ++cnt)
- {
- nzero_counts += counts[cnt] * cnt;
- printf (gettext ("\
-%7d %6" PRIu32 " %5.1f%% %5.1f%%\n"),
- (int) cnt,
- counts[cnt], (counts[cnt] * 100.0) / nbucket,
- (nzero_counts * 100.0) / nsyms);
- }
-
- acc = 0;
- for (cnt = 1; cnt <= maxlength; ++cnt)
- {
- acc += cnt;
- success += counts[cnt] * acc;
- }
-
- printf (gettext ("\
- Average number of tests: successful lookup: %f\n\
- unsuccessful lookup: %f\n"),
- (double) success / (double) nzero_counts,
- (double) nzero_counts / (double) nbucket);
- }
-
- free (counts);
- free (lengths);
- }
- }
-}
-
-
-static void
-print_liblist (Ebl *ebl, GElf_Ehdr *ehdr)
-{
- /* Find the library list sections. For this we have to search
- through the section table. */
- Elf_Scn *scn = NULL;
-
- /* Get the section header string table index. */
- size_t shstrndx;
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
- {
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-
- if (shdr != NULL && shdr->sh_type == SHT_GNU_LIBLIST)
- {
- int nentries = shdr->sh_size / shdr->sh_entsize;
- printf (ngettext ("\
-\nLibrary list section [%2zu] '%s' at offset %#0" PRIx64 " contains %d entry:\n",
- "\
-\nLibrary list section [%2zu] '%s' at offset %#0" PRIx64 " contains %d entries:\n",
- nentries),
- elf_ndxscn (scn),
- elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
- shdr->sh_offset,
- nentries);
-
- Elf_Data *data = elf_getdata (scn, NULL);
- if (data == NULL)
- return;
-
- puts (gettext ("\
- Library Time Stamp Checksum Version Flags"));
-
- for (int cnt = 0; cnt < nentries; ++cnt)
- {
- GElf_Lib lib_mem;
- GElf_Lib *lib = gelf_getlib (data, cnt, &lib_mem);
- if (lib == NULL)
- continue;
-
- time_t t = (time_t) lib->l_time_stamp;
- struct tm *tm = gmtime (&t);
- if (tm == NULL)
- continue;
-
- printf (" [%2d] %-29s %04u-%02u-%02uT%02u:%02u:%02u %08x %-7u %u\n",
- cnt, elf_strptr (ebl->elf, shdr->sh_link, lib->l_name),
- tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
- tm->tm_hour, tm->tm_min, tm->tm_sec,
- (unsigned int) lib->l_checksum,
- (unsigned int) lib->l_version,
- (unsigned int) lib->l_flags);
- }
- }
- }
-}
-
-
-static const char *
-dwarf_tag_string (unsigned int tag)
-{
- static const char *known_tags[] =
- {
- [DW_TAG_array_type] = "array_type",
- [DW_TAG_class_type] = "class_type",
- [DW_TAG_entry_point] = "entry_point",
- [DW_TAG_enumeration_type] = "enumeration_type",
- [DW_TAG_formal_parameter] = "formal_parameter",
- [DW_TAG_imported_declaration] = "imported_declaration",
- [DW_TAG_label] = "label",
- [DW_TAG_lexical_block] = "lexical_block",
- [DW_TAG_member] = "member",
- [DW_TAG_pointer_type] = "pointer_type",
- [DW_TAG_reference_type] = "reference_type",
- [DW_TAG_compile_unit] = "compile_unit",
- [DW_TAG_string_type] = "string_type",
- [DW_TAG_structure_type] = "structure_type",
- [DW_TAG_subroutine_type] = "subroutine_type",
- [DW_TAG_typedef] = "typedef",
- [DW_TAG_union_type] = "union_type",
- [DW_TAG_unspecified_parameters] = "unspecified_parameters",
- [DW_TAG_variant] = "variant",
- [DW_TAG_common_block] = "common_block",
- [DW_TAG_common_inclusion] = "common_inclusion",
- [DW_TAG_inheritance] = "inheritance",
- [DW_TAG_inlined_subroutine] = "inlined_subroutine",
- [DW_TAG_module] = "module",
- [DW_TAG_ptr_to_member_type] = "ptr_to_member_type",
- [DW_TAG_set_type] = "set_type",
- [DW_TAG_subrange_type] = "subrange_type",
- [DW_TAG_with_stmt] = "with_stmt",
- [DW_TAG_access_declaration] = "access_declaration",
- [DW_TAG_base_type] = "base_type",
- [DW_TAG_catch_block] = "catch_block",
- [DW_TAG_const_type] = "const_type",
- [DW_TAG_constant] = "constant",
- [DW_TAG_enumerator] = "enumerator",
- [DW_TAG_file_type] = "file_type",
- [DW_TAG_friend] = "friend",
- [DW_TAG_namelist] = "namelist",
- [DW_TAG_namelist_item] = "namelist_item",
- [DW_TAG_packed_type] = "packed_type",
- [DW_TAG_subprogram] = "subprogram",
- [DW_TAG_template_type_param] = "template_type_param",
- [DW_TAG_template_value_param] = "template_value_param",
- [DW_TAG_thrown_type] = "thrown_type",
- [DW_TAG_try_block] = "try_block",
- [DW_TAG_variant_part] = "variant_part",
- [DW_TAG_variable] = "variable",
- [DW_TAG_volatile_type] = "volatile_type",
- };
- const unsigned int nknown_tags = (sizeof (known_tags)
- / sizeof (known_tags[0]));
- static char buf[40];
- const char *result = NULL;
-
- if (tag < nknown_tags)
- result = known_tags[tag];
-
- if (result == NULL)
- /* There are a few known extensions. */
- switch (tag)
- {
- case DW_TAG_MIPS_loop:
- result = "MIPS_loop";
- break;
-
- case DW_TAG_format_label:
- result = "format_label";
- break;
-
- case DW_TAG_function_template:
- result = "function_template";
- break;
-
- case DW_TAG_class_template:
- result = "class_template";
- break;
-
- default:
- if (tag < DW_TAG_lo_user)
- snprintf (buf, sizeof buf, gettext ("unknown tag %hx"), tag);
- else
- snprintf (buf, sizeof buf, gettext ("unknown user tag %hx"), tag);
- result = buf;
- break;
- }
-
- return result;
-}
-
-
-static const char *
-dwarf_attr_string (unsigned int attrnum)
-{
- static const char *known_attrs[] =
- {
- [DW_AT_sibling] = "sibling",
- [DW_AT_location] = "location",
- [DW_AT_name] = "name",
- [DW_AT_ordering] = "ordering",
- [DW_AT_subscr_data] = "subscr_data",
- [DW_AT_byte_size] = "byte_size",
- [DW_AT_bit_offset] = "bit_offset",
- [DW_AT_bit_size] = "bit_size",
- [DW_AT_element_list] = "element_list",
- [DW_AT_stmt_list] = "stmt_list",
- [DW_AT_low_pc] = "low_pc",
- [DW_AT_high_pc] = "high_pc",
- [DW_AT_language] = "language",
- [DW_AT_member] = "member",
- [DW_AT_discr] = "discr",
- [DW_AT_discr_value] = "discr_value",
- [DW_AT_visibility] = "visibility",
- [DW_AT_import] = "import",
- [DW_AT_string_length] = "string_length",
- [DW_AT_common_reference] = "common_reference",
- [DW_AT_comp_dir] = "comp_dir",
- [DW_AT_const_value] = "const_value",
- [DW_AT_containing_type] = "containing_type",
- [DW_AT_default_value] = "default_value",
- [DW_AT_inline] = "inline",
- [DW_AT_is_optional] = "is_optional",
- [DW_AT_lower_bound] = "lower_bound",
- [DW_AT_producer] = "producer",
- [DW_AT_prototyped] = "prototyped",
- [DW_AT_return_addr] = "return_addr",
- [DW_AT_start_scope] = "start_scope",
- [DW_AT_stride_size] = "stride_size",
- [DW_AT_upper_bound] = "upper_bound",
- [DW_AT_abstract_origin] = "abstract_origin",
- [DW_AT_accessibility] = "accessibility",
- [DW_AT_address_class] = "address_class",
- [DW_AT_artificial] = "artificial",
- [DW_AT_base_types] = "base_types",
- [DW_AT_calling_convention] = "calling_convention",
- [DW_AT_count] = "count",
- [DW_AT_data_member_location] = "data_member_location",
- [DW_AT_decl_column] = "decl_column",
- [DW_AT_decl_file] = "decl_file",
- [DW_AT_decl_line] = "decl_line",
- [DW_AT_declaration] = "declaration",
- [DW_AT_discr_list] = "discr_list",
- [DW_AT_encoding] = "encoding",
- [DW_AT_external] = "external",
- [DW_AT_frame_base] = "frame_base",
- [DW_AT_friend] = "friend",
- [DW_AT_identifier_case] = "identifier_case",
- [DW_AT_macro_info] = "macro_info",
- [DW_AT_namelist_items] = "namelist_items",
- [DW_AT_priority] = "priority",
- [DW_AT_segment] = "segment",
- [DW_AT_specification] = "specification",
- [DW_AT_static_link] = "static_link",
- [DW_AT_type] = "type",
- [DW_AT_use_location] = "use_location",
- [DW_AT_variable_parameter] = "variable_parameter",
- [DW_AT_virtuality] = "virtuality",
- [DW_AT_vtable_elem_location] = "vtable_elem_location"
- };
- const unsigned int nknown_attrs = (sizeof (known_attrs)
- / sizeof (known_attrs[0]));
- static char buf[40];
- const char *result = NULL;
-
- if (attrnum < nknown_attrs)
- result = known_attrs[attrnum];
-
- if (result == NULL)
- /* There are a few known extensions. */
- switch (attrnum)
- {
- case DW_AT_MIPS_fde:
- result = "MIPS_fde";
- break;
-
- case DW_AT_MIPS_loop_begin:
- result = "MIPS_loop_begin";
- break;
-
- case DW_AT_MIPS_tail_loop_begin:
- result = "MIPS_tail_loop_begin";
- break;
-
- case DW_AT_MIPS_epilog_begin:
- result = "MIPS_epilog_begin";
- break;
-
- case DW_AT_MIPS_loop_unroll_factor:
- result = "MIPS_loop_unroll_factor";
- break;
-
- case DW_AT_MIPS_software_pipeline_depth:
- result = "MIPS_software_pipeline_depth";
- break;
-
- case DW_AT_MIPS_linkage_name:
- result = "MIPS_linkage_name";
- break;
-
- case DW_AT_MIPS_stride:
- result = "MIPS_stride";
- break;
-
- case DW_AT_MIPS_abstract_name:
- result = "MIPS_abstract_name";
- break;
-
- case DW_AT_MIPS_clone_origin:
- result = "MIPS_clone_origin";
- break;
-
- case DW_AT_MIPS_has_inlines:
- result = "MIPS_has_inlines";
- break;
-
- case DW_AT_MIPS_stride_byte:
- result = "MIPS_stride_byte";
- break;
-
- case DW_AT_MIPS_stride_elem:
- result = "MIPS_stride_elem";
- break;
-
- case DW_AT_MIPS_ptr_dopetype:
- result = "MIPS_ptr_dopetype";
- break;
-
- case DW_AT_MIPS_allocatable_dopetype:
- result = "MIPS_allocatable_dopetype";
- break;
-
- case DW_AT_MIPS_assumed_shape_dopetype:
- result = "MIPS_assumed_shape_dopetype";
- break;
-
- case DW_AT_MIPS_assumed_size:
- result = "MIPS_assumed_size";
- break;
-
- case DW_AT_sf_names:
- result = "sf_names";
- break;
-
- case DW_AT_src_info:
- result = "src_info";
- break;
-
- case DW_AT_mac_info:
- result = "mac_info";
- break;
-
- case DW_AT_src_coords:
- result = "src_coords";
- break;
-
- case DW_AT_body_begin:
- result = "body_begin";
- break;
-
- case DW_AT_body_end:
- result = "body_end";
- break;
-
- default:
- if (attrnum < DW_AT_lo_user)
- snprintf (buf, sizeof buf, gettext ("unknown attribute %hx"),
- attrnum);
- else
- snprintf (buf, sizeof buf, gettext ("unknown user attribute %hx"),
- attrnum);
- result = buf;
- break;
- }
-
- return result;
-}
-
-
-static const char *
-dwarf_form_string (unsigned int form)
-{
- static const char *known_forms[] =
- {
- [DW_FORM_addr] = "addr",
- [DW_FORM_block2] = "block2",
- [DW_FORM_block4] = "block4",
- [DW_FORM_data2] = "data2",
- [DW_FORM_data4] = "data4",
- [DW_FORM_data8] = "data8",
- [DW_FORM_string] = "string",
- [DW_FORM_block] = "block",
- [DW_FORM_block1] = "block1",
- [DW_FORM_data1] = "data1",
- [DW_FORM_flag] = "flag",
- [DW_FORM_sdata] = "sdata",
- [DW_FORM_strp] = "strp",
- [DW_FORM_udata] = "udata",
- [DW_FORM_ref_addr] = "ref_addr",
- [DW_FORM_ref1] = "ref1",
- [DW_FORM_ref2] = "ref2",
- [DW_FORM_ref4] = "ref4",
- [DW_FORM_ref8] = "ref8",
- [DW_FORM_ref_udata] = "ref_udata",
- [DW_FORM_indirect] = "indirect"
- };
- const unsigned int nknown_forms = (sizeof (known_forms)
- / sizeof (known_forms[0]));
- static char buf[40];
- const char *result = NULL;
-
- if (form < nknown_forms)
- result = known_forms[form];
-
- if (result == NULL)
- snprintf (buf, sizeof buf, gettext ("unknown form %" PRIx64),
- (uint64_t) form);
-
- return result;
-}
-
-
-static const char *
-dwarf_lang_string (unsigned int lang)
-{
- static const char *known[] =
- {
- [DW_LANG_C89] = "ISO C89",
- [DW_LANG_C] = "C",
- [DW_LANG_Ada83] = "Ada83",
- [DW_LANG_C_plus_plus ] = "C++",
- [DW_LANG_Cobol74] = "Cobol74",
- [DW_LANG_Cobol85] = "Cobol85",
- [DW_LANG_Fortran77] = "Fortran77",
- [DW_LANG_Fortran90] = "Fortran90",
- [DW_LANG_Pascal83] = "Pascal83",
- [DW_LANG_Modula2] = "Modula2",
- [DW_LANG_Java] = "Java",
- [DW_LANG_C99] = "ISO C99",
- [DW_LANG_Ada95] = "Ada95",
- [DW_LANG_Fortran95] = "Fortran95",
- [DW_LANG_PL1] = "PL1"
- };
-
- if (lang < sizeof (known) / sizeof (known[0]))
- return known[lang];
- else if (lang == DW_LANG_Mips_Assembler)
- /* This language tag is used for assembler in general. */
- return "Assembler";
-
- if (lang >= DW_LANG_lo_user && lang <= DW_LANG_hi_user)
- {
- static char buf[100];
- snprintf (buf, sizeof (buf), "lo_user+%u", lang - DW_LANG_lo_user);
- return buf;
- }
-
- return "???";
-}
-
-
-static void
-print_ops (Dwarf *dbg, int level, unsigned int addrsize, Dwarf_Word len,
- unsigned char *data)
-{
- static const char *known[] =
- {
- [DW_OP_addr] = "addr",
- [DW_OP_deref] = "deref",
- [DW_OP_const1u] = "const1u",
- [DW_OP_const1s] = "const1s",
- [DW_OP_const2u] = "const2u",
- [DW_OP_const2s] = "const2s",
- [DW_OP_const4u] = "const4u",
- [DW_OP_const4s] = "const4s",
- [DW_OP_const8u] = "const8u",
- [DW_OP_const8s] = "const8s",
- [DW_OP_constu] = "constu",
- [DW_OP_consts] = "consts",
- [DW_OP_dup] = "dup",
- [DW_OP_drop] = "drop",
- [DW_OP_over] = "over",
- [DW_OP_pick] = "pick",
- [DW_OP_swap] = "swap",
- [DW_OP_rot] = "rot",
- [DW_OP_xderef] = "xderef",
- [DW_OP_abs] = "abs",
- [DW_OP_and] = "and",
- [DW_OP_div] = "div",
- [DW_OP_minus] = "minus",
- [DW_OP_mod] = "mod",
- [DW_OP_mul] = "mul",
- [DW_OP_neg] = "neg",
- [DW_OP_not] = "not",
- [DW_OP_or] = "or",
- [DW_OP_plus] = "plus",
- [DW_OP_plus_uconst] = "plus_uconst",
- [DW_OP_shl] = "shl",
- [DW_OP_shr] = "shr",
- [DW_OP_shra] = "shra",
- [DW_OP_xor] = "xor",
- [DW_OP_bra] = "bra",
- [DW_OP_eq] = "eq",
- [DW_OP_ge] = "ge",
- [DW_OP_gt] = "gt",
- [DW_OP_le] = "le",
- [DW_OP_lt] = "lt",
- [DW_OP_ne] = "ne",
- [DW_OP_skip] = "skip",
- [DW_OP_lit0] = "lit0",
- [DW_OP_lit1] = "lit1",
- [DW_OP_lit2] = "lit2",
- [DW_OP_lit3] = "lit3",
- [DW_OP_lit4] = "lit4",
- [DW_OP_lit5] = "lit5",
- [DW_OP_lit6] = "lit6",
- [DW_OP_lit7] = "lit7",
- [DW_OP_lit8] = "lit8",
- [DW_OP_lit9] = "lit9",
- [DW_OP_lit10] = "lit10",
- [DW_OP_lit11] = "lit11",
- [DW_OP_lit12] = "lit12",
- [DW_OP_lit13] = "lit13",
- [DW_OP_lit14] = "lit14",
- [DW_OP_lit15] = "lit15",
- [DW_OP_lit16] = "lit16",
- [DW_OP_lit17] = "lit17",
- [DW_OP_lit18] = "lit18",
- [DW_OP_lit19] = "lit19",
- [DW_OP_lit20] = "lit20",
- [DW_OP_lit21] = "lit21",
- [DW_OP_lit22] = "lit22",
- [DW_OP_lit23] = "lit23",
- [DW_OP_lit24] = "lit24",
- [DW_OP_lit25] = "lit25",
- [DW_OP_lit26] = "lit26",
- [DW_OP_lit27] = "lit27",
- [DW_OP_lit28] = "lit28",
- [DW_OP_lit29] = "lit29",
- [DW_OP_lit30] = "lit30",
- [DW_OP_lit31] = "lit31",
- [DW_OP_reg0] = "reg0",
- [DW_OP_reg1] = "reg1",
- [DW_OP_reg2] = "reg2",
- [DW_OP_reg3] = "reg3",
- [DW_OP_reg4] = "reg4",
- [DW_OP_reg5] = "reg5",
- [DW_OP_reg6] = "reg6",
- [DW_OP_reg7] = "reg7",
- [DW_OP_reg8] = "reg8",
- [DW_OP_reg9] = "reg9",
- [DW_OP_reg10] = "reg10",
- [DW_OP_reg11] = "reg11",
- [DW_OP_reg12] = "reg12",
- [DW_OP_reg13] = "reg13",
- [DW_OP_reg14] = "reg14",
- [DW_OP_reg15] = "reg15",
- [DW_OP_reg16] = "reg16",
- [DW_OP_reg17] = "reg17",
- [DW_OP_reg18] = "reg18",
- [DW_OP_reg19] = "reg19",
- [DW_OP_reg20] = "reg20",
- [DW_OP_reg21] = "reg21",
- [DW_OP_reg22] = "reg22",
- [DW_OP_reg23] = "reg23",
- [DW_OP_reg24] = "reg24",
- [DW_OP_reg25] = "reg25",
- [DW_OP_reg26] = "reg26",
- [DW_OP_reg27] = "reg27",
- [DW_OP_reg28] = "reg28",
- [DW_OP_reg29] = "reg29",
- [DW_OP_reg30] = "reg30",
- [DW_OP_reg31] = "reg31",
- [DW_OP_breg0] = "breg0",
- [DW_OP_breg1] = "breg1",
- [DW_OP_breg2] = "breg2",
- [DW_OP_breg3] = "breg3",
- [DW_OP_breg4] = "breg4",
- [DW_OP_breg5] = "breg5",
- [DW_OP_breg6] = "breg6",
- [DW_OP_breg7] = "breg7",
- [DW_OP_breg8] = "breg8",
- [DW_OP_breg9] = "breg9",
- [DW_OP_breg10] = "breg10",
- [DW_OP_breg11] = "breg11",
- [DW_OP_breg12] = "breg12",
- [DW_OP_breg13] = "breg13",
- [DW_OP_breg14] = "breg14",
- [DW_OP_breg15] = "breg15",
- [DW_OP_breg16] = "breg16",
- [DW_OP_breg17] = "breg17",
- [DW_OP_breg18] = "breg18",
- [DW_OP_breg19] = "breg19",
- [DW_OP_breg20] = "breg20",
- [DW_OP_breg21] = "breg21",
- [DW_OP_breg22] = "breg22",
- [DW_OP_breg23] = "breg23",
- [DW_OP_breg24] = "breg24",
- [DW_OP_breg25] = "breg25",
- [DW_OP_breg26] = "breg26",
- [DW_OP_breg27] = "breg27",
- [DW_OP_breg28] = "breg28",
- [DW_OP_breg29] = "breg29",
- [DW_OP_breg30] = "breg30",
- [DW_OP_breg31] = "breg31",
- [DW_OP_regx] = "regx",
- [DW_OP_fbreg] = "fbreg",
- [DW_OP_bregx] = "bregx",
- [DW_OP_piece] = "piece",
- [DW_OP_deref_size] = "deref_size",
- [DW_OP_xderef_size] = "xderef_size",
- [DW_OP_nop] = "nop",
- [DW_OP_push_object_address] = "push_object_address",
- [DW_OP_call2] = "call2",
- [DW_OP_call4] = "call4",
- [DW_OP_call_ref] = "call_ref",
- };
-
- Dwarf_Word offset = 0;
- while (len-- > 0)
- {
- size_t op = *((unsigned char *) data);
- ++data;
-
- switch (op)
- {
- case DW_OP_call_ref:
- case DW_OP_addr:;
- /* Address operand. */
- Dwarf_Word addr;
- if (addrsize == 4)
- addr = read_4ubyte_unaligned (dbg, data);
- else
- {
- assert (addrsize == 8);
- addr = read_8ubyte_unaligned (dbg, data);
- }
- data += addrsize;
- len -= addrsize;
-
- printf (" %*s [%4" PRIuMAX "] %s %" PRIuMAX "\n",
- (int) (20 + level * 2), "", (uintmax_t) offset,
- known[op] ?: "???", (uintmax_t) addr);
- offset += 1 + addrsize;
- break;
-
- case DW_OP_deref_size: /* XXX Correct? */
- case DW_OP_xderef_size: /* XXX Correct? */
- case DW_OP_pick:
- case DW_OP_const1u:
- printf (" %*s [%4" PRIuMAX "] %s %" PRIu8 "\n",
- (int) (20 + level * 2), "", (uintmax_t) offset,
- known[op] ?: "???", *((uint8_t *) data));
- ++data;
- --len;
- offset += 2;
- break;
-
- case DW_OP_const2u:
- printf (" %*s [%4" PRIuMAX "] %s %" PRIu16 "\n",
- (int) (20 + level * 2), "", (uintmax_t) offset,
- known[op] ?: "???", read_2ubyte_unaligned (dbg, data));
- len -= 2;
- data += 2;
- offset += 3;
- break;
-
- case DW_OP_const4u:
- printf (" %*s [%4" PRIuMAX "] %s %" PRIu32 "\n",
- (int) (20 + level * 2), "", (uintmax_t) offset,
- known[op] ?: "???", read_4ubyte_unaligned (dbg, data));
- len -= 4;
- data += 4;
- offset += 5;
- break;
-
- case DW_OP_const8u:
- printf (" %*s [%4" PRIuMAX "] %s %" PRIu64 "\n",
- (int) (20 + level * 2), "", (uintmax_t) offset,
- known[op] ?: "???", read_8ubyte_unaligned (dbg, data));
- len -= 8;
- data += 8;
- offset += 9;
- break;
-
- case DW_OP_const1s:
- printf (" %*s [%4" PRIuMAX "] %s %" PRId8 "\n",
- (int) (20 + level * 2), "", (uintmax_t) offset,
- known[op] ?: "???", *((int8_t *) data));
- ++data;
- --len;
- offset += 2;
- break;
-
- case DW_OP_const2s:
- printf (" %*s [%4" PRIuMAX "] %s %" PRId16 "\n",
- (int) (20 + level * 2), "", (uintmax_t) offset,
- known[op] ?: "???", read_2sbyte_unaligned (dbg, data));
- len -= 2;
- data += 2;
- offset += 3;
- break;
-
- case DW_OP_const4s:
- printf (" %*s [%4" PRIuMAX "] %s %" PRId32 "\n",
- (int) (20 + level * 2), "", (uintmax_t) offset,
- known[op] ?: "???", read_4sbyte_unaligned (dbg, data));
- len -= 4;
- data += 4;
- offset += 5;
- break;
-
- case DW_OP_const8s:
- printf (" %*s [%4" PRIuMAX "] %s %" PRId64 "\n",
- (int) (20 + level * 2), "", (uintmax_t) offset,
- known[op] ?: "???", read_8sbyte_unaligned (dbg, data));
- len -= 8;
- data += 8;
- offset += 9;
- break;
-
- case DW_OP_piece: /* XXX Correct? */
- case DW_OP_regx:
- case DW_OP_plus_uconst:
- case DW_OP_constu:;
- unsigned char *start = data;
- unsigned int uleb;
- get_uleb128 (uleb, data);
- printf (" %*s [%4" PRIuMAX "] %s %u\n",
- (int) (20 + level * 2), "", (uintmax_t) offset,
- known[op] ?: "???", uleb);
- len -= data - start;
- offset += 1 + (data - start);
- break;
-
- case DW_OP_fbreg:
- case DW_OP_breg0 ... DW_OP_breg31:
- case DW_OP_consts:
- start = data;
- unsigned int sleb;
- get_sleb128 (sleb, data);
- printf (" %*s [%4" PRIuMAX "] %s %d\n",
- (int) (20 + level * 2), "", (uintmax_t) offset,
- known[op] ?: "???", sleb);
- len -= data - start;
- offset += 1 + (data - start);
- break;
-
- case DW_OP_bregx:
- start = data;
- get_uleb128 (uleb, data);
- get_sleb128 (sleb, data);
- printf (" %*s [%4" PRIuMAX "] %s %u %d\n",
- (int) (20 + level * 2), "", (uintmax_t) offset,
- known[op] ?: "???", uleb, sleb);
- len -= data - start;
- offset += 1 + (data - start);
- break;
-
- case DW_OP_call2:
- case DW_OP_call4:
- case DW_OP_skip:
- case DW_OP_bra:
- printf (" %*s [%4" PRIuMAX "] %s %" PRIuMAX "\n",
- (int) (20 + level * 2), "", (uintmax_t) offset,
- known[op] ?: "???",
- (uintmax_t) (offset + read_2sbyte_unaligned (dbg, data)));
- len -= 2;
- data += 2;
- offset += 3;
- break;
-
- default:
- /* No Operand. */
- printf (" %*s [%4" PRIuMAX "] %s\n",
- (int) (20 + level * 2), "", (uintmax_t) offset,
- known[op] ?: "???");
- ++offset;
- break;
- }
- }
-}
-
-
-static void
-print_debug_abbrev_section (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr, Dwarf *dbg)
-{
- printf (gettext ("\nDWARF section '%s' at offset %#" PRIx64 ":\n"
- " [ Code]\n"),
- ".debug_abbrev", (uint64_t) shdr->sh_offset);
-
- Dwarf_Off offset = 0;
- while (1)
- {
- size_t length;
- Dwarf_Abbrev abbrev;
-
- if (dwarf_offabbrev (dbg, offset, &length, &abbrev) != 0)
- {
- printf (gettext (" *** error while reading abbreviation: %s\n"),
- dwarf_errmsg (-1));
- break;
- }
-
- if (length == 1)
- /* This is the NUL byte at the end of the section. */
- break;
-
- /* We know these calls can never fail. */
- unsigned int code = dwarf_getabbrevcode (&abbrev);
- unsigned int tag = dwarf_getabbrevtag (&abbrev);
- int has_children = dwarf_abbrevhaschildren (&abbrev);
-
- printf (gettext (" [%5u] offset: %" PRId64
- ", children: %s, tag: %s\n"),
- code, (int64_t) offset,
- has_children ? gettext ("yes") : gettext ("no"),
- dwarf_tag_string (tag));
-
- size_t cnt = 0;
- unsigned int name;
- unsigned int form;
- Dwarf_Off enoffset;
- while (dwarf_getabbrevattr (&abbrev, cnt, &name, &form, &enoffset) == 0)
- {
- printf (" attr: %s, form: %s, offset: %#" PRIx64 "\n",
- dwarf_attr_string (name), dwarf_form_string (form),
- (uint64_t) enoffset);
-
- ++cnt;
- }
-
- offset += length;
- }
-}
-
-
-/* Print content of DWARF .debug_aranges section. We fortunately do
- not have to know a bit about the structure of the section, libdwarf
- takes care of it. */
-static void
-print_debug_aranges_section (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr, Dwarf *dbg)
-{
- Dwarf_Aranges *aranges;
- size_t cnt;
- if (dwarf_getaranges (dbg, &aranges, &cnt) != 0)
- {
- error (0, 0, gettext ("cannot get .debug_aranges content: %s"),
- dwarf_errmsg (-1));
- return;
- }
-
- printf (ngettext ("\
-\nDWARF section '%s' at offset %#" PRIx64 " contains %zu entry:\n",
- "\
-\nDWARF section '%s' at offset %#" PRIx64 " contains %zu entries:\n",
- cnt),
- ".debug_aranges", (uint64_t) shdr->sh_offset, cnt);
-
- /* Compute floor(log16(cnt)). */
- size_t tmp = cnt;
- int digits = 1;
- while (tmp >= 16)
- {
- ++digits;
- tmp >>= 4;
- }
-
- for (size_t n = 0; n < cnt; ++n)
- {
- Dwarf_Arange *runp = dwarf_onearange (aranges, n);
- if (runp == NULL)
- {
- printf ("cannot get arange %zu: %s\n", n, dwarf_errmsg (-1));
- return;
- }
-
- Dwarf_Addr start;
- Dwarf_Word length;
- Dwarf_Off offset;
-
- if (dwarf_getarangeinfo (runp, &start, &length, &offset) != 0)
- printf (gettext (" [%*zu] ???\n"), digits, n);
- else
- printf (gettext (" [%*zu] start: %0#*" PRIx64
- ", length: %5" PRIu64 ", CU DIE offset: %6"
- PRId64 "\n"),
- digits, n, ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 10 : 18,
- (uint64_t) start, (uint64_t) length, (int64_t) offset);
- }
-}
-
-
-static void
-print_debug_frame_section (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr, Dwarf *dbg)
-{
-}
-
-
-struct attrcb_args
-{
- Dwarf *dbg;
- int level;
- unsigned int addrsize;
- Dwarf_Off cu_offset;
-};
-
-
-static int
-attr_callback (Dwarf_Attribute *attrp, void *arg)
-{
- struct attrcb_args *cbargs = (struct attrcb_args *) arg;
- const int level = cbargs->level;
-
- unsigned int attr = dwarf_whatattr (attrp);
- if (unlikely (attr == 0))
- {
- error (0, 0, gettext ("cannot get attribute code: %s"),
- dwarf_errmsg (-1));
- return DWARF_CB_ABORT;
- }
-
- unsigned int form = dwarf_whatform (attrp);
- if (unlikely (form == 0))
- {
- error (0, 0, gettext ("cannot get attribute form: %s"),
- dwarf_errmsg (-1));
- return DWARF_CB_ABORT;
- }
-
- switch (form)
- {
- case DW_FORM_addr:;
- Dwarf_Addr addr;
- if (unlikely (dwarf_formaddr (attrp, &addr) != 0))
- {
- attrval_out:
- error (0, 0, gettext ("cannot get attribute value: %s"),
- dwarf_errmsg (-1));
- return DWARF_CB_ABORT;
- }
- printf (" %*s%-20s %#0*" PRIxMAX "\n",
- (int) (level * 2), "", dwarf_attr_string (attr),
- (int) (cbargs->addrsize * 2), (uintmax_t) addr);
- break;
-
- case DW_FORM_indirect:
- case DW_FORM_strp:
- case DW_FORM_string:;
- const char *str = dwarf_formstring (attrp);
- if (unlikely (str == NULL))
- goto attrval_out;
- printf (" %*s%-20s \"%s\"\n",
- (int) (level * 2), "", dwarf_attr_string (attr), str);
- break;
-
- case DW_FORM_ref_addr:
- case DW_FORM_ref_udata:
- case DW_FORM_ref8:
- case DW_FORM_ref4:
- case DW_FORM_ref2:
- case DW_FORM_ref1:;
- Dwarf_Off ref;
- if (unlikely (dwarf_formref (attrp, &ref) != 0))
- goto attrval_out;
-
- printf (" %*s%-20s [%6" PRIxMAX "]\n",
- (int) (level * 2), "", dwarf_attr_string (attr),
- (uintmax_t) (ref + cbargs->cu_offset));
- break;
-
- case DW_FORM_udata:
- case DW_FORM_sdata:
- case DW_FORM_data8:
- case DW_FORM_data4:
- case DW_FORM_data2:
- case DW_FORM_data1:;
- Dwarf_Word num;
- if (unlikely (dwarf_formudata (attrp, &num) != 0))
- goto attrval_out;
-
- if (attr == DW_AT_language)
- {
- printf (" %*s%-20s %s (%d)\n",
- (int) (level * 2), "", dwarf_attr_string (attr),
- dwarf_lang_string (num), (int) num);
- break;
- }
-
- printf (" %*s%-20s %" PRIuMAX "\n",
- (int) (level * 2), "", dwarf_attr_string (attr),
- (uintmax_t) num);
- break;
-
- case DW_FORM_flag:;
- bool flag;
- if (unlikely (dwarf_formflag (attrp, &flag) != 0))
- goto attrval_out;
-
- printf (" %*s%-20s %s\n",
- (int) (level * 2), "", dwarf_attr_string (attr),
- nl_langinfo (flag ? YESSTR : NOSTR));
- break;
-
- case DW_FORM_block4:
- case DW_FORM_block2:
- case DW_FORM_block1:
- case DW_FORM_block:;
- Dwarf_Block block;
- if (unlikely (dwarf_formblock (attrp, &block) != 0))
- goto attrval_out;
-
- printf (" %*s%-20s %" PRIxMAX " byte block\n",
- (int) (level * 2), "", dwarf_attr_string (attr),
- (uintmax_t) block.length);
-
- if (attr == DW_AT_data_member_location)
- print_ops (cbargs->dbg, level, cbargs->addrsize, block.length,
- block.data);
- break;
-
- default:
- printf (" %*s%-20s [form: %d] ???\n",
- (int) (level * 2), "", dwarf_attr_string (attr),
- (int) form);
- break;
- }
-
- return DWARF_CB_OK;
-}
-
-
-static void
-print_debug_info_section (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr, Dwarf *dbg)
-{
- printf (gettext ("\
-\nDWARF section '%s' at offset %#" PRIx64 ":\n [Offset]\n"),
- ".debug_info", (uint64_t) shdr->sh_offset);
-
- /* If the section is empty we don't have to do anything. */
- if (shdr->sh_size == 0)
- return;
-
- size_t maxdies = 20;
- Dwarf_Die *dies = (Dwarf_Die *) xmalloc (maxdies * sizeof (Dwarf_Die));
-
- Dwarf_Off offset = 0;
-
- /* New compilation unit. */
- size_t cuhl;
- //Dwarf_Half version;
- Dwarf_Off abbroffset;
- uint8_t addrsize;
- uint8_t offsize;
- Dwarf_Off nextcu;
- next_cu:
- if (dwarf_nextcu (dbg, offset, &nextcu, &cuhl, &abbroffset, &addrsize,
- &offsize) != 0)
- goto do_return;
-
- printf (gettext (" Compilation unit at offset %" PRIu64 ":\n"
- " Version: %" PRIu16 ", Abbreviation section offset: %"
- PRIu64 ", Address size: %" PRIu8 ", Offset size: %" PRIu8 "\n"),
- (uint64_t) offset, /*version*/2, abbroffset, addrsize, offsize);
-
-
- struct attrcb_args args;
- args.dbg = dbg;
- args.addrsize = addrsize;
- args.cu_offset = offset;
-
- offset += cuhl;
-
- int level = 0;
-
- if (unlikely (dwarf_offdie (dbg, offset, &dies[level]) == NULL))
- {
- error (0, 0, gettext ("cannot get DIE at offset %" PRIu64
- " in section '%s': %s"),
- (uint64_t) offset, ".debug_info", dwarf_errmsg (-1));
- goto do_return;
- }
-
- do
- {
- offset = dwarf_dieoffset (&dies[level]);
- if (offset == -1l)
- {
- error (0, 0, gettext ("cannot get DIE offset: %s"),
- dwarf_errmsg (-1));
- goto do_return;
- }
-
- int tag = dwarf_tag (&dies[level]);
- if (tag == DW_TAG_invalid)
- {
- error (0, 0, gettext ("cannot get tag of DIE at offset %" PRIu64
- " in section '%s': %s"),
- (uint64_t) offset, ".debug_info", dwarf_errmsg (-1));
- goto do_return;
- }
-
- static const char *const lowtags[] =
- {
- [DW_TAG_array_type] = "array_type",
- [DW_TAG_class_type] = "class_type",
- [DW_TAG_entry_point] = "entry_point",
- [DW_TAG_enumeration_type] = "enumeration_type",
- [DW_TAG_formal_parameter] = "formal_parameter",
- [DW_TAG_imported_declaration] = "imported_declaration",
- [DW_TAG_label] = "label",
- [DW_TAG_lexical_block] = "lexical_block",
- [DW_TAG_member] = "member",
- [DW_TAG_pointer_type] = "pointer_type",
- [DW_TAG_reference_type] = "reference_type",
- [DW_TAG_compile_unit] = "compile_unit",
- [DW_TAG_string_type] = "string_type",
- [DW_TAG_structure_type] = "structure_type",
- [DW_TAG_subroutine_type] = "subroutine_type",
- [DW_TAG_typedef] = "typedef",
- [DW_TAG_union_type] = "union_type",
- [DW_TAG_unspecified_parameters] = "unspecified_parameters",
- [DW_TAG_variant] = "variant",
- [DW_TAG_common_block] = "common_block",
- [DW_TAG_common_inclusion] = "common_inclusion",
- [DW_TAG_inheritance] = "inheritance",
- [DW_TAG_inlined_subroutine] = "inlined_subroutine",
- [DW_TAG_module] = "module",
- [DW_TAG_ptr_to_member_type] = "ptr_to_member_type",
- [DW_TAG_set_type] = "set_type",
- [DW_TAG_subrange_type] = "subrange_type",
- [DW_TAG_with_stmt] = "with_stmt",
- [DW_TAG_access_declaration] = "access_declaration",
- [DW_TAG_base_type] = "base_type",
- [DW_TAG_catch_block] = "catch_block",
- [DW_TAG_const_type] = "const_type",
- [DW_TAG_constant] = "constant",
- [DW_TAG_enumerator] = "enumerator",
- [DW_TAG_file_type] = "file_type",
- [DW_TAG_friend] = "friend",
- [DW_TAG_namelist] = "namelist",
- [DW_TAG_namelist_item] = "namelist_item",
- [DW_TAG_packed_type] = "packed_type",
- [DW_TAG_subprogram] = "subprogram",
- [DW_TAG_template_type_param] = "template_type_param",
- [DW_TAG_template_value_param] = "template_value_param",
- [DW_TAG_thrown_type] = "thrown_type",
- [DW_TAG_try_block] = "try_block",
- [DW_TAG_variant_part] = "variant_part",
- [DW_TAG_variable] = "variable",
- [DW_TAG_volatile_type] = "volatile_type"
- };
-
- const char *tagstr;
- switch (tag)
- {
- case DW_TAG_lo_user:
- tagstr = "lo_user";
- break;
-
- case DW_TAG_MIPS_loop:
- tagstr = "MIPS_loop";
- break;
-
- case DW_TAG_format_label:
- tagstr = "format_label";
- break;
-
- case DW_TAG_function_template:
- tagstr = "function_template";
- break;
-
- case DW_TAG_class_template:
- tagstr = "class_template";
- break;
- case DW_TAG_hi_user:
- tagstr = "hi_user";
- break;
-
- default:
- if (tag < sizeof (lowtags) / sizeof (lowtags[0]))
- tagstr = lowtags[tag];
- else
- tagstr = "???";
- break;
- }
-
- printf (" [%6" PRIx64 "] %*s%s\n",
- (uint64_t) offset, (int) (level * 2), "", tagstr);
-
- /* Print the attribute values. */
- args.level = level;
- (void) dwarf_getattrs (&dies[level], attr_callback, &args, 0);
-
- /* Make room for the next level's DIE. */
- if (level + 1 == maxdies)
- dies = (Dwarf_Die *) xrealloc (dies,
- (maxdies += 10)
- * sizeof (Dwarf_Die));
-
- int res = dwarf_child (&dies[level], &dies[level + 1]);
- if (res > 0)
- {
- while ((res = dwarf_siblingof (&dies[level], &dies[level])) == 1)
- if (level-- == 0)
- break;
-
- if (res == -1)
- {
- error (0, 0, gettext ("cannot get next DIE: %s\n"),
- dwarf_errmsg (-1));
- goto do_return;
- }
- }
- else if (unlikely (res < 0))
- {
- error (0, 0, gettext ("cannot get next DIE: %s"),
- dwarf_errmsg (-1));
- goto do_return;
- }
- else
- ++level;
- }
- while (level >= 0);
-
- offset = nextcu;
- if (offset != 0)
- goto next_cu;
-
- do_return:
- free (dies);
-}
-
-
-static void
-print_debug_line_section (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr, Dwarf *dbg)
-{
- printf (gettext ("\
-\nDWARF section '%s' at offset %#" PRIx64 ":\n"),
- ".debug_line", (uint64_t) shdr->sh_offset);
-
- if (shdr->sh_size == 0)
- return;
-
- /* There is no functionality in libdw to read the information in the
- way it is represented here. Hardcode the decoder. */
- Elf_Data *data = elf_getdata (scn, NULL);
- if (data == NULL || data->d_buf == NULL)
- {
- error (0, 0, gettext ("cannot get line data section data: %s"),
- elf_errmsg (-1));
- return;
- }
-
- const unsigned char *linep = (const unsigned char *) data->d_buf;
- const unsigned char *lineendp;
-
- while (linep
- < (lineendp = (const unsigned char *) data->d_buf + data->d_size))
- {
- size_t start_offset = linep - (const unsigned char *) data->d_buf;
-
- Dwarf_Word unit_length = read_4ubyte_unaligned_inc (dbg, linep);
- unsigned int length = 4;
- if (unlikely (unit_length == 0xffffffff))
- {
- if (unlikely (linep + 8 > lineendp))
- {
- invalid_data:
- error (0, 0, gettext ("invalid data in section [%zu] '%s'"),
- elf_ndxscn (scn), ".debug_line");
- return;
- }
- unit_length = read_8ubyte_unaligned_inc (dbg, linep);
- length = 8;
- }
-
- /* Check whether we have enough room in the section. */
- if (unit_length < 2 + length + 5 * 1
- || unlikely (linep + unit_length > lineendp))
- goto invalid_data;
- lineendp = linep + unit_length;
-
- /* The next element of the header is the version identifier. */
- uint_fast16_t version = read_2ubyte_unaligned_inc (dbg, linep);
-
- /* Next comes the header length. */
- Dwarf_Word header_length;
- if (length == 4)
- header_length = read_4ubyte_unaligned_inc (dbg, linep);
- else
- header_length = read_8ubyte_unaligned_inc (dbg, linep);
- //const unsigned char *header_start = linep;
-
- /* Next the minimum instruction length. */
- uint_fast8_t minimum_instr_len = *linep++;
-
- /* Then the flag determining the default value of the is_stmt
- register. */
- uint_fast8_t default_is_stmt = *linep++;
-
- /* Now the line base. */
- int_fast8_t line_base = *((const int_fast8_t *) linep);
- ++linep;
-
- /* And the line range. */
- uint_fast8_t line_range = *linep++;
-
- /* The opcode base. */
- uint_fast8_t opcode_base = *linep++;
-
- /* Print what we got so far. */
- printf (gettext ("\n"
- " Length: %" PRIu64 "\n"
- " DWARF version: %" PRIuFAST16 "\n"
- " Prologue length: %" PRIu64 "\n"
- " Minimum instruction length: %" PRIuFAST8 "\n"
- " Initial value if '%s': %" PRIuFAST8 "\n"
- " Line base: %" PRIdFAST8 "\n"
- " Line range: %" PRIuFAST8 "\n"
- " Opcode base: %" PRIuFAST8 "\n"
- "\n"
- "Opcodes:\n"),
- (uint64_t) unit_length, version, (uint64_t) header_length,
- minimum_instr_len, "is_stmt", default_is_stmt, line_base,
- line_range, opcode_base);
-
- if (unlikely (linep + opcode_base - 1 >= lineendp))
- goto invalid_data;
- int opcode_base_l10 = 1;
- unsigned int tmp = opcode_base;
- while (tmp > 10)
- {
- tmp /= 10;
- ++opcode_base_l10;
- }
- const uint8_t *standard_opcode_lengths = linep - 1;
- for (uint_fast8_t cnt = 1; cnt < opcode_base; ++cnt)
- printf (ngettext (" [%*" PRIuFAST8 "] %hhu argument\n",
- " [%*" PRIuFAST8 "] %hhu arguments\n",
- (int) linep[cnt - 1]),
- opcode_base_l10, cnt, linep[cnt - 1]);
- linep += opcode_base - 1;
- if (unlikely (linep >= lineendp))
- goto invalid_data;
-
- puts (gettext ("\nDirectory table:"));
- while (*linep != 0)
- {
- unsigned char *endp = memchr (linep, '\0', lineendp - linep);
- if (endp == NULL)
- goto invalid_data;
-
- printf (" %s\n", (char *) linep);
-
- linep = endp + 1;
- }
- /* Skip the final NUL byte. */
- ++linep;
-
- if (unlikely (linep >= lineendp))
- goto invalid_data;
- puts (gettext ("\nFile name table:\n"
- " Entry Dir Time Size Name"));
- for (unsigned int cnt = 1; *linep != 0; ++cnt)
- {
- /* First comes the file name. */
- char *fname = (char *) linep;
- unsigned char *endp = memchr (fname, '\0', lineendp - linep);
- if (endp == NULL)
- goto invalid_data;
- linep = endp + 1;
-
- /* Then the index. */
- unsigned int diridx;
- get_uleb128 (diridx, linep);
-
- /* Next comes the modification time. */
- unsigned int mtime;
- get_uleb128 (mtime, linep);
-
- /* Finally the length of the file. */
- unsigned int fsize;
- get_uleb128 (fsize, linep);
-
- printf (" %-5u %-5u %-9u %-9u %s\n",
- cnt, diridx, mtime, fsize, fname);
- }
- /* Skip the final NUL byte. */
- ++linep;
-
- puts (gettext ("\nLine number statements:"));
- Dwarf_Word address = 0;
- size_t line = 1;
- uint_fast8_t is_stmt = default_is_stmt;
-
- /* Default address value, in case we do not find the CU. */
- size_t address_size
- = elf_getident (ebl->elf, NULL)[EI_CLASS] == ELFCLASS32 ? 4 : 8;
-
- /* Determine the CU this block is for. */
- Dwarf_Off cuoffset;
- Dwarf_Off ncuoffset = 0;
- size_t hsize;
- while (dwarf_nextcu (dbg, cuoffset = ncuoffset, &ncuoffset, &hsize,
- NULL, NULL, NULL) == 0)
- {
- Dwarf_Die cudie;
- if (dwarf_offdie (dbg, cuoffset + hsize, &cudie) == NULL)
- continue;
- Dwarf_Attribute stmt_list;
- if (dwarf_attr (&cudie, DW_AT_stmt_list, &stmt_list) == NULL)
- continue;
- Dwarf_Word lineoff;
- if (dwarf_formudata (&stmt_list, &lineoff) != 0)
- continue;
- if (lineoff == start_offset)
- {
- /* Found the CU. */
- address_size = cudie.cu->address_size;
- break;
- }
- }
-
- while (linep < lineendp)
- {
- unsigned int u128;
- int s128;
-
- /* Read the opcode. */
- unsigned int opcode = *linep++;
-
- /* Is this a special opcode? */
- if (likely (opcode >= opcode_base))
- {
- /* Yes. Handling this is quite easy since the opcode value
- is computed with
-
- opcode = (desired line increment - line_base)
- + (line_range * address advance) + opcode_base
- */
- int line_increment = (line_base
- + (opcode - opcode_base) % line_range);
- unsigned int address_increment = (minimum_instr_len
- * ((opcode - opcode_base)
- / line_range));
-
- /* Perform the increments. */
- line += line_increment;
- address += address_increment;
-
- printf (gettext ("\
- special opcode %u: address+%u = %#" PRIx64 ", line%+d = %zu\n"),
- opcode, address_increment, (uint64_t) address,
- line_increment, line);
- }
- else if (opcode == 0)
- {
- /* This an extended opcode. */
- if (unlikely (linep + 2 > lineendp))
- goto invalid_data;
-
- /* The length. */
- unsigned int len = *linep++;
-
- if (unlikely (linep + len > lineendp))
- goto invalid_data;
-
- /* The sub-opcode. */
- opcode = *linep++;
-
- printf (gettext (" extended opcode %u: "), opcode);
-
- switch (opcode)
- {
- case DW_LNE_end_sequence:
- puts (gettext ("end of sequence"));
-
- /* Reset the registers we care about. */
- address = 0;
- line = 1;
- is_stmt = default_is_stmt;
- break;
-
- case DW_LNE_set_address:
- if (address_size == 4)
- address = read_4ubyte_unaligned_inc (dbg, linep);
- else
- address = read_8ubyte_unaligned_inc (dbg, linep);
- printf (gettext ("set address to %#" PRIx64 "\n"),
- (uint64_t) address);
- break;
-
- case DW_LNE_define_file:
- {
- char *fname = (char *) linep;
- unsigned char *endp = memchr (linep, '\0',
- lineendp - linep);
- if (endp == NULL)
- goto invalid_data;
- linep = endp + 1;
-
- unsigned int diridx;
- get_uleb128 (diridx, linep);
- Dwarf_Word mtime;
- get_uleb128 (mtime, linep);
- Dwarf_Word filelength;
- get_uleb128 (filelength, linep);
-
- printf (gettext ("\
-define new file: dir=%u, mtime=%" PRIu64 ", length=%" PRIu64 ", name=%s\n"),
- diridx, (uint64_t) mtime, (uint64_t) filelength,
- fname);
- }
- break;
-
- default:
- /* Unknown, ignore it. */
- puts (gettext ("unknown opcode"));
- linep += len - 1;
- break;
- }
- }
- else if (opcode <= DW_LNS_set_epilog_begin)
- {
- /* This is a known standard opcode. */
- switch (opcode)
- {
- case DW_LNS_copy:
- /* Takes no argument. */
- puts (gettext (" copy"));
- break;
-
- case DW_LNS_advance_pc:
- /* Takes one uleb128 parameter which is added to the
- address. */
- get_uleb128 (u128, linep);
- address += minimum_instr_len * u128;
- printf (gettext ("\
- advance address by %u to %#" PRIx64 "\n"),
- u128, (uint64_t) address);
- break;
-
- case DW_LNS_advance_line:
- /* Takes one sleb128 parameter which is added to the
- line. */
- get_sleb128 (s128, linep);
- line += s128;
- printf (gettext ("\
- advance line by constant %d to %" PRId64 "\n"),
- s128, (int64_t) line);
- break;
-
- case DW_LNS_set_file:
- /* Takes one uleb128 parameter which is stored in file. */
- get_uleb128 (u128, linep);
- printf (gettext (" set file to %" PRIu64 "\n"),
- (uint64_t) u128);
- break;
-
- case DW_LNS_set_column:
- /* Takes one uleb128 parameter which is stored in column. */
- if (unlikely (standard_opcode_lengths[opcode] != 1))
- goto invalid_data;
-
- get_uleb128 (u128, linep);
- printf (gettext (" set column to %" PRIu64 "\n"),
- (uint64_t) u128);
- break;
-
- case DW_LNS_negate_stmt:
- /* Takes no argument. */
- is_stmt = 1 - is_stmt;
- printf (gettext (" set '%s' to %" PRIuFAST8 "\n"),
- "is_stmt", is_stmt);
- break;
-
- case DW_LNS_set_basic_block:
- /* Takes no argument. */
- puts (gettext (" set basic block flag"));
- break;
-
- case DW_LNS_const_add_pc:
- /* Takes no argument. */
- u128 = (minimum_instr_len
- * ((255 - opcode_base) / line_range));
- address += u128;
- printf (gettext ("\
- advance address by constant %u to %#" PRIx64 "\n"),
- u128, (uint64_t) address);
- break;
-
- case DW_LNS_fixed_advance_pc:
- /* Takes one 16 bit parameter which is added to the
- address. */
- if (unlikely (standard_opcode_lengths[opcode] != 1))
- goto invalid_data;
-
- u128 = read_2ubyte_unaligned_inc (dbg, linep);
- address += u128;
- printf (gettext ("\
- advance address by fixed value %u to %#" PRIx64 "\n"),
- u128, (uint64_t) address);
- break;
-
- case DW_LNS_set_prologue_end:
- /* Takes no argument. */
- puts (gettext (" set prologue end flag"));
- break;
-
- case DW_LNS_set_epilog_begin:
- /* Takes no argument. */
- puts (gettext (" set epilogue begin flag"));
- break;
- }
- }
- else
- {
- /* This is a new opcode the generator but not we know about.
- Read the parameters associated with it but then discard
- everything. Read all the parameters for this opcode. */
- printf (ngettext (" unknown opcode with %" PRIu8 " parameter:",
- " unknown opcode with %" PRIu8 " parameters:",
- standard_opcode_lengths[opcode]),
- standard_opcode_lengths[opcode]);
- for (int n = standard_opcode_lengths[opcode]; n > 0; --n)
- {
- get_uleb128 (u128, linep);
- if (n != standard_opcode_lengths[opcode])
- putc_unlocked (',', stdout);
- printf (" %u", u128);
- }
-
- /* Next round, ignore this opcode. */
- continue;
- }
- }
- }
-
- /* There must only be one data block. */
- assert (elf_getdata (scn, data) == NULL);
-}
-
-
-static void
-print_debug_loc_section (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr, Dwarf *dbg)
-{
- printf (gettext ("\
-\nDWARF section '%s' at offset %#" PRIx64 ":\n"),
- ".debug_loc", (uint64_t) shdr->sh_offset);
-
- // XXX add something
-}
-
-
-struct mac_culist
-{
- Dwarf_Die die;
- Dwarf_Off offset;
- Dwarf_Files *files;
- struct mac_culist *next;
-};
-
-
-static int
-mac_compare (const void *p1, const void *p2)
-{
- struct mac_culist *m1 = (struct mac_culist *) p1;
- struct mac_culist *m2 = (struct mac_culist *) p2;
-
- if (m1->offset < m2->offset)
- return -1;
- if (m1->offset > m2->offset)
- return 1;
- return 0;
-}
-
-
-static void
-print_debug_macinfo_section (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr, Dwarf *dbg)
-{
- printf (gettext ("\
-\nDWARF section '%s' at offset %#" PRIx64 ":\n"),
- ".debug_macinfo", (uint64_t) shdr->sh_offset);
- putc_unlocked ('\n', stdout);
-
- /* There is no function in libdw to iterate over the raw content of
- the section but it is easy enough to do. */
- Elf_Data *data = elf_getdata (scn, NULL);
- if (data == NULL || data->d_buf == NULL)
- {
- error (0, 0, gettext ("cannot get macro information section data: %s"),
- elf_errmsg (-1));
- return;
- }
-
- /* Get the source file information for all CUs. */
- Dwarf_Off offset;
- Dwarf_Off ncu = 0;
- size_t hsize;
- struct mac_culist *culist = NULL;
- size_t nculist = 0;
- while (dwarf_nextcu (dbg, offset = ncu, &ncu, &hsize, NULL, NULL, NULL) == 0)
- {
- Dwarf_Die cudie;
- if (dwarf_offdie (dbg, offset + hsize, &cudie) == NULL)
- continue;
-
- Dwarf_Attribute attr;
- if (dwarf_attr (&cudie, DW_AT_macro_info, &attr) == NULL)
- continue;
-
- Dwarf_Word macoff;
- if (dwarf_formudata (&attr, &macoff) != 0)
- continue;
-
- struct mac_culist *newp = (struct mac_culist *) alloca (sizeof (*newp));
- newp->die = cudie;
- newp->offset = macoff;
- newp->files = NULL;
- newp->next = culist;
- culist = newp;
- ++nculist;
- }
-
- /* Convert the list into an array for easier consumption. */
- struct mac_culist *cus = (struct mac_culist *) alloca ((nculist + 1)
- * sizeof (*cus));
- /* Add sentinel. */
- cus[nculist].offset = data->d_size;
- if (nculist > 0)
- {
- for (size_t cnt = nculist - 1; culist != NULL; --cnt)
- {
- assert (cnt < nculist);
- cus[cnt] = *culist;
- culist = culist->next;
- }
-
- /* Sort the array according to the offset in the .debug_macinfo
- section. Note we keep the sentinel at the end. */
- qsort (cus, nculist, sizeof (*cus), mac_compare);
- }
-
- const unsigned char *readp = (const unsigned char *) data->d_buf;
- const unsigned char *readendp = readp + data->d_size;
- int level = 1;
-
- while (readp < readendp)
- {
- unsigned int opcode = *readp++;
- unsigned int u128;
- unsigned int u128_2;
- const unsigned char *endp;
-
- switch (opcode)
- {
- case DW_MACINFO_define:
- case DW_MACINFO_undef:
- case DW_MACINFO_vendor_ext:
- /* For the first two opcodes the parameters are
- line, string
- For the latter
- number, string.
- We can treat these cases together. */
- get_uleb128 (u128, readp);
-
- endp = memchr (readp, '\0', readendp - readp);
- if (endp == NULL)
- {
- printf (gettext ("\
-%*s*** non-terminated string at end of section"),
- level, "");
- return;
- }
-
- if (opcode == DW_MACINFO_define)
- printf ("%*s#define %s, line %u\n",
- level, "", (char *) readp, u128);
- else if (opcode == DW_MACINFO_undef)
- printf ("%*s#undef %s, line %u\n",
- level, "", (char *) readp, u128);
- else
- printf (" #vendor-ext %s, number %u\n", (char *) readp, u128);
-
- readp = endp + 1;
- break;
-
- case DW_MACINFO_start_file:
- /* The two parameters are line and file index, in this order. */
- get_uleb128 (u128, readp);
- get_uleb128 (u128_2, readp);
-
- /* Find the CU DIE for this file. */
- ptrdiff_t macoff = readp - (const unsigned char *) data->d_buf;
- const char *fname = "???";
- if (macoff >= cus[0].offset)
- {
- while (macoff >= cus[1].offset)
- ++cus;
-
- if (cus[0].files == NULL
- && dwarf_getsrcfiles (&cus[0].die, &cus[0].files, NULL) != 0)
- cus[0].files = (Dwarf_Files *) -1l;
-
- if (cus[0].files != (Dwarf_Files *) -1l)
- fname = (dwarf_filesrc (cus[0].files, u128_2, NULL, NULL)
- ?: "???");
- }
-
- printf ("%*sstart_file %u, [%u] %s\n",
- level, "", u128, u128_2, fname);
- ++level;
- break;
-
- case DW_MACINFO_end_file:
- --level;
- printf ("%*send_file\n", level, "");
- /* Nothing more to do. */
- break;
-
- default:
- // XXX gcc seems to generate files with a trailing zero.
- if (opcode != 0 || readp != readendp)
- printf ("%*s*** invalid opcode %u\n", level, "", opcode);
- break;
- }
- }
-}
-
-
-/* Callback for printing global names. */
-static int
-print_pubnames (Dwarf *dbg, Dwarf_Global *global, void *arg)
-{
- int *np = (int *) arg;
-
- printf (gettext (" [%5d] DIE offset: %6" PRId64
- ", CU DIE offset: %6" PRId64 ", name: %s\n"),
- (*np)++, global->die_offset, global->cu_offset, global->name);
-
- return 0;
-}
-
-
-/* Print the known exported symbols in the DWARF section '.debug_pubnames'. */
-static void
-print_debug_pubnames_section (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr, Dwarf *dbg)
-{
- printf (gettext ("\nDWARF section '%s' at offset %#" PRIx64 ":\n"),
- ".debug_pubnames", (uint64_t) shdr->sh_offset);
-
- int n = 0;
- (void) dwarf_getpubnames (dbg, print_pubnames, &n, 0);
-}
-
-/* Print the content of the DWARF string section '.debug_str'. */
-static void
-print_debug_str_section (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
- GElf_Shdr *shdr, Dwarf *dbg)
-{
- /* Compute floor(log16(shdr->sh_size)). */
- GElf_Addr tmp = shdr->sh_size;
- int digits = 1;
- while (tmp >= 16)
- {
- ++digits;
- tmp >>= 4;
- }
- digits = MAX (4, digits);
-
- printf (gettext ("\nDWARF section '%s' at offset %#" PRIx64 ":\n"
- " %*s String\n"),
- ".debug_str", (uint64_t) shdr->sh_offset,
- /* TRANS: the debugstr| prefix makes the string unique. */
- digits + 2, sgettext ("debugstr|Offset"));
-
- Dwarf_Off offset = 0;
- while (offset < shdr->sh_size)
- {
- size_t len;
- const char *str = dwarf_getstring (dbg, offset, &len);
- if (str == NULL)
- {
- printf (gettext (" *** error while reading strings: %s\n"),
- dwarf_errmsg (-1));
- break;
- }
-
- printf (" [%*" PRIx64 "] \"%s\"\n", digits, (uint64_t) offset, str);
-
- offset += len + 1;
- }
-}
-
-
-static void
-print_debug (Ebl *ebl, GElf_Ehdr *ehdr)
-{
- /* Find the version information sections. For this we have to
- search through the section table. */
- Dwarf *dbg;
- Elf_Scn *scn;
- size_t shstrndx;
-
- /* Before we start the real work get a debug context descriptor. */
- dbg = dwarf_begin_elf (ebl->elf, DWARF_C_READ, NULL);
- if (dbg == NULL)
- {
- error (0, 0, gettext ("cannot get debug context descriptor: %s"),
- dwarf_errmsg (-1));
- return;
- }
-
- /* Get the section header string table index. */
- if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- scn = NULL;
- while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
- {
- /* Handle the section if it is part of the versioning handling. */
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-
- if (shdr != NULL || shdr->sh_type != SHT_PROGBITS)
- {
- static const struct
- {
- const char *name;
- enum section_e bitmask;
- void (*fp) (Ebl *, GElf_Ehdr *, Elf_Scn *, GElf_Shdr *, Dwarf *);
- } debug_sections[] =
- {
-#define NEW_SECTION(name) \
- { ".debug_" #name, section_##name, print_debug_##name##_section }
- NEW_SECTION (abbrev),
- NEW_SECTION (aranges),
- NEW_SECTION (frame),
- NEW_SECTION (info),
- NEW_SECTION (line),
- NEW_SECTION (loc),
- NEW_SECTION (pubnames),
- NEW_SECTION (str),
- NEW_SECTION (macinfo),
- { ".eh_frame", section_frame, print_debug_frame_section }
- };
- const int ndebug_sections = (sizeof (debug_sections)
- / sizeof (debug_sections[0]));
- const char *name = elf_strptr (ebl->elf, shstrndx,
- shdr->sh_name);
- int n;
-
- for (n = 0; n < ndebug_sections; ++n)
- if (strcmp (name, debug_sections[n].name) == 0)
- {
- if (print_debug_sections & debug_sections[n].bitmask)
- debug_sections[n].fp (ebl, ehdr, scn, shdr, dbg);
- break;
- }
- }
- }
-
- /* We are done with the DWARF handling. */
- dwarf_end (dbg);
-}
-
-
-static void
-handle_notes (Ebl *ebl, GElf_Ehdr *ehdr)
-{
- int class = gelf_getclass (ebl->elf);
- size_t cnt;
-
- /* We have to look through the program header to find the note
- sections. There can be more than one. */
- for (cnt = 0; cnt < ehdr->e_phnum; ++cnt)
- {
- GElf_Phdr mem;
- GElf_Phdr *phdr = gelf_getphdr (ebl->elf, cnt, &mem);
-
- if (phdr == NULL || phdr->p_type != PT_NOTE)
- /* Not what we are looking for. */
- continue;
-
- printf (gettext ("\
-\nNote segment of %" PRId64 " bytes at offset %#0" PRIx64 ":\n"),
- phdr->p_filesz, phdr->p_offset);
-
- char *notemem = gelf_rawchunk (ebl->elf, phdr->p_offset, phdr->p_filesz);
- if (notemem == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get content of note section: %s"),
- elf_errmsg (-1));
-
- fputs_unlocked (gettext (" Owner Data size Type\n"), stdout);
-
-
- /* Handle the note section content. It consists of one or more
- entries each of which consists of five parts:
-
- - a 32-bit name length
- - a 32-bit descriptor length
- - a 32-bit type field
- - the NUL-terminated name, length as specified in the first field
- - the descriptor, length as specified in the second field
-
- The variable sized fields are padded to 32- or 64-bits
- depending on whether the file is a 32- or 64-bit ELF file.
- */
- size_t align = class == ELFCLASS32 ? 4 : 8;
-#define ALIGNED_LEN(len) (((len) + align - 1) & ~(align - 1))
-
- size_t idx = 0;
- while (idx < phdr->p_filesz)
- {
- /* XXX Handle 64-bit note section entries correctly. */
- struct
- {
- uint32_t namesz;
- uint32_t descsz;
- uint32_t type;
- char name[0];
- } *noteentry = (__typeof (noteentry)) (notemem + idx);
-
- if (idx + 12 > phdr->p_filesz
- || (idx + 12 + ALIGNED_LEN (noteentry->namesz)
- + ALIGNED_LEN (noteentry->descsz) > phdr->p_filesz))
- /* This entry isn't completely contained in the note
- section. Ignore it. */
- break;
-
- char buf[100];
- char buf2[100];
- printf (gettext (" %-13.*s %9" PRId32 " %s\n"),
- (int) noteentry->namesz, noteentry->name,
- noteentry->descsz,
- ehdr->e_type == ET_CORE
- ? ebl_core_note_type_name (ebl, noteentry->type,
- buf, sizeof (buf))
- : ebl_object_note_type_name (ebl, noteentry->type,
- buf2, sizeof (buf2)));
-
- /* Filter out invalid entries. */
- if (memchr (noteentry->name, '\0', noteentry->namesz) != NULL
- /* XXX For now help broken Linux kernels. */
- || 1)
- {
- if (ehdr->e_type == ET_CORE)
- ebl_core_note (ebl, noteentry->name, noteentry->type,
- noteentry->descsz,
- &noteentry->name[ALIGNED_LEN (noteentry->namesz)]);
- else
- ebl_object_note (ebl, noteentry->name, noteentry->type,
- noteentry->descsz,
- &noteentry->name[ALIGNED_LEN (noteentry->namesz)]);
- }
-
- /* Move to the next entry. */
- idx += (12 + ALIGNED_LEN (noteentry->namesz)
- + ALIGNED_LEN (noteentry->descsz));
- }
-
- gelf_freechunk (ebl->elf, notemem);
- }
-}
diff --git a/src/sectionhash.c b/src/sectionhash.c
deleted file mode 100644
index dc559409..00000000
--- a/src/sectionhash.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Section hash table implementation.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <string.h>
-
-#include <elf-knowledge.h>
-#include <ld.h>
-
-
-/* Comparison function for sections. */
-static int
-scnhead_compare (struct scnhead *one, struct scnhead *two)
-{
- int result = strcmp (one->name, two->name);
-
- if (result == 0)
- {
- result = one->type - two->type;
-
- if (result == 0)
- {
- GElf_Xword diff = (SH_FLAGS_IMPORTANT (one->flags)
- - SH_FLAGS_IMPORTANT (two->flags));
- result = diff < 0 ? -1 : diff == 0 ? 0 : 1;
-
- if (result == 0)
- {
- result = one->entsize - two->entsize;
-
- if (result == 0)
- {
- result = (one->grp_signature == NULL
- ? (two->grp_signature == NULL ? 0 : -1)
- : (two->grp_signature == NULL
- ? 1 : strcmp (one->grp_signature,
- two->grp_signature)));
-
- if (result == 0)
- result = one->kind - two->kind;
- }
- }
- }
- }
-
- return result;
-}
-
-/* Definitions for the section hash table. */
-#define TYPE struct scnhead *
-#define NAME ld_section_tab
-#define ITERATE 1
-#define COMPARE(a, b) scnhead_compare (a, b)
-
-#include "../lib/dynamicsizehash.c"
diff --git a/src/sectionhash.h b/src/sectionhash.h
deleted file mode 100644
index 50bcb9c8..00000000
--- a/src/sectionhash.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef SECTIONHASH_H
-#define SECTIONHASH_H 1
-
-/* Definitions for the section hash table. */
-#define TYPE struct scnhead *
-#define NAME ld_section_tab
-#define ITERATE 1
-#include <dynamicsizehash.h>
-
-#endif /* sectionhash.h */
diff --git a/src/size.c b/src/size.c
deleted file mode 100644
index e9edb677..00000000
--- a/src/size.c
+++ /dev/null
@@ -1,698 +0,0 @@
-/* Print size information from ELF file.
- Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <argp.h>
-#include <error.h>
-#include <fcntl.h>
-#include <gelf.h>
-#include <inttypes.h>
-#include <libelf.h>
-#include <libintl.h>
-#include <locale.h>
-#include <mcheck.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/param.h>
-
-#include <system.h>
-
-
-/* Name and version of program. */
-static void print_version (FILE *stream, struct argp_state *state);
-void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
-
-
-/* Values for the parameters which have no short form. */
-#define OPT_FORMAT 0x100
-#define OPT_RADIX 0x101
-
-/* Definitions of arguments for argp functions. */
-static const struct argp_option options[] =
-{
- { NULL, 0, NULL, 0, N_("Output format:") },
- { "format", OPT_FORMAT, "FORMAT", 0, N_("Use the output format FORMAT. FORMAT can be `bsd' or `sysv'. The default is `bsd'") },
- { NULL, 'A', NULL, 0, N_("Same as `--format=sysv'") },
- { NULL, 'B', NULL, 0, N_("Same as `--format=bsd'") },
- { "radix", OPT_RADIX, "RADIX", 0, N_("Use RADIX for printing symbol values") },
- { NULL, 'd', NULL, 0, N_("Same as `--radix=10'") },
- { NULL, 'o', NULL, 0, N_("Same as `--radix=8'") },
- { NULL, 'x', NULL, 0, N_("Same as `--radix=16'") },
- { NULL, 'f', NULL, 0, N_("Similar to `--format=sysv' output but in one line") },
-
- { NULL, 0, NULL, 0, N_("Output options:") },
- { NULL, 'F', NULL, 0, N_("Print size and permission flags for loadable segments") },
- { "totals", 't', NULL, 0, N_("Display the total sizes (bsd only)") },
- { NULL, 0, NULL, 0, NULL }
-};
-
-/* Short description of program. */
-static const char doc[] = N_("\
-List section sizes of FILEs (a.out by default).");
-
-/* Strings for arguments in help texts. */
-static const char args_doc[] = N_("[FILE...]");
-
-/* Prototype for option handler. */
-static error_t parse_opt (int key, char *arg, struct argp_state *state);
-
-/* Function to print some extra text in the help message. */
-static char *more_help (int key, const char *text, void *input);
-
-/* Data structure to communicate with argp functions. */
-static struct argp argp =
-{
- options, parse_opt, args_doc, doc, NULL, more_help
-};
-
-
-/* Print symbols in file named FNAME. */
-static int process_file (const char *fname);
-
-/* Handle content of archive. */
-static int handle_ar (int fd, Elf *elf, const char *prefix, const char *fname);
-
-/* Handle ELF file. */
-static void handle_elf (Elf *elf, const char *fullname, const char *fname);
-
-/* Show total size. */
-static void show_bsd_totals (void);
-
-#define INTERNAL_ERROR(fname) \
- error (EXIT_FAILURE, 0, gettext ("%s: INTERNAL ERROR %d (%s-%s): %s"), \
- fname, __LINE__, VERSION, __DATE__, elf_errmsg (-1))
-
-
-/* User-selectable options. */
-
-/* The selected output format. */
-static enum
-{
- format_bsd = 0,
- format_sysv,
- format_sysv_one_line,
- format_segments
-} format;
-
-/* Radix for printed numbers. */
-static enum
-{
- radix_decimal = 0,
- radix_hex,
- radix_octal
-} radix;
-
-
-/* Mapping of radix and binary class to length. */
-static const int length_map[2][3] =
-{
- [ELFCLASS32 - 1] =
- {
- [radix_hex] = 8,
- [radix_decimal] = 10,
- [radix_octal] = 11
- },
- [ELFCLASS64 - 1] =
- {
- [radix_hex] = 16,
- [radix_decimal] = 20,
- [radix_octal] = 22
- }
-};
-
-/* True if total sizes should be printed. */
-static bool totals;
-/* To print the total sizes in a reasonable format remember the higest
- "class" of ELF binaries processed. */
-static int totals_class;
-
-
-int
-main (int argc, char *argv[])
-{
- int remaining;
- int result = 0;
-
- /* Make memory leak detection possible. */
- mtrace ();
-
- /* We use no threads here which can interfere with handling a stream. */
- __fsetlocking (stdin, FSETLOCKING_BYCALLER);
- __fsetlocking (stdout, FSETLOCKING_BYCALLER);
- __fsetlocking (stderr, FSETLOCKING_BYCALLER);
-
- /* Set locale. */
- setlocale (LC_ALL, "");
-
- /* Make sure the message catalog can be found. */
- bindtextdomain (PACKAGE, LOCALEDIR);
-
- /* Initialize the message catalog. */
- textdomain (PACKAGE);
-
- /* Parse and process arguments. */
- argp_parse (&argp, argc, argv, 0, &remaining, NULL);
-
-
- /* Tell the library which version we are expecting. */
- elf_version (EV_CURRENT);
-
- if (remaining == argc)
- /* The user didn't specify a name so we use a.out. */
- result = process_file ("a.out");
- else
- /* Process all the remaining files. */
- do
- result |= process_file (argv[remaining]);
- while (++remaining < argc);
-
- /* Print the total sizes but only if the output format is BSD and at
- least one file has been correctly read (i.e., we recognized the
- class). */
- if (totals && format == format_bsd && totals_class != 0)
- show_bsd_totals ();
-
- return result;
-}
-
-
-/* Print the version information. */
-static void
-print_version (FILE *stream, struct argp_state *state)
-{
- fprintf (stream, "size (%s) %s\n", PACKAGE_NAME, VERSION);
- fprintf (stream, gettext ("\
-Copyright (C) %s Red Hat, Inc.\n\
-This is free software; see the source for copying conditions. There is NO\n\
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2004");
- fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
-}
-
-
-/* Handle program arguments. */
-static error_t
-parse_opt (int key, char *arg, struct argp_state *state)
-{
- switch (key)
- {
- case 'd':
- radix = radix_decimal;
- break;
-
- case 'f':
- format = format_sysv_one_line;
- break;
-
- case 'o':
- radix = radix_octal;
- break;
-
- case 'x':
- radix = radix_hex;
- break;
-
- case 'A':
- format = format_sysv;
- break;
-
- case 'B':
- format = format_bsd;
- break;
-
- case 'F':
- format = format_segments;
- break;
-
- case OPT_FORMAT:
- if (strcmp (arg, "bsd") == 0 || strcmp (arg, "berkeley") == 0)
- format = format_bsd;
- else if (strcmp (arg, "sysv") == 0)
- format = format_sysv;
- else
- error (EXIT_FAILURE, 0, gettext ("Invalid format: %s"), arg);
- break;
-
- case OPT_RADIX:
- if (strcmp (arg, "x") == 0 || strcmp (arg, "16") == 0)
- radix = radix_hex;
- else if (strcmp (arg, "d") == 0 || strcmp (arg, "10") == 0)
- radix = radix_decimal;
- else if (strcmp (arg, "o") == 0 || strcmp (arg, "8") == 0)
- radix = radix_octal;
- else
- error (EXIT_FAILURE, 0, gettext ("Invalid radix: %s"), arg);
- break;
-
- case 't':
- totals = true;
- break;
-
- default:
- return ARGP_ERR_UNKNOWN;
- }
- return 0;
-}
-
-
-static char *
-more_help (int key, const char *text, void *input)
-{
- char *buf;
-
- switch (key)
- {
- case ARGP_KEY_HELP_EXTRA:
- /* We print some extra information. */
- if (asprintf (&buf, gettext ("Please report bugs to %s.\n"),
- PACKAGE_BUGREPORT) < 0)
- buf = NULL;
- return buf;
-
- default:
- break;
- }
- return (char *) text;
-}
-
-
-static int
-process_file (const char *fname)
-{
- /* Open the file and determine the type. */
- int fd;
- Elf *elf;
-
- /* Open the file. */
- fd = open (fname, O_RDONLY);
- if (fd == -1)
- {
- error (0, errno, fname);
- return 1;
- }
-
- /* Now get the ELF descriptor. */
- elf = elf_begin (fd, ELF_C_READ_MMAP, NULL);
- if (elf != NULL)
- {
- if (elf_kind (elf) == ELF_K_ELF)
- {
- handle_elf (elf, NULL, fname);
-
- if (elf_end (elf) != 0)
- INTERNAL_ERROR (fname);
-
- if (close (fd) != 0)
- error (EXIT_FAILURE, errno, gettext ("while close `%s'"), fname);
-
- return 0;
- }
- else
- return handle_ar (fd, elf, NULL, fname);
-
- /* We cannot handle this type. Close the descriptor anyway. */
- if (elf_end (elf) != 0)
- INTERNAL_ERROR (fname);
- }
-
- error (0, 0, gettext ("%s: file format not recognized"), fname);
-
- return 1;
-}
-
-
-/* Print the BSD-style header. This is done exactly once. */
-static void
-print_header (Elf *elf)
-{
- static int done;
-
- if (! done)
- {
- int ddigits = length_map[gelf_getclass (elf) - 1][radix_decimal];
- int xdigits = length_map[gelf_getclass (elf) - 1][radix_hex];
-
- printf ("%*s %*s %*s %*s %*s %s\n",
- ddigits - 2, sgettext ("bsd|text"),
- ddigits - 2, sgettext ("bsd|data"),
- ddigits - 2, sgettext ("bsd|bss"),
- ddigits - 2, sgettext ("bsd|dec"),
- xdigits - 2, sgettext ("bsd|hex"),
- sgettext ("bsd|filename"));
-
- done = 1;
- }
-}
-
-
-static int
-handle_ar (int fd, Elf *elf, const char *prefix, const char *fname)
-{
- Elf *subelf;
- Elf_Cmd cmd = ELF_C_READ_MMAP;
- size_t prefix_len = prefix == NULL ? 0 : strlen (prefix);
- size_t fname_len = strlen (fname) + 1;
- char new_prefix[prefix_len + 1 + fname_len];
- int result = 0;
- char *cp = new_prefix;
-
- /* Create the full name of the file. */
- if (prefix != NULL)
- {
- cp = mempcpy (cp, prefix, prefix_len);
- *cp++ = ':';
- }
- memcpy (cp, fname, fname_len);
-
- /* Process all the files contained in the archive. */
- while ((subelf = elf_begin (fd, cmd, elf)) != NULL)
- {
- /* The the header for this element. */
- Elf_Arhdr *arhdr = elf_getarhdr (subelf);
-
- if (elf_kind (subelf) == ELF_K_ELF)
- handle_elf (subelf, new_prefix, arhdr->ar_name);
- else if (elf_kind (subelf) == ELF_K_AR)
- result |= handle_ar (fd, subelf, new_prefix, arhdr->ar_name);
- /* else signal error??? */
-
- /* Get next archive element. */
- cmd = elf_next (subelf);
- if (elf_end (subelf) != 0)
- INTERNAL_ERROR (fname);
- }
-
- if (elf_end (elf) != 0)
- INTERNAL_ERROR (fname);
-
- if (close (fd) != 0)
- error (EXIT_FAILURE, errno, gettext ("while closing `%s'"), fname);
-
- return result;
-}
-
-
-/* Show sizes in SysV format. */
-static void
-show_sysv (Elf *elf, const char *prefix, const char *fname,
- const char *fullname)
-{
- size_t shstrndx;
- Elf_Scn *scn = NULL;
- GElf_Shdr shdr_mem;
- int maxlen = 10;
- int digits = length_map[gelf_getclass (elf) - 1][radix];
- const char *fmtstr;
- GElf_Off total = 0;
-
- /* Get the section header string table index. */
- if (elf_getshstrndx (elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- /* First round over the sections: determine the longest section name. */
- while ((scn = elf_nextscn (elf, scn)) != NULL)
- {
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-
- if (shdr == NULL)
- INTERNAL_ERROR (fullname);
-
- /* Ignore all sections which are not used at runtime. */
- if ((shdr->sh_flags & SHF_ALLOC) != 0)
- maxlen = MAX (maxlen,
- strlen (elf_strptr (elf, shstrndx, shdr->sh_name)));
- }
-
- fputs_unlocked (fname, stdout);
- if (prefix != NULL)
- printf (gettext (" (ex %s)"), prefix);
- printf (":\n%-*s %*s %*s\n",
- maxlen, sgettext ("sysv|section"),
- digits - 2, sgettext ("sysv|size"),
- digits, sgettext ("sysv|addr"));
-
- if (radix == radix_hex)
- fmtstr = "%-*s %*" PRIx64 " %*" PRIx64 "\n";
- else if (radix == radix_decimal)
- fmtstr = "%-*s %*" PRId64 " %*" PRId64 "\n";
- else
- fmtstr = "%-*s %*" PRIo64 " %*" PRIo64 "\n";
-
- /* Iterate over all sections. */
- while ((scn = elf_nextscn (elf, scn)) != NULL)
- {
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-
- /* Ignore all sections which are not used at runtime. */
- if ((shdr->sh_flags & SHF_ALLOC) != 0)
- {
- printf (fmtstr,
- maxlen, elf_strptr (elf, shstrndx, shdr->sh_name),
- digits - 2, shdr->sh_size,
- digits, shdr->sh_addr);
-
- total += shdr->sh_size;
- }
- }
-
- if (radix == radix_hex)
- printf ("%-*s %*" PRIx64 "\n\n\n", maxlen, sgettext ("sysv|Total"),
- digits - 2, total);
- else if (radix == radix_decimal)
- printf ("%-*s %*" PRId64 "\n\n\n", maxlen, sgettext ("sysv|Total"),
- digits - 2, total);
- else
- printf ("%-*s %*" PRIo64 "\n\n\n", maxlen, sgettext ("sysv|Total"),
- digits - 2, total);
-}
-
-
-/* Show sizes in SysV format in one line. */
-static void
-show_sysv_one_line (Elf *elf, const char *prefix, const char *fname,
- const char *fullname)
-{
- size_t shstrndx;
- Elf_Scn *scn = NULL;
- GElf_Shdr shdr_mem;
- const char *fmtstr;
- GElf_Off total = 0;
- int first = 1;
-
- /* Get the section header string table index. */
- if (elf_getshstrndx (elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- if (radix == radix_hex)
- fmtstr = "%" PRIx64 "(%s)";
- else if (radix == radix_decimal)
- fmtstr = "%" PRId64 "(%s)";
- else
- fmtstr = "%" PRIo64 "(%s)";
-
- /* Iterate over all sections. */
- while ((scn = elf_nextscn (elf, scn)) != NULL)
- {
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-
- /* Ignore all sections which are not used at runtime. */
- if ((shdr->sh_flags & SHF_ALLOC) == 0)
- continue;
-
- if (! first)
- fputs_unlocked (" + ", stdout);
- first = 0;
-
- printf (fmtstr, shdr->sh_size,
- elf_strptr (elf, shstrndx, shdr->sh_name));
-
- total += shdr->sh_size;
- }
-
- if (radix == radix_hex)
- printf (" = %#" PRIx64 "\n", total);
- else if (radix == radix_decimal)
- printf (" = %" PRId64 "\n", total);
- else
- printf (" = %" PRIo64 "\n", total);
-}
-
-
-/* Variables to add up the sizes of all files. */
-static uintmax_t total_textsize;
-static uintmax_t total_datasize;
-static uintmax_t total_bsssize;
-
-
-/* Show sizes in BSD format. */
-static void
-show_bsd (Elf *elf, const char *prefix, const char *fname,
- const char *fullname)
-{
- Elf_Scn *scn = NULL;
- GElf_Shdr shdr_mem;
- GElf_Off textsize = 0;
- GElf_Off datasize = 0;
- GElf_Off bsssize = 0;
- int ddigits = length_map[gelf_getclass (elf) - 1][radix_decimal];
- int xdigits = length_map[gelf_getclass (elf) - 1][radix_hex];
-
- /* Iterate over all sections. */
- while ((scn = elf_nextscn (elf, scn)) != NULL)
- {
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-
- if (shdr == NULL)
- INTERNAL_ERROR (fullname);
-
- /* Ignore all sections which are not marked as loaded. */
- if ((shdr->sh_flags & SHF_ALLOC) == 0)
- continue;
-
- if ((shdr->sh_flags & SHF_WRITE) == 0)
- textsize += shdr->sh_size;
- else if (shdr->sh_type == SHT_NOBITS)
- bsssize += shdr->sh_size;
- else
- datasize += shdr->sh_size;
- }
-
- printf ("%*" PRId64 " %*" PRId64 " %*" PRId64 " %*" PRId64 " %*"
- PRIx64 " %s",
- ddigits - 2, textsize,
- ddigits - 2, datasize,
- ddigits - 2, bsssize,
- ddigits - 2, textsize + datasize + bsssize,
- xdigits - 2, textsize + datasize + bsssize,
- fname);
- if (prefix != NULL)
- printf (gettext (" (ex %s)"), prefix);
- fputs_unlocked ("\n", stdout);
-
- total_textsize += textsize;
- total_datasize += datasize;
- total_bsssize += bsssize;
-
- totals_class = MAX (totals_class, gelf_getclass (elf));
-}
-
-
-/* Show total size. */
-static void
-show_bsd_totals (void)
-{
- int ddigits = length_map[totals_class - 1][radix_decimal];
- int xdigits = length_map[totals_class - 1][radix_hex];
-
- printf ("%*" PRIuMAX " %*" PRIuMAX " %*" PRIuMAX " %*" PRIuMAX " %*"
- PRIxMAX " %s",
- ddigits - 2, total_textsize,
- ddigits - 2, total_datasize,
- ddigits - 2, total_bsssize,
- ddigits - 2, total_textsize + total_datasize + total_bsssize,
- xdigits - 2, total_textsize + total_datasize + total_bsssize,
- gettext ("(TOTALS)\n"));
-}
-
-
-/* Show size and permission of loadable segments. */
-static void
-show_segments (Elf *elf, const char *prefix, const char *fname,
- const char *fullname)
-{
- GElf_Ehdr ehdr_mem;
- GElf_Ehdr *ehdr;
- size_t cnt;
- GElf_Off total = 0;
- int first = 1;
-
- ehdr = gelf_getehdr (elf, &ehdr_mem);
- if (ehdr == NULL)
- INTERNAL_ERROR (fullname);
-
- for (cnt = 0; cnt < ehdr->e_phnum; ++cnt)
- {
- GElf_Phdr phdr_mem;
- GElf_Phdr *phdr;
-
- phdr = gelf_getphdr (elf, cnt, &phdr_mem);
- if (phdr == NULL)
- INTERNAL_ERROR (fullname);
-
- if (phdr->p_type != PT_LOAD)
- /* Only load segments. */
- continue;
-
- if (! first)
- fputs_unlocked (" + ", stdout);
- first = 0;
-
- printf (radix == radix_hex ? "%" PRIx64 "(%c%c%c)"
- : (radix == radix_decimal ? "%" PRId64 "(%c%c%c)"
- : "%" PRIo64 "(%c%c%c)"),
- phdr->p_memsz,
- (phdr->p_flags & PF_R) == 0 ? '-' : 'r',
- (phdr->p_flags & PF_W) == 0 ? '-' : 'w',
- (phdr->p_flags & PF_X) == 0 ? '-' : 'x');
-
- total += phdr->p_memsz;
- }
-
- if (radix == radix_hex)
- printf (" = %#" PRIx64 "\n", total);
- else if (radix == radix_decimal)
- printf (" = %" PRId64 "\n", total);
- else
- printf (" = %" PRIo64 "\n", total);
-}
-
-
-static void
-handle_elf (Elf *elf, const char *prefix, const char *fname)
-{
- size_t prefix_len = prefix == NULL ? 0 : strlen (prefix);
- size_t fname_len = strlen (fname) + 1;
- char fullname[prefix_len + 1 + fname_len];
- char *cp = fullname;
-
- /* Create the full name of the file. */
- if (prefix != NULL)
- {
- cp = mempcpy (cp, prefix, prefix_len);
- *cp++ = ':';
- }
- memcpy (cp, fname, fname_len);
-
- if (format == format_sysv)
- show_sysv (elf, prefix, fname, fullname);
- else if (format == format_sysv_one_line)
- show_sysv_one_line (elf, prefix, fname, fullname);
- else if (format == format_segments)
- show_segments (elf, prefix, fname, fullname);
- else
- {
- print_header (elf);
-
- show_bsd (elf, prefix, fname, fullname);
- }
-}
diff --git a/src/strip.c b/src/strip.c
deleted file mode 100644
index e5c4289c..00000000
--- a/src/strip.c
+++ /dev/null
@@ -1,1769 +0,0 @@
-/* Discard section not used at runtime from object files.
- Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <argp.h>
-#include <assert.h>
-#include <byteswap.h>
-#include <endian.h>
-#include <error.h>
-#include <fcntl.h>
-#include <gelf.h>
-#include <libelf.h>
-#include <libintl.h>
-#include <locale.h>
-#include <mcheck.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include <sys/time.h>
-
-#include <elf-knowledge.h>
-#include <libebl.h>
-#include <system.h>
-
-
-/* Name and version of program. */
-static void print_version (FILE *stream, struct argp_state *state);
-void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
-
-
-/* Values for the parameters which have no short form. */
-#define OPT_REMOVE_COMMENT 0x100
-#define OPT_PERMISSIVE 0x101
-
-
-/* Definitions of arguments for argp functions. */
-static const struct argp_option options[] =
-{
- { NULL, 0, NULL, 0, N_("Output selection:") },
- { NULL, 'o', "FILE", 0, N_("Place stripped output into FILE") },
- { NULL, 'f', "FILE", 0, N_("Extract the removed sections into FILE") },
-
- { NULL, 0, NULL, 0, N_("Output options:") },
- { "strip-debug", 'g', NULL, 0, N_("Remove all debugging symbols") },
- { "preserve-dates", 'p', NULL, 0,
- N_("Copy modified/access timestamps to the output") },
- { "remove-comment", OPT_REMOVE_COMMENT, NULL, 0,
- N_("Remove .comment section") },
- { "permissive", OPT_PERMISSIVE, NULL, 0,
- N_("Relax a few rules to handle slightly broken ELF files") },
- { NULL, 0, NULL, 0, NULL }
-};
-
-/* Short description of program. */
-static const char doc[] = N_("Discard symbols from object files.");
-
-/* Strings for arguments in help texts. */
-static const char args_doc[] = N_("[FILE...]");
-
-/* Prototype for option handler. */
-static error_t parse_opt (int key, char *arg, struct argp_state *state);
-
-/* Function to print some extra text in the help message. */
-static char *more_help (int key, const char *text, void *input);
-
-/* Data structure to communicate with argp functions. */
-static struct argp argp =
-{
- options, parse_opt, args_doc, doc, NULL, more_help
-};
-
-
-/* Print symbols in file named FNAME. */
-static int process_file (const char *fname);
-
-/* Handle one ELF file. */
-static int handle_elf (int fd, Elf *elf, const char *prefix,
- const char *fname, mode_t mode, struct timeval tvp[2]);
-
-/* Handle all files contained in the archive. */
-static int handle_ar (int fd, Elf *elf, const char *prefix, const char *fname,
- struct timeval tvp[2]);
-
-#define INTERNAL_ERROR(fname) \
- error (EXIT_FAILURE, 0, gettext ("%s: INTERNAL ERROR %d (%s-%s): %s"), \
- fname, __LINE__, VERSION, __DATE__, elf_errmsg (-1))
-
-
-/* Name of the output file. */
-static const char *output_fname;
-
-/* Name of the debug output file. */
-static const char *debug_fname;
-
-/* If true output files shall have same date as the input file. */
-static bool preserve_dates;
-
-/* If true .comment sections will be removed. */
-static bool remove_comment;
-
-/* If true remove all debug sections. */
-static bool remove_debug;
-
-/* If true relax some ELF rules for input files. */
-static bool permissive;
-
-
-int
-main (int argc, char *argv[])
-{
- int remaining;
- int result = 0;
-
- /* Make memory leak detection possible. */
- mtrace ();
-
- /* We use no threads here which can interfere with handling a stream. */
- __fsetlocking (stdin, FSETLOCKING_BYCALLER);
- __fsetlocking (stdout, FSETLOCKING_BYCALLER);
- __fsetlocking (stderr, FSETLOCKING_BYCALLER);
-
- /* Set locale. */
- setlocale (LC_ALL, "");
-
- /* Make sure the message catalog can be found. */
- bindtextdomain (PACKAGE, LOCALEDIR);
-
- /* Initialize the message catalog. */
- textdomain (PACKAGE);
-
- /* Parse and process arguments. */
- argp_parse (&argp, argc, argv, 0, &remaining, NULL);
-
- /* Tell the library which version we are expecting. */
- elf_version (EV_CURRENT);
-
- if (remaining == argc)
- /* The user didn't specify a name so we use a.out. */
- result = process_file ("a.out");
- else
- {
- /* If we have seen the `-o' or '-f' option there must be exactly one
- input file. */
- if ((output_fname != NULL || debug_fname != NULL)
- && remaining + 1 < argc)
- error (EXIT_FAILURE, 0, gettext ("\
-Only one input file allowed together with '-o' and '-f'"));
-
- /* Process all the remaining files. */
- do
- result |= process_file (argv[remaining]);
- while (++remaining < argc);
- }
-
- return result;
-}
-
-
-/* Print the version information. */
-static void
-print_version (FILE *stream, struct argp_state *state)
-{
- fprintf (stream, "strip (%s) %s\n", PACKAGE_NAME, VERSION);
- fprintf (stream, gettext ("\
-Copyright (C) %s Red Hat, Inc.\n\
-This is free software; see the source for copying conditions. There is NO\n\
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2004");
- fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
-}
-
-
-/* Handle program arguments. */
-static error_t
-parse_opt (int key, char *arg, struct argp_state *state)
-{
- switch (key)
- {
- case 'f':
- debug_fname = arg;
- break;
-
- case 'o':
- output_fname = arg;
- break;
-
- case 'p':
- preserve_dates = true;
- break;
-
- case OPT_REMOVE_COMMENT:
- remove_comment = true;
- break;
-
- case 'g':
- remove_debug = true;
- break;
-
- case OPT_PERMISSIVE:
- permissive = true;
- break;
-
- default:
- return ARGP_ERR_UNKNOWN;
- }
- return 0;
-}
-
-
-static char *
-more_help (int key, const char *text, void *input)
-{
- char *buf;
-
- switch (key)
- {
- case ARGP_KEY_HELP_EXTRA:
- /* We print some extra information. */
- if (asprintf (&buf, gettext ("Please report bugs to %s.\n"),
- PACKAGE_BUGREPORT) < 0)
- buf = NULL;
- return buf;
-
- default:
- break;
- }
- return (char *) text;
-}
-
-
-static int
-process_file (const char *fname)
-{
- /* If we have to preserve the modify and access timestamps get them
- now. We cannot use fstat() after opening the file since the open
- would change the access time. */
- struct stat64 pre_st;
- struct timeval tv[2];
- again:
- if (preserve_dates)
- {
- if (stat64 (fname, &pre_st) != 0)
- {
- error (0, errno, gettext ("cannot stat input file \"%s\""), fname);
- return 1;
- }
-
- /* If we have to preserve the timestamp, we need it in the
- format utimes() understands. */
- TIMESPEC_TO_TIMEVAL (&tv[0], &pre_st.st_atim);
- TIMESPEC_TO_TIMEVAL (&tv[1], &pre_st.st_mtim);
- }
-
- /* Open the file. */
- int fd = open (fname, O_RDWR);
- if (fd == -1)
- {
- error (0, errno, gettext ("while opening \"%s\""), fname);
- return 1;
- }
-
- /* We always use fstat() even if we called stat() before. This is
- done to make sure the information returned by stat() is for the
- same file. */
- struct stat64 st;
- if (fstat64 (fd, &st) != 0)
- {
- error (0, errno, gettext ("cannot stat input file \"%s\""), fname);
- return 1;
- }
- /* Paranoid mode on. */
- if (preserve_dates
- && (st.st_ino != pre_st.st_ino || st.st_dev != pre_st.st_dev))
- {
- /* We detected a race. Try again. */
- close (fd);
- goto again;
- }
-
- /* Now get the ELF descriptor. */
- Elf *elf = elf_begin (fd, ELF_C_RDWR, NULL);
- int result;
- switch (elf_kind (elf))
- {
- case ELF_K_ELF:
- result = handle_elf (fd, elf, NULL, fname, st.st_mode & ACCESSPERMS,
- preserve_dates ? tv : NULL);
- break;
-
- case ELF_K_AR:
- /* It is not possible to strip the content of an archive direct
- the output to a specific file. */
- if (unlikely (output_fname != NULL))
- {
- error (0, 0, gettext ("%s: cannot use -o when stripping archive"),
- fname);
- result = 1;
- }
- else
- result = handle_ar (fd, elf, NULL, fname, preserve_dates ? tv : NULL);
- break;
-
- default:
- error (0, 0, gettext ("%s: File format not recognized"), fname);
- result = 1;
- break;
- }
-
- if (unlikely (elf_end (elf) != 0))
- INTERNAL_ERROR (fname);
-
- close (fd);
-
- return result;
-}
-
-
-/* Maximum size of array allocated on stack. */
-#define MAX_STACK_ALLOC (400 * 1024)
-
-
-static uint32_t
-crc32_file (int fd, uint32_t *resp)
-{
- unsigned char buffer[1024 * 8];
- uint32_t crc = 0;
- ssize_t count;
-
- /* We have to rewind. */
- if (lseek (fd, 0, SEEK_SET) < 0)
- return 1;
-
- while ((count = TEMP_FAILURE_RETRY (read (fd, buffer, sizeof (buffer)))) > 0)
- crc = crc32 (crc, buffer, count);
-
- *resp = crc;
-
- return count != 0;
-}
-
-
-static int
-handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
- mode_t mode, struct timeval tvp[2])
-{
- size_t prefix_len = prefix == NULL ? 0 : strlen (prefix);
- size_t fname_len = strlen (fname) + 1;
- char *fullname = alloca (prefix_len + 1 + fname_len);
- char *cp = fullname;
- Elf *newelf;
- Elf *debugelf = NULL;
- char *tmp_debug_fname = NULL;
- int result = 0;
- GElf_Ehdr ehdr_mem;
- GElf_Ehdr *ehdr;
- size_t shstrndx;
- size_t shnum;
- struct shdr_info
- {
- Elf_Scn *scn;
- GElf_Shdr shdr;
- Elf_Data *data;
- const char *name;
- Elf32_Word idx; /* Index in new file. */
- Elf32_Word old_sh_link; /* Original value of shdr.sh_link. */
- Elf32_Word symtab_idx;
- Elf32_Word version_idx;
- Elf32_Word group_idx;
- Elf32_Word group_cnt;
- Elf_Scn *newscn;
- struct Ebl_Strent *se;
- Elf32_Word *newsymidx;
- } *shdr_info = NULL;
- Elf_Scn *scn;
- size_t cnt;
- size_t idx;
- bool changes;
- GElf_Ehdr newehdr_mem;
- GElf_Ehdr *newehdr;
- GElf_Ehdr debugehdr_mem;
- GElf_Ehdr *debugehdr;
- struct Ebl_Strtab *shst = NULL;
- uint32_t debug_crc;
- bool any_symtab_changes = false;
- Elf_Data *shstrtab_data = NULL;
-
- /* Create the full name of the file. */
- if (prefix != NULL)
- {
- cp = mempcpy (cp, prefix, prefix_len);
- *cp++ = ':';
- }
- memcpy (cp, fname, fname_len);
-
- /* If we are not replacing the input file open a new file here. */
- if (output_fname != NULL)
- {
- fd = open (output_fname, O_RDWR | O_CREAT, mode);
- if (unlikely (fd == -1))
- {
- error (0, errno, gettext ("cannot open `%s'"), output_fname);
- return 1;
- }
- }
-
- int debug_fd = -1;
-
- /* Get the EBL handling. The -g option is currently the only reason
- we need EBL so dont open the backend unless necessary. */
- Ebl *ebl = NULL;
- if (remove_debug)
- {
- ebl = ebl_openbackend (elf);
- if (ebl == NULL)
- {
- error (0, errno, gettext ("cannot open EBL backend"));
- result = 1;
- goto fail;
- }
- }
-
- /* Open the additional file the debug information will be stored in. */
- if (debug_fname != NULL)
- {
- /* Create a temporary file name. We do not want to overwrite
- the debug file if the file would not contain any
- information. */
- size_t debug_fname_len = strlen (debug_fname);
- tmp_debug_fname = (char *) alloca (debug_fname_len + sizeof (".XXXXXX"));
- strcpy (mempcpy (tmp_debug_fname, debug_fname, debug_fname_len),
- ".XXXXXX");
-
- debug_fd = mkstemp (tmp_debug_fname);
- if (unlikely (debug_fd == -1))
- {
- error (0, errno, gettext ("cannot open `%s'"), debug_fname);
- result = 1;
- goto fail;
- }
- }
-
- /* Get the information from the old file. */
- ehdr = gelf_getehdr (elf, &ehdr_mem);
- if (ehdr == NULL)
- INTERNAL_ERROR (fname);
-
- /* Get the section header string table index. */
- if (unlikely (elf_getshstrndx (elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- gettext ("cannot get section header string table index"));
-
- /* We now create a new ELF descriptor for the same file. We
- construct it almost exactly in the same way with some information
- dropped. */
- if (output_fname != NULL)
- newelf = elf_begin (fd, ELF_C_WRITE_MMAP, NULL);
- else
- newelf = elf_clone (elf, ELF_C_EMPTY);
-
- if (unlikely (gelf_newehdr (newelf, gelf_getclass (elf)) == 0)
- || (ehdr->e_type != ET_REL
- && unlikely (gelf_newphdr (newelf, ehdr->e_phnum) == 0)))
- {
- error (0, 0, gettext ("cannot create new file `%s': %s"),
- output_fname, elf_errmsg (-1));
- goto fail;
- }
-
- /* Copy over the old program header if needed. */
- if (ehdr->e_type != ET_REL)
- for (cnt = 0; cnt < ehdr->e_phnum; ++cnt)
- {
- GElf_Phdr phdr_mem;
- GElf_Phdr *phdr;
-
- phdr = gelf_getphdr (elf, cnt, &phdr_mem);
- if (phdr == NULL
- || unlikely (gelf_update_phdr (newelf, cnt, phdr) == 0))
- INTERNAL_ERROR (fname);
- }
-
- if (debug_fname != NULL)
- {
- /* Also create an ELF descriptor for the debug file */
- debugelf = elf_begin (debug_fd, ELF_C_WRITE_MMAP, NULL);
- if (unlikely (gelf_newehdr (debugelf, gelf_getclass (elf)) == 0)
- || (ehdr->e_type != ET_REL
- && unlikely (gelf_newphdr (debugelf, ehdr->e_phnum) == 0)))
- {
- error (0, 0, gettext ("cannot create new file `%s': %s"),
- debug_fname, elf_errmsg (-1));
- goto fail_close;
- }
-
- /* Copy over the old program header if needed. */
- if (ehdr->e_type != ET_REL)
- for (cnt = 0; cnt < ehdr->e_phnum; ++cnt)
- {
- GElf_Phdr phdr_mem;
- GElf_Phdr *phdr;
-
- phdr = gelf_getphdr (elf, cnt, &phdr_mem);
- if (phdr == NULL
- || unlikely (gelf_update_phdr (debugelf, cnt, phdr) == 0))
- INTERNAL_ERROR (fname);
- }
- }
-
- /* Number of sections. */
- if (unlikely (elf_getshnum (elf, &shnum) < 0))
- {
- error (0, 0, gettext ("cannot determine number of sections: %s"),
- elf_errmsg (-1));
- goto fail_close;
- }
-
- /* Storage for section information. We leave room for two more
- entries since we unconditionally create a section header string
- table. Maybe some weird tool created an ELF file without one.
- The other one is used for the debug link section. */
- if ((shnum + 2) * sizeof (struct shdr_info) > MAX_STACK_ALLOC)
- shdr_info = (struct shdr_info *) xcalloc (shnum + 2,
- sizeof (struct shdr_info));
- else
- {
- shdr_info = (struct shdr_info *) alloca ((shnum + 2)
- * sizeof (struct shdr_info));
- memset (shdr_info, '\0', (shnum + 2) * sizeof (struct shdr_info));
- }
-
- /* Prepare section information data structure. */
- scn = NULL;
- cnt = 1;
- while ((scn = elf_nextscn (elf, scn)) != NULL)
- {
- /* This should always be true (i.e., there should not be any
- holes in the numbering). */
- assert (elf_ndxscn (scn) == cnt);
-
- shdr_info[cnt].scn = scn;
-
- /* Get the header. */
- if (gelf_getshdr (scn, &shdr_info[cnt].shdr) == NULL)
- INTERNAL_ERROR (fname);
-
- /* Get the name of the section. */
- shdr_info[cnt].name = elf_strptr (elf, shstrndx,
- shdr_info[cnt].shdr.sh_name);
- if (shdr_info[cnt].name == NULL)
- {
- error (0, 0, gettext ("illformed file `%s'"), fname);
- goto fail_close;
- }
-
- /* Mark them as present but not yet investigated. */
- shdr_info[cnt].idx = 1;
-
- /* Remember the shdr.sh_link value. */
- shdr_info[cnt].old_sh_link = shdr_info[cnt].shdr.sh_link;
-
- /* Sections in files other than relocatable object files which
- are not loaded can be freely moved by us. In relocatable
- object files everything can be moved. */
- if (ehdr->e_type == ET_REL
- || (shdr_info[cnt].shdr.sh_flags & SHF_ALLOC) == 0)
- shdr_info[cnt].shdr.sh_offset = 0;
-
- /* If this is an extended section index table store an
- appropriate reference. */
- if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX))
- {
- assert (shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx == 0);
- shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt;
- }
- else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP))
- {
- Elf32_Word *grpref;
- size_t inner;
-
- /* Cross-reference the sections contained in the section
- group. */
- shdr_info[cnt].data = elf_getdata (shdr_info[cnt].scn, NULL);
- if (shdr_info[cnt].data == NULL)
- INTERNAL_ERROR (fname);
-
- /* XXX Fix for unaligned access. */
- grpref = (Elf32_Word *) shdr_info[cnt].data->d_buf;
- for (inner = 1;
- inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word);
- ++inner)
- shdr_info[grpref[inner]].group_idx = cnt;
-
- if (inner == 1 || (inner == 2 && (grpref[0] & GRP_COMDAT) == 0))
- /* If the section group contains only one element and this
- is n COMDAT section we can drop it right away. */
- shdr_info[cnt].idx = 0;
- else
- shdr_info[cnt].group_cnt = inner - 1;
- }
- else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym))
- {
- assert (shdr_info[shdr_info[cnt].shdr.sh_link].version_idx == 0);
- shdr_info[shdr_info[cnt].shdr.sh_link].version_idx = cnt;
- }
-
- /* If this section is part of a group make sure it is not
- discarded right away. */
- if ((shdr_info[cnt].shdr.sh_flags & SHF_GROUP) != 0)
- {
- assert (shdr_info[cnt].group_idx != 0);
-
- if (shdr_info[shdr_info[cnt].group_idx].idx == 0)
- {
- /* The section group section will be removed. */
- shdr_info[cnt].group_idx = 0;
- shdr_info[cnt].shdr.sh_flags &= ~SHF_GROUP;
- }
- }
-
- /* Increment the counter. */
- ++cnt;
- }
-
- /* Now determine which sections can go away. The general rule is that
- all sections which are not used at runtime are stripped out. But
- there are a few exceptions:
-
- - special sections named ".comment" and ".note" are kept
- - OS or architecture specific sections are kept since we might not
- know how to handle them
- - if a section is referred to from a section which is not removed
- in the sh_link or sh_info element it cannot be removed either
- */
- for (cnt = 1; cnt < shnum; ++cnt)
- /* Check whether the section can be removed. */
- if (SECTION_STRIP_P (ebl, elf, ehdr, &shdr_info[cnt].shdr,
- shdr_info[cnt].name, remove_comment, remove_debug))
- {
- /* For now assume this section will be removed. */
- shdr_info[cnt].idx = 0;
-
- idx = shdr_info[cnt].group_idx;
- while (idx != 0)
- {
- /* If the references section group is a normal section
- group and has one element remaining, or if it is an
- empty COMDAT section group it is removed. */
- bool is_comdat;
-
- /* The section group data is already loaded. */
- assert (shdr_info[idx].data != NULL);
-
- is_comdat = (((Elf32_Word *) shdr_info[idx].data->d_buf)[0]
- & GRP_COMDAT) != 0;
-
- --shdr_info[idx].group_cnt;
- if ((!is_comdat && shdr_info[idx].group_cnt == 1)
- || (is_comdat && shdr_info[idx].group_cnt == 0))
- {
- shdr_info[idx].idx = 0;
- /* Continue recursively. */
- idx = shdr_info[idx].group_idx;
- }
- else
- break;
- }
- }
-
- /* Mark the SHT_NULL section as handled. */
- shdr_info[0].idx = 2;
-
-
- /* Handle exceptions: section groups and cross-references. We might
- have to repeat this a few times since the resetting of the flag
- might propagate. */
- do
- {
- changes = false;
-
- for (cnt = 1; cnt < shnum; ++cnt)
- {
- if (shdr_info[cnt].idx == 0)
- {
- /* If a relocation section is marked as being removed make
- sure the section it is relocating is removed, too. */
- if ((shdr_info[cnt].shdr.sh_type == SHT_REL
- || shdr_info[cnt].shdr.sh_type == SHT_RELA)
- && shdr_info[shdr_info[cnt].shdr.sh_info].idx != 0)
- shdr_info[cnt].idx = 1;
- }
-
- if (shdr_info[cnt].idx == 1)
- {
- /* The content of symbol tables we don't remove must not
- reference any section which we do remove. Otherwise
- we cannot remove the section. */
- if (shdr_info[cnt].shdr.sh_type == SHT_DYNSYM
- || shdr_info[cnt].shdr.sh_type == SHT_SYMTAB)
- {
- Elf_Data *symdata;
- Elf_Data *xndxdata;
- size_t elsize;
-
- /* Make sure the data is loaded. */
- if (shdr_info[cnt].data == NULL)
- {
- shdr_info[cnt].data
- = elf_getdata (shdr_info[cnt].scn, NULL);
- if (shdr_info[cnt].data == NULL)
- INTERNAL_ERROR (fname);
- }
- symdata = shdr_info[cnt].data;
-
- /* If there is an extended section index table load it
- as well. */
- if (shdr_info[cnt].symtab_idx != 0
- && shdr_info[shdr_info[cnt].symtab_idx].data == NULL)
- {
- assert (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB);
-
- shdr_info[shdr_info[cnt].symtab_idx].data
- = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
- NULL);
- if (shdr_info[shdr_info[cnt].symtab_idx].data == NULL)
- INTERNAL_ERROR (fname);
- }
- xndxdata = shdr_info[shdr_info[cnt].symtab_idx].data;
-
- /* Go through all symbols and make sure the section they
- reference is not removed. */
- elsize = gelf_fsize (elf, ELF_T_SYM, 1, ehdr->e_version);
-
- for (size_t inner = 0;
- inner < shdr_info[cnt].data->d_size / elsize;
- ++inner)
- {
- GElf_Sym sym_mem;
- Elf32_Word xndx;
- GElf_Sym *sym;
- size_t scnidx;
-
- sym = gelf_getsymshndx (symdata, xndxdata, inner,
- &sym_mem, &xndx);
- if (sym == NULL)
- INTERNAL_ERROR (fname);
-
- scnidx = sym->st_shndx;
- if (scnidx == SHN_UNDEF || scnidx >= shnum
- || (scnidx >= SHN_LORESERVE
- && scnidx <= SHN_HIRESERVE
- && scnidx != SHN_XINDEX)
- /* Don't count in the section symbols. */
- || GELF_ST_TYPE (sym->st_info) == STT_SECTION)
- /* This is no section index, leave it alone. */
- continue;
- else if (scnidx == SHN_XINDEX)
- scnidx = xndx;
-
- if (shdr_info[scnidx].idx == 0)
- {
- /* Mark this section as used. */
- shdr_info[scnidx].idx = 1;
- changes |= scnidx < cnt;
- }
- }
- }
-
- /* Cross referencing happens:
- - for the cases the ELF specification says. That are
- + SHT_DYNAMIC in sh_link to string table
- + SHT_HASH in sh_link to symbol table
- + SHT_REL and SHT_RELA in sh_link to symbol table
- + SHT_SYMTAB and SHT_DYNSYM in sh_link to string table
- + SHT_GROUP in sh_link to symbol table
- + SHT_SYMTAB_SHNDX in sh_link to symbol table
- Other (OS or architecture-specific) sections might as
- well use this field so we process it unconditionally.
- - references inside section groups
- - specially marked references in sh_info if the SHF_INFO_LINK
- flag is set
- */
-
- if (shdr_info[shdr_info[cnt].shdr.sh_link].idx == 0)
- {
- shdr_info[shdr_info[cnt].shdr.sh_link].idx = 1;
- changes |= shdr_info[cnt].shdr.sh_link < cnt;
- }
-
- /* Handle references through sh_info. */
- if (SH_INFO_LINK_P (&shdr_info[cnt].shdr)
- && shdr_info[shdr_info[cnt].shdr.sh_info].idx == 0)
- {
- shdr_info[shdr_info[cnt].shdr.sh_info].idx = 1;
- changes |= shdr_info[cnt].shdr.sh_info < cnt;
- }
-
- /* Mark the section as investigated. */
- shdr_info[cnt].idx = 2;
- }
- }
- }
- while (changes);
-
- /* Write out a copy of all the sections to the debug output file.
- The ones that are not removed in the stripped file are SHT_NOBITS */
- if (debug_fname != NULL)
- {
- for (cnt = 1; cnt < shnum; ++cnt)
- {
- Elf_Data *debugdata;
- GElf_Shdr debugshdr;
- int discard_section;
-
- scn = elf_newscn (debugelf);
- if (scn == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("while generating output file: %s"),
- elf_errmsg (-1));
-
- discard_section = shdr_info[cnt].idx > 0 && cnt != ehdr->e_shstrndx;
-
- /* Set the section header in the new file. */
- debugshdr = shdr_info[cnt].shdr;
- if (discard_section)
- debugshdr.sh_type = SHT_NOBITS;
-
- if (unlikely (gelf_update_shdr (scn, &debugshdr)) == 0)
- /* There cannot be any overflows. */
- INTERNAL_ERROR (fname);
-
- /* Get the data from the old file if necessary. */
- if (shdr_info[cnt].data == NULL)
- {
- shdr_info[cnt].data = elf_getdata (shdr_info[cnt].scn, NULL);
- if (shdr_info[cnt].data == NULL)
- INTERNAL_ERROR (fname);
- }
-
- /* Set the data. This is done by copying from the old file. */
- debugdata = elf_newdata (scn);
- if (debugdata == NULL)
- INTERNAL_ERROR (fname);
-
- /* Copy the structure. */
- *debugdata = *shdr_info[cnt].data;
- if (discard_section)
- debugdata->d_buf = NULL;
- }
-
- /* Finish the ELF header. Fill in the fields not handled by
- libelf from the old file. */
- debugehdr = gelf_getehdr (debugelf, &debugehdr_mem);
- if (debugehdr == NULL)
- INTERNAL_ERROR (fname);
-
- memcpy (debugehdr->e_ident, ehdr->e_ident, EI_NIDENT);
- debugehdr->e_type = ehdr->e_type;
- debugehdr->e_machine = ehdr->e_machine;
- debugehdr->e_version = ehdr->e_version;
- debugehdr->e_entry = ehdr->e_entry;
- debugehdr->e_flags = ehdr->e_flags;
- debugehdr->e_shstrndx = ehdr->e_shstrndx;
-
- if (unlikely (gelf_update_ehdr (debugelf, debugehdr)) == 0)
- {
- error (0, 0, gettext ("%s: error while creating ELF header: %s"),
- debug_fname, elf_errmsg (-1));
- result = 1;
- goto fail_close;
- }
-
- /* Finally write the file. */
- if (unlikely (elf_update (debugelf, ELF_C_WRITE)) == -1)
- {
- error (0, 0, gettext ("while writing `%s': %s"),
- debug_fname, elf_errmsg (-1));
- result = 1;
- goto fail_close;
- }
-
- /* Create the real output file. First rename, then change the
- mode. */
- if (rename (tmp_debug_fname, debug_fname) != 0
- || fchmod (debug_fd, mode) != 0)
- {
- error (0, errno, gettext ("while creating '%s'"), debug_fname);
- result = 1;
- goto fail_close;
- }
-
- /* The temporary file does not exist anymore. */
- tmp_debug_fname = NULL;
-
- /* Compute the checksum which we will add to the executable. */
- if (crc32_file (debug_fd, &debug_crc) != 0)
- {
- error (0, errno,
- gettext ("while computing checksum for debug information"));
- unlink (debug_fname);
- result = 1;
- goto fail_close;
- }
-
- }
-
- /* Mark the section header string table as unused, we will create
- a new one. */
- shdr_info[shstrndx].idx = 0;
-
- /* We need a string table for the section headers. */
- shst = ebl_strtabinit (true);
- if (shst == NULL)
- error (EXIT_FAILURE, errno, gettext ("while preparing output for `%s'"),
- output_fname ?: fname);
-
- /* Assign new section numbers. */
- shdr_info[0].idx = 0;
- for (cnt = idx = 1; cnt < shnum; ++cnt)
- if (shdr_info[cnt].idx > 0)
- {
- shdr_info[cnt].idx = idx++;
-
- /* Create a new section. */
- shdr_info[cnt].newscn = elf_newscn (newelf);
- if (shdr_info[cnt].newscn == NULL)
- error (EXIT_FAILURE, 0, gettext ("while generating output file: %s"),
- elf_errmsg (-1));
-
- assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx);
-
- /* Add this name to the section header string table. */
- shdr_info[cnt].se = ebl_strtabadd (shst, shdr_info[cnt].name, 0);
- }
-
- /* Test whether we are doing anything at all. */
- if (cnt == idx)
- /* Nope, all removable sections are already gone. */
- goto fail_close;
-
- /* Create the reference to the file with the debug info. */
- if (debug_fname != NULL)
- {
- char *debug_basename;
- off_t crc_offset;
-
- /* Add the section header string table section name. */
- shdr_info[cnt].se = ebl_strtabadd (shst, ".gnu_debuglink", 15);
- shdr_info[cnt].idx = idx++;
-
- /* Create the section header. */
- shdr_info[cnt].shdr.sh_type = SHT_PROGBITS;
- shdr_info[cnt].shdr.sh_flags = 0;
- shdr_info[cnt].shdr.sh_addr = 0;
- shdr_info[cnt].shdr.sh_link = SHN_UNDEF;
- shdr_info[cnt].shdr.sh_info = SHN_UNDEF;
- shdr_info[cnt].shdr.sh_entsize = 0;
- shdr_info[cnt].shdr.sh_addralign = 4;
- /* We set the offset to zero here. Before we write the ELF file the
- field must have the correct value. This is done in the final
- loop over all section. Then we have all the information needed. */
- shdr_info[cnt].shdr.sh_offset = 0;
-
- /* Create the section. */
- shdr_info[cnt].newscn = elf_newscn (newelf);
- if (shdr_info[cnt].newscn == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("while create section header section: %s"),
- elf_errmsg (-1));
- assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx);
-
- shdr_info[cnt].data = elf_newdata (shdr_info[cnt].newscn);
- if (shdr_info[cnt].data == NULL)
- error (EXIT_FAILURE, 0, gettext ("cannot allocate section data: %s"),
- elf_errmsg (-1));
-
- debug_basename = basename (debug_fname);
- crc_offset = strlen (debug_basename) + 1;
- /* Align to 4 byte boundary */
- crc_offset = ((crc_offset - 1) & ~3) + 4;
-
- shdr_info[cnt].data->d_align = 4;
- shdr_info[cnt].shdr.sh_size = shdr_info[cnt].data->d_size
- = crc_offset + 4;
- shdr_info[cnt].data->d_buf = xcalloc (1, shdr_info[cnt].data->d_size);
-
- strcpy (shdr_info[cnt].data->d_buf, debug_basename);
- /* Store the crc value in the correct byteorder */
- if ((__BYTE_ORDER == __LITTLE_ENDIAN
- && ehdr->e_ident[EI_DATA] == ELFDATA2MSB)
- || (__BYTE_ORDER == __BIG_ENDIAN
- && ehdr->e_ident[EI_DATA] == ELFDATA2LSB))
- debug_crc = bswap_32 (debug_crc);
- memcpy ((char *)shdr_info[cnt].data->d_buf + crc_offset,
- (char *) &debug_crc, 4);
-
- /* One more section done. */
- ++cnt;
- }
-
- /* Index of the section header table in the shdr_info array. */
- size_t shdridx = cnt;
-
- /* Add the section header string table section name. */
- shdr_info[cnt].se = ebl_strtabadd (shst, ".shstrtab", 10);
- shdr_info[cnt].idx = idx;
-
- /* Create the section header. */
- shdr_info[cnt].shdr.sh_type = SHT_STRTAB;
- shdr_info[cnt].shdr.sh_flags = 0;
- shdr_info[cnt].shdr.sh_addr = 0;
- shdr_info[cnt].shdr.sh_link = SHN_UNDEF;
- shdr_info[cnt].shdr.sh_info = SHN_UNDEF;
- shdr_info[cnt].shdr.sh_entsize = 0;
- /* We set the offset to zero here. Before we write the ELF file the
- field must have the correct value. This is done in the final
- loop over all section. Then we have all the information needed. */
- shdr_info[cnt].shdr.sh_offset = 0;
- shdr_info[cnt].shdr.sh_addralign = 1;
-
- /* Create the section. */
- shdr_info[cnt].newscn = elf_newscn (newelf);
- if (shdr_info[cnt].newscn == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("while create section header section: %s"),
- elf_errmsg (-1));
- assert (elf_ndxscn (shdr_info[cnt].newscn) == idx);
-
- /* Finalize the string table and fill in the correct indices in the
- section headers. */
- shstrtab_data = elf_newdata (shdr_info[cnt].newscn);
- if (shstrtab_data == NULL)
- error (EXIT_FAILURE, 0,
- gettext ("while create section header string table: %s"),
- elf_errmsg (-1));
- ebl_strtabfinalize (shst, shstrtab_data);
-
- /* We have to set the section size. */
- shdr_info[cnt].shdr.sh_size = shstrtab_data->d_size;
-
- /* Update the section information. */
- GElf_Off lastoffset = 0;
- for (cnt = 1; cnt <= shdridx; ++cnt)
- if (shdr_info[cnt].idx > 0)
- {
- Elf_Data *newdata;
-
- scn = elf_getscn (newelf, shdr_info[cnt].idx);
- assert (scn != NULL);
-
- /* Update the name. */
- shdr_info[cnt].shdr.sh_name = ebl_strtaboffset (shdr_info[cnt].se);
-
- /* Update the section header from the input file. Some fields
- might be section indeces which now have to be adjusted. */
- if (shdr_info[cnt].shdr.sh_link != 0)
- shdr_info[cnt].shdr.sh_link =
- shdr_info[shdr_info[cnt].shdr.sh_link].idx;
-
- if (shdr_info[cnt].shdr.sh_type == SHT_GROUP)
- {
- assert (shdr_info[cnt].data != NULL);
-
- Elf32_Word *grpref = (Elf32_Word *) shdr_info[cnt].data->d_buf;
- for (size_t inner = 0;
- inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word);
- ++inner)
- grpref[inner] = shdr_info[grpref[inner]].idx;
- }
-
- /* Handle the SHT_REL, SHT_RELA, and SHF_INFO_LINK flag. */
- if (SH_INFO_LINK_P (&shdr_info[cnt].shdr))
- shdr_info[cnt].shdr.sh_info =
- shdr_info[shdr_info[cnt].shdr.sh_info].idx;
-
- /* Get the data from the old file if necessary. We already
- created the data for the section header string table. */
- if (cnt < shnum)
- {
- if (shdr_info[cnt].data == NULL)
- {
- shdr_info[cnt].data = elf_getdata (shdr_info[cnt].scn, NULL);
- if (shdr_info[cnt].data == NULL)
- INTERNAL_ERROR (fname);
- }
-
- /* Set the data. This is done by copying from the old file. */
- newdata = elf_newdata (scn);
- if (newdata == NULL)
- INTERNAL_ERROR (fname);
-
- /* Copy the structure. */
- *newdata = *shdr_info[cnt].data;
-
- /* We know the size. */
- shdr_info[cnt].shdr.sh_size = shdr_info[cnt].data->d_size;
-
- /* We have to adjust symtol tables. The st_shndx member might
- have to be updated. */
- if (shdr_info[cnt].shdr.sh_type == SHT_DYNSYM
- || shdr_info[cnt].shdr.sh_type == SHT_SYMTAB)
- {
- Elf_Data *versiondata = NULL;
- Elf_Data *shndxdata = NULL;
-
- size_t elsize = gelf_fsize (elf, ELF_T_SYM, 1,
- ehdr->e_version);
-
- if (shdr_info[cnt].symtab_idx != 0)
- {
- assert (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX);
- /* This section has extended section information.
- We have to modify that information, too. */
- shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
- NULL);
-
- assert ((versiondata->d_size / sizeof (Elf32_Word))
- >= shdr_info[cnt].data->d_size / elsize);
- }
-
- if (shdr_info[cnt].version_idx != 0)
- {
- assert (shdr_info[cnt].shdr.sh_type == SHT_DYNSYM);
- /* This section has associated version
- information. We have to modify that
- information, too. */
- versiondata = elf_getdata (shdr_info[shdr_info[cnt].version_idx].scn,
- NULL);
-
- assert ((versiondata->d_size / sizeof (GElf_Versym))
- >= shdr_info[cnt].data->d_size / elsize);
- }
-
- shdr_info[cnt].newsymidx
- = (Elf32_Word *) xcalloc (shdr_info[cnt].data->d_size
- / elsize, sizeof (Elf32_Word));
-
- bool last_was_local = true;
- size_t destidx;
- size_t inner;
- for (destidx = inner = 1;
- inner < shdr_info[cnt].data->d_size / elsize;
- ++inner)
- {
- Elf32_Word sec;
- GElf_Sym sym_mem;
- Elf32_Word xshndx;
- GElf_Sym *sym = gelf_getsymshndx (shdr_info[cnt].data,
- shndxdata, inner,
- &sym_mem, &xshndx);
- if (sym == NULL)
- INTERNAL_ERROR (fname);
-
- if (sym->st_shndx == SHN_UNDEF
- || (sym->st_shndx >= shnum
- && sym->st_shndx != SHN_XINDEX))
- {
- /* This is no section index, leave it alone
- unless it is moved. */
- if (destidx != inner
- && gelf_update_symshndx (shdr_info[cnt].data,
- shndxdata,
- destidx, sym,
- xshndx) == 0)
- INTERNAL_ERROR (fname);
-
- shdr_info[cnt].newsymidx[inner] = destidx++;
-
- if (last_was_local
- && GELF_ST_BIND (sym->st_info) != STB_LOCAL)
- {
- last_was_local = false;
- shdr_info[cnt].shdr.sh_info = destidx - 1;
- }
-
- continue;
- }
-
- /* Get the full section index, if necessary from the
- XINDEX table. */
- if (sym->st_shndx != SHN_XINDEX)
- sec = shdr_info[sym->st_shndx].idx;
- else
- {
- assert (shndxdata != NULL);
-
- sec = shdr_info[xshndx].idx;
- }
-
- if (sec != 0)
- {
- GElf_Section nshndx;
- Elf32_Word nxshndx;
-
- if (sec < SHN_LORESERVE)
- {
- nshndx = sec;
- nxshndx = 0;
- }
- else
- {
- nshndx = SHN_XINDEX;
- nxshndx = sec;
- }
-
- assert (sec < SHN_LORESERVE || shndxdata != NULL);
-
- if ((inner != destidx || nshndx != sym->st_shndx
- || (shndxdata != NULL && nxshndx != xshndx))
- && (sym->st_shndx = nshndx,
- gelf_update_symshndx (shdr_info[cnt].data,
- shndxdata,
- destidx, sym,
- nxshndx) == 0))
- INTERNAL_ERROR (fname);
-
- shdr_info[cnt].newsymidx[inner] = destidx++;
-
- if (last_was_local
- && GELF_ST_BIND (sym->st_info) != STB_LOCAL)
- {
- last_was_local = false;
- shdr_info[cnt].shdr.sh_info = destidx - 1;
- }
- }
- else
- /* This is a section symbol for a section which has
- been removed. */
- assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION);
- }
-
- if (destidx != inner)
- {
- /* The size of the symbol table changed. */
- shdr_info[cnt].shdr.sh_size = newdata->d_size
- = destidx * elsize;
- any_symtab_changes = true;
- }
- else
- {
- /* The symbol table didn't really change. */
- free (shdr_info[cnt].newsymidx);
- shdr_info[cnt].newsymidx = NULL;
- }
- }
- }
-
- /* If we have to, compute the offset of the section. */
- if (shdr_info[cnt].shdr.sh_offset == 0)
- shdr_info[cnt].shdr.sh_offset
- = ((lastoffset + shdr_info[cnt].shdr.sh_addralign - 1)
- & ~((GElf_Off) (shdr_info[cnt].shdr.sh_addralign - 1)));
-
- /* Set the section header in the new file. */
- if (unlikely (gelf_update_shdr (scn, &shdr_info[cnt].shdr) == 0))
- /* There cannot be any overflows. */
- INTERNAL_ERROR (fname);
-
- /* Remember the last section written so far. */
- GElf_Off filesz = (shdr_info[cnt].shdr.sh_type != SHT_NOBITS
- ? shdr_info[cnt].shdr.sh_size : 0);
- if (lastoffset < shdr_info[cnt].shdr.sh_offset + filesz)
- lastoffset = shdr_info[cnt].shdr.sh_offset + filesz;
- }
-
- /* Adjust symbol references if symbol tables changed. */
- if (any_symtab_changes)
- {
- /* Find all relocation sections which use this
- symbol table. */
- for (cnt = 1; cnt <= shdridx; ++cnt)
- {
- if (shdr_info[cnt].idx == 0)
- /* Ignore sections which are discarded. */
- continue;
-
- if (shdr_info[cnt].shdr.sh_type == SHT_REL
- || shdr_info[cnt].shdr.sh_type == SHT_RELA)
- {
- /* If the symbol table hasn't changed, do not do anything. */
- if (shdr_info[shdr_info[cnt].old_sh_link].newsymidx == NULL)
- continue;
-
- Elf32_Word *newsymidx
- = shdr_info[shdr_info[cnt].old_sh_link].newsymidx;
- Elf_Data *d = elf_getdata (elf_getscn (newelf,
- shdr_info[cnt].idx),
- NULL);
- assert (d != NULL);
- size_t nrels = (shdr_info[cnt].shdr.sh_size
- / shdr_info[cnt].shdr.sh_entsize);
-
- if (shdr_info[cnt].shdr.sh_type == SHT_REL)
- for (size_t relidx = 0; relidx < nrels; ++relidx)
- {
- GElf_Rel rel_mem;
- if (gelf_getrel (d, relidx, &rel_mem) == NULL)
- INTERNAL_ERROR (fname);
-
- size_t symidx = GELF_R_SYM (rel_mem.r_info);
- if (newsymidx[symidx] != symidx)
- {
- rel_mem.r_info
- = GELF_R_INFO (newsymidx[symidx],
- GELF_R_TYPE (rel_mem.r_info));
-
- if (gelf_update_rel (d, relidx, &rel_mem) == 0)
- INTERNAL_ERROR (fname);
- }
- }
- else
- for (size_t relidx = 0; relidx < nrels; ++relidx)
- {
- GElf_Rela rel_mem;
- if (gelf_getrela (d, relidx, &rel_mem) == NULL)
- INTERNAL_ERROR (fname);
-
- size_t symidx = GELF_R_SYM (rel_mem.r_info);
- if (newsymidx[symidx] != symidx)
- {
- rel_mem.r_info
- = GELF_R_INFO (newsymidx[symidx],
- GELF_R_TYPE (rel_mem.r_info));
-
- if (gelf_update_rela (d, relidx, &rel_mem) == 0)
- INTERNAL_ERROR (fname);
- }
- }
- }
- else if (shdr_info[cnt].shdr.sh_type == SHT_HASH)
- {
- /* We have to recompute the hash table. */
- Elf32_Word symtabidx = shdr_info[cnt].old_sh_link;
-
- /* We do not have to do anything if the symbol table was
- not changed. */
- if (shdr_info[symtabidx].newsymidx == NULL)
- continue;
-
- /* The symbol version section in the new file. */
- scn = elf_getscn (newelf, shdr_info[cnt].idx);
-
- /* The symbol table data. */
- Elf_Data *symd = elf_getdata (elf_getscn (newelf,
- shdr_info[symtabidx].idx),
- NULL);
- assert (symd != NULL);
-
- /* The hash table data. */
- Elf_Data *hashd = elf_getdata (scn, NULL);
- assert (hashd != NULL);
-
- if (shdr_info[cnt].shdr.sh_entsize == sizeof (Elf32_Word))
- {
- /* Sane arches first. */
- Elf32_Word *bucket = (Elf32_Word *) hashd->d_buf;
-
- size_t strshndx = shdr_info[symtabidx].old_sh_link;
- size_t elsize = gelf_fsize (elf, ELF_T_SYM, 1,
- ehdr->e_version);
-
- /* Convert to the correct byte order. */
- if (gelf_xlatetom (newelf, hashd, hashd,
- BYTE_ORDER == LITTLE_ENDIAN
- ? ELFDATA2LSB : ELFDATA2MSB) == NULL)
- INTERNAL_ERROR (fname);
-
- /* Adjust the nchain value. The symbol table size
- changed. We keep the same size for the bucket array. */
- bucket[1] = symd->d_size / elsize;
- Elf32_Word nbucket = bucket[0];
- bucket += 2;
- Elf32_Word *chain = bucket + nbucket;
-
- /* New size of the section. */
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
- shdr->sh_size = hashd->d_size
- = (2 + symd->d_size / elsize + nbucket)
- * sizeof (Elf32_Word);
- (void) gelf_update_shdr (scn, shdr);
-
- /* Clear the arrays. */
- memset (bucket, '\0',
- (symd->d_size / elsize + nbucket)
- * sizeof (Elf32_Word));
-
- for (size_t inner = shdr_info[symtabidx].shdr.sh_info;
- inner < symd->d_size / elsize; ++inner)
- {
- GElf_Sym sym_mem;
- GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem);
- assert (sym != NULL);
-
- const char *name = elf_strptr (elf, strshndx,
- sym->st_name);
- assert (name != NULL);
- size_t hidx = elf_hash (name) % nbucket;
-
- if (bucket[hidx] == 0)
- bucket[hidx] = inner;
- else
- {
- hidx = bucket[hidx];
-
- while (chain[hidx] != 0)
- hidx = chain[hidx];
-
- chain[hidx] = inner;
- }
- }
- }
- else
- {
- /* Alpha and S390 64-bit use 64-bit SHT_HASH entries. */
- assert (shdr_info[cnt].shdr.sh_entsize
- == sizeof (Elf64_Xword));
-
- Elf64_Xword *bucket = (Elf64_Xword *) hashd->d_buf;
-
- size_t strshndx = shdr_info[symtabidx].old_sh_link;
- size_t elsize = gelf_fsize (elf, ELF_T_SYM, 1,
- ehdr->e_version);
-
- /* Convert to the correct byte order. */
- if (gelf_xlatetom (newelf, hashd, hashd,
- BYTE_ORDER == LITTLE_ENDIAN
- ? ELFDATA2LSB : ELFDATA2MSB) == NULL)
- INTERNAL_ERROR (fname);
-
- /* Adjust the nchain value. The symbol table size
- changed. We keep the same size for the bucket array. */
- bucket[1] = symd->d_size / elsize;
- Elf64_Xword nbucket = bucket[0];
- bucket += 2;
- Elf64_Xword *chain = bucket + nbucket;
-
- /* New size of the section. */
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
- shdr->sh_size = hashd->d_size
- = (2 + symd->d_size / elsize + nbucket)
- * sizeof (Elf64_Xword);
- (void) gelf_update_shdr (scn, shdr);
-
- /* Clear the arrays. */
- memset (bucket, '\0',
- (symd->d_size / elsize + nbucket)
- * sizeof (Elf64_Xword));
-
- for (size_t inner = shdr_info[symtabidx].shdr.sh_info;
- inner < symd->d_size / elsize; ++inner)
- {
- GElf_Sym sym_mem;
- GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem);
- assert (sym != NULL);
-
- const char *name = elf_strptr (elf, strshndx,
- sym->st_name);
- assert (name != NULL);
- size_t hidx = elf_hash (name) % nbucket;
-
- if (bucket[hidx] == 0)
- bucket[hidx] = inner;
- else
- {
- hidx = bucket[hidx];
-
- while (chain[hidx] != 0)
- hidx = chain[hidx];
-
- chain[hidx] = inner;
- }
- }
- }
-
- /* Convert back to the file byte order. */
- if (gelf_xlatetof (newelf, hashd, hashd,
- BYTE_ORDER == LITTLE_ENDIAN
- ? ELFDATA2LSB : ELFDATA2MSB) == NULL)
- INTERNAL_ERROR (fname);
- }
- else if (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym)
- {
- /* If the symbol table changed we have to adjust the
- entries. */
- Elf32_Word symtabidx = shdr_info[cnt].old_sh_link;
-
- /* We do not have to do anything if the symbol table was
- not changed. */
- if (shdr_info[symtabidx].newsymidx == NULL)
- continue;
-
- /* The symbol version section in the new file. */
- scn = elf_getscn (newelf, shdr_info[cnt].idx);
-
- /* The symbol table data. */
- Elf_Data *symd = elf_getdata (elf_getscn (newelf,
- shdr_info[symtabidx].idx),
- NULL);
- assert (symd != NULL);
-
- /* The version symbol data. */
- Elf_Data *verd = elf_getdata (scn, NULL);
- assert (verd != NULL);
-
- /* Convert to the correct byte order. */
- if (gelf_xlatetom (newelf, verd, verd,
- BYTE_ORDER == LITTLE_ENDIAN
- ? ELFDATA2LSB : ELFDATA2MSB) == NULL)
- INTERNAL_ERROR (fname);
-
- /* The symbol version array. */
- GElf_Half *verstab = (GElf_Half *) verd->d_buf;
-
- /* New indices of the symbols. */
- Elf32_Word *newsymidx = shdr_info[symtabidx].newsymidx;
-
- /* Walk through the list and */
- size_t elsize = gelf_fsize (elf, verd->d_type, 1,
- ehdr->e_version);
- for (size_t inner = 1; inner < verd->d_size / elsize; ++inner)
- if (newsymidx[inner] != 0)
- /* Overwriting the same array works since the
- reordering can only move entries to lower indices
- in the array. */
- verstab[newsymidx[inner]] = verstab[inner];
-
- /* New size of the section. */
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
- shdr->sh_size = verd->d_size
- = gelf_fsize (newelf, verd->d_type,
- symd->d_size / gelf_fsize (elf, symd->d_type, 1,
- ehdr->e_version),
- ehdr->e_version);
- (void) gelf_update_shdr (scn, shdr);
-
- /* Convert back to the file byte order. */
- if (gelf_xlatetof (newelf, verd, verd,
- BYTE_ORDER == LITTLE_ENDIAN
- ? ELFDATA2LSB : ELFDATA2MSB) == NULL)
- INTERNAL_ERROR (fname);
- }
- else if (shdr_info[cnt].shdr.sh_type == SHT_GROUP)
- {
- /* Check whether the associated symbol table changed. */
- if (shdr_info[shdr_info[cnt].old_sh_link].newsymidx != NULL)
- {
- /* Yes the symbol table changed. Update the section
- header of the section group. */
- scn = elf_getscn (newelf, shdr_info[cnt].idx);
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
- assert (shdr != NULL);
-
- size_t stabidx = shdr_info[cnt].old_sh_link;
- shdr->sh_info = shdr_info[stabidx].newsymidx[shdr->sh_info];
-
- (void) gelf_update_shdr (scn, shdr);
- }
- }
- }
- }
-
- /* Finally finish the ELF header. Fill in the fields not handled by
- libelf from the old file. */
- newehdr = gelf_getehdr (newelf, &newehdr_mem);
- if (newehdr == NULL)
- INTERNAL_ERROR (fname);
-
- memcpy (newehdr->e_ident, ehdr->e_ident, EI_NIDENT);
- newehdr->e_type = ehdr->e_type;
- newehdr->e_machine = ehdr->e_machine;
- newehdr->e_version = ehdr->e_version;
- newehdr->e_entry = ehdr->e_entry;
- newehdr->e_flags = ehdr->e_flags;
- newehdr->e_phoff = ehdr->e_phoff;
- /* We need to position the section header table. */
- const size_t offsize = gelf_fsize (elf, ELF_T_OFF, 1, EV_CURRENT);
- newehdr->e_shoff = ((shdr_info[shdridx].shdr.sh_offset
- + shdr_info[shdridx].shdr.sh_size + offsize - 1)
- & ~((GElf_Off) (offsize - 1)));
- newehdr->e_shentsize = gelf_fsize (elf, ELF_T_SHDR, 1, EV_CURRENT);
-
- /* The new section header string table index. */
- if (likely (idx < SHN_HIRESERVE) && likely (idx != SHN_XINDEX))
- newehdr->e_shstrndx = idx;
- else
- {
- /* The index does not fit in the ELF header field. */
- shdr_info[0].scn = elf_getscn (elf, 0);
-
- if (gelf_getshdr (shdr_info[0].scn, &shdr_info[0].shdr) == NULL)
- INTERNAL_ERROR (fname);
-
- shdr_info[0].shdr.sh_link = idx;
- (void) gelf_update_shdr (shdr_info[0].scn, &shdr_info[0].shdr);
-
- newehdr->e_shstrndx = SHN_XINDEX;
- }
-
- if (gelf_update_ehdr (newelf, newehdr) == 0)
- {
- error (0, 0, gettext ("%s: error while creating ELF header: %s"),
- fname, elf_errmsg (-1));
- return 1;
- }
-
- /* We have everything from the old file. */
- if (elf_cntl (elf, ELF_C_FDDONE) != 0)
- {
- error (0, 0, gettext ("%s: error while reading the file: %s"),
- fname, elf_errmsg (-1));
- return 1;
- }
-
- /* The ELF library better follows our layout when this is not a
- relocatable object file. */
- elf_flagelf (newelf, ELF_C_SET,
- (ehdr->e_type != ET_REL ? ELF_F_LAYOUT : 0)
- | (permissive ? ELF_F_PERMISSIVE : 0));
-
- /* Finally write the file. */
- if (elf_update (newelf, ELF_C_WRITE) == -1)
- {
- error (0, 0, gettext ("while writing `%s': %s"),
- fname, elf_errmsg (-1));
- result = 1;
- }
-
- fail_close:
- if (shdr_info != NULL)
- {
- /* For some sections we might have created an table to map symbol
- table indices. */
- if (any_symtab_changes)
- for (cnt = 1; cnt <= shdridx; ++cnt)
- free (shdr_info[cnt].newsymidx);
-
- /* Free the memory. */
- if ((shnum + 2) * sizeof (struct shdr_info) > MAX_STACK_ALLOC)
- free (shdr_info);
- }
-
- /* Free other resources. */
- if (shstrtab_data != NULL)
- free (shstrtab_data->d_buf);
- if (shst != NULL)
- ebl_strtabfree (shst);
-
- /* That was it. Close the descriptors. */
- if (elf_end (newelf) != 0)
- {
- error (0, 0, gettext ("error while finishing `%s': %s"), fname,
- elf_errmsg (-1));
- result = 1;
- }
-
- if (debugelf != NULL && elf_end (debugelf) != 0)
- {
- error (0, 0, gettext ("error while finishing `%s': %s"), debug_fname,
- elf_errmsg (-1));
- result = 1;
- }
-
- fail:
- /* Close the EBL backend. */
- if (ebl != NULL)
- ebl_closebackend (ebl);
-
- /* Close debug file descriptor, if opened */
- if (debug_fd >= 0)
- {
- if (tmp_debug_fname != NULL)
- unlink (tmp_debug_fname);
- close (debug_fd);
- }
-
- /* If requested, preserve the timestamp. */
- if (tvp != NULL)
- {
- if (futimes (fd, tvp) != 0)
- {
- error (0, errno, gettext ("\
-cannot set access and modification date of \"%s\""),
- output_fname ?: fname);
- result = 1;
- }
- }
-
- /* Close the file descriptor if we created a new file. */
- if (output_fname != NULL)
- close (fd);
-
- return result;
-}
-
-
-static int
-handle_ar (int fd, Elf *elf, const char *prefix, const char *fname,
- struct timeval tvp[2])
-{
- size_t prefix_len = prefix == NULL ? 0 : strlen (prefix);
- size_t fname_len = strlen (fname) + 1;
- char new_prefix[prefix_len + 1 + fname_len];
- char *cp = new_prefix;
-
- /* Create the full name of the file. */
- if (prefix != NULL)
- {
- cp = mempcpy (cp, prefix, prefix_len);
- *cp++ = ':';
- }
- memcpy (cp, fname, fname_len);
-
-
- /* Process all the files contained in the archive. */
- Elf *subelf;
- Elf_Cmd cmd = ELF_C_RDWR;
- int result = 0;
- while ((subelf = elf_begin (fd, cmd, elf)) != NULL)
- {
- /* The the header for this element. */
- Elf_Arhdr *arhdr = elf_getarhdr (subelf);
-
- if (elf_kind (subelf) == ELF_K_ELF)
- result |= handle_elf (fd, subelf, new_prefix, arhdr->ar_name, 0, NULL);
- else if (elf_kind (subelf) == ELF_K_AR)
- result |= handle_ar (fd, subelf, new_prefix, arhdr->ar_name, NULL);
-
- /* Get next archive element. */
- cmd = elf_next (subelf);
- if (unlikely (elf_end (subelf) != 0))
- INTERNAL_ERROR (fname);
- }
-
- if (tvp != NULL)
- {
- if (unlikely (futimes (fd, tvp) != 0))
- {
- error (0, errno, gettext ("\
-cannot set access and modification date of \"%s\""), fname);
- result = 1;
- }
- }
-
- if (unlikely (close (fd) != 0))
- error (EXIT_FAILURE, errno, gettext ("while closing `%s'"), fname);
-
- return result;
-}
diff --git a/src/symbolhash.c b/src/symbolhash.c
deleted file mode 100644
index da2ae6f6..00000000
--- a/src/symbolhash.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Symbol hash table implementation.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <string.h>
-
-#include <ld.h>
-
-/* Definitions for the symbol hash table. */
-#define TYPE struct symbol *
-#define NAME ld_symbol_tab
-#define ITERATE 1
-#define COMPARE(a, b) strcmp ((a)->name, (b)->name)
-
-#include "../lib/dynamicsizehash.c"
diff --git a/src/symbolhash.h b/src/symbolhash.h
deleted file mode 100644
index a8798c2a..00000000
--- a/src/symbolhash.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef SYMBOLHASH_H
-#define SYMBOLHASH_H 1
-
-/* Definitions for the symbol hash table. */
-#define TYPE struct symbol *
-#define NAME ld_symbol_tab
-#define ITERATE 1
-#define COMPARE(a, b) strcmp ((a)->name, (b)->name)
-#include <dynamicsizehash.h>
-
-#endif /* symbolhash.h */
diff --git a/src/unaligned.h b/src/unaligned.h
deleted file mode 100644
index 524b35c8..00000000
--- a/src/unaligned.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Unaligned memory access functionality.
- Copyright (C) 2000, 2001, 2002, 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef _UNALIGNED_H
-#define _UNALIGNED_H 1
-
-#include <byteswap.h>
-#include <endian.h>
-
-
-#ifndef UNALIGNED_ACCESS_CLASS
-# error "UNALIGNED_ACCESS_CLASS must be defined"
-#endif
-
-
-/* Macros to convert from the host byte order to that of the object file. */
-#if UNALIGNED_ACCESS_CLASS == BYTE_ORDER
-# define target_bswap_16(n) (n)
-# define target_bswap_32(n) (n)
-# define target_bswap_64(n) (n)
-#else
-# define target_bswap_16(n) bswap_16 (n)
-# define target_bswap_32(n) bswap_32 (n)
-# define target_bswap_64(n) bswap_64 (n)
-#endif
-
-
-union u_2ubyte_unaligned
-{
- uint16_t u;
- char c[2];
-} __attribute__((packed));
-
-union u_4ubyte_unaligned
-{
- uint32_t u;
- char c[4];
-} __attribute__((packed));
-
-union u_8ubyte_unaligned
-{
- uint64_t u;
- char c[8];
-} __attribute__((packed));
-
-
-/* Macros to store value at unaligned address. */
-#define store_2ubyte_unaligned(ptr, value) \
- (void) (((union u_2ubyte_unaligned *) (ptr))->u = target_bswap_16 (value))
-#define store_4ubyte_unaligned(ptr, value) \
- (void) (((union u_4ubyte_unaligned *) (ptr))->u = target_bswap_32 (value))
-#define store_8ubyte_unaligned(ptr, value) \
- (void) (((union u_8ubyte_unaligned *) (ptr))->u = target_bswap_64 (value))
-
-
-/* Macros to add value to unaligned address. This is a bit more
- complicated since the value must be read from memory and eventually
- converted twice. */
-#if UNALIGNED_ACCESS_CLASS == BYTE_ORDER
-# define add_2ubyte_unaligned(ptr, value) \
- (void) (((union u_2ubyte_unaligned *) (ptr))->u += value)
-# define add_4ubyte_unaligned(ptr, value) \
- (void) (((union u_4ubyte_unaligned *) (ptr))->u += value)
-# define add_8ubyte_unaligned(ptr, value) \
- (void) (((union u_8ubyte_unaligned *) (ptr))->u += value)
-#else
-# define add_2ubyte_unaligned(ptr, value) \
- do { \
- union u_2ubyte_unaligned *_ptr = (ptr); \
- uint16_t _val = bswap_16 (_ptr->u) + (value); \
- _ptr->u = bswap_16 (_val); \
- } while (0)
-# define add_4ubyte_unaligned(ptr, value) \
- do { \
- union u_4ubyte_unaligned *_ptr = (ptr); \
- uint32_t _val = bswap_32 (_ptr->u) + (value); \
- _ptr->u = bswap_32 (_val); \
- } while (0)
-# define add_8ubyte_unaligned(ptr, value) \
- do { \
- union u_8ubyte_unaligned *_ptr = (ptr); \
- uint64_t _val = bswap_64 (_ptr->u) + (value); \
- _ptr->u = bswap_64 (_val); \
- } while (0)
-#endif
-
-#endif /* unaligned.h */
diff --git a/src/versionhash.c b/src/versionhash.c
deleted file mode 100644
index 79b2e105..00000000
--- a/src/versionhash.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Version symbol hash table implementation.
- Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <string.h>
-
-#include <ld.h>
-
-/* Definitions for the symbol hash table. */
-#define TYPE struct id_list *
-#define NAME ld_version_str_tab
-#define COMPARE(a, b) strcmp ((a)->id, (b)->id)
-
-#include "../lib/dynamicsizehash.c"
diff --git a/src/versionhash.h b/src/versionhash.h
deleted file mode 100644
index 243aeeb5..00000000
--- a/src/versionhash.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifndef VERSIONHASH_H
-#define VERSIONHASH_H 1
-
-/* Definitions for the symbol hash table. */
-#define TYPE struct id_list *
-#define NAME ld_version_str_tab
-#include <dynamicsizehash.h>
-
-#endif /* versionhash.h */
diff --git a/src/xelf.h b/src/xelf.h
deleted file mode 100644
index ab36e002..00000000
--- a/src/xelf.h
+++ /dev/null
@@ -1,387 +0,0 @@
-/* Macros to enable writing native and generic ELF access code.
- Copyright (C) 2003 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libebl.h>
-
-
-/* By default the linker is handling all architectures. But it can
- be configured to be a native-only linker. */
-#if NATIVE_ELF == 32
-/* 32-bit only. */
-# define XElf_Ehdr Elf32_Ehdr
-# define XElf_Shdr Elf32_Shdr
-# define XElf_Off Elf32_Off
-# define XElf_Addr Elf32_Addr
-# define XElf_Half Elf32_Half
-# define XElf_Word Elf32_Word
-# define XElf_Xword Elf32_Word
-# define XElf_Sxword Elf32_Sword
-# define XElf_Versym Elf32_Versym
-# define XElf_Sym Elf32_Sym
-# define XElf_Rel Elf32_Rel
-# define XElf_Rela Elf32_Rela
-
-# define XElf_Ehdr_vardef(name) Elf32_Ehdr *name
-# define xelf_getehdr(elf, name) name = elf32_getehdr (elf)
-# define xelf_getehdr_copy(elf, name, copy) \
- (copy) = *(name = elf32_getehdr (elf))
-# define xelf_newehdr(elf, klass) elf32_newehdr (elf)
-# define xelf_update_ehdr(elf, ehdr) \
- /* nothing */ ((void) (elf), (void) (ehdr), 1)
-
-# define xelf_getclass(elf) ELFCLASS32
-
-# define XElf_Phdr_vardef(name) Elf32_Phdr *name
-# define xelf_newphdr(elf, n) elf32_newphdr (elf, n)
-# define xelf_getphdr(elf, idx, name) name = elf32_getphdr (elf) + idx
-# define xelf_getphdr_ptr(elf, idx, name) name = elf32_getphdr (elf) + idx
-# define xelf_update_phdr(elf, idx, phdr) \
- /* nothing */ ((void) (elf), (void) (idx), (void) (phdr), 1)
-
-# define XElf_Shdr_vardef(name) Elf32_Shdr *name
-# define xelf_getshdr(scn, name) name = elf32_getshdr (scn)
-# define xelf_getshdr_copy(scn, name, copy) \
- (copy) = *(name = elf32_getshdr (scn))
-# define xelf_update_shdr(scn, shdr) \
- /* nothing */ ((void) (scn), (void) (shdr), 1)
-
-# define XElf_Sym_vardef(name) Elf32_Sym *name
-# define xelf_getsym(data, idx, name) \
- name = &((Elf32_Sym *) (data)->d_buf)[idx]
-# define xelf_getsym_ptr(data, idx, name) \
- name = &((Elf32_Sym *) (data)->d_buf)[idx]
-# define xelf_getsymshndx(data, ndxdata, idx, name1, name2) \
- (name1 = &((Elf32_Sym *) ((data)->d_buf))[idx]); \
- name2 = (unlikely ((ndxdata) != NULL) \
- ? ((Elf32_Word *) ((ndxdata)->d_buf))[idx] : 0)
-# define xelf_update_sym(data, idx, sym) \
- /* nothing */ ((void) (data), (void) (idx), (void) (sym), 1)
-# define xelf_update_symshndx(data, ndxdata, idx, name1, name2, datachanged) \
- if (datachanged) \
- ((Elf32_Sym *) ((data)->d_buf))[idx] = *name1; \
- if (unlikely (ndxdata != NULL)) \
- ((Elf32_Word *) ((ndxdata)->d_buf))[idx] = name2
-
-# define XElf_Versym_vardef(name) Elf32_Versym name
-# define xelf_getversym_copy(data, idx, name) \
- (name = ((Elf32_Versym *) ((data)->d_buf))[idx], &name)
-
-# define XElf_Dyn_vardef(name) Elf32_Dyn *name
-# define xelf_getdyn(data, idx, name) \
- name = &((Elf32_Dyn *) ((data)->d_buf))[idx]
-# define xelf_getdyn_ptr(data, idx, name) \
- name = &((Elf32_Dyn *) ((data)->d_buf))[idx]
-# define xelf_update_dyn(data, idx, name) \
- /* nothing */ ((void) (data), (void) (idx), (void) (name), 1)
-
-# define XElf_Rel_vardef(name) Elf32_Rel *name
-# define xelf_getrel(data, idx, name) \
- name = &((Elf32_Rel *) ((data)->d_buf))[idx]
-# define xelf_getrel_ptr(data, idx, name) \
- name = &((Elf32_Rel *) ((data)->d_buf))[idx]
-# define xelf_update_rel(data, idx, name) \
- /* nothing */ ((void) (data), (void) (idx), (void) (name), 1)
-
-# define XElf_Rela_vardef(name) Elf32_Rela *name
-# define xelf_getrela(data, idx, name) \
- name = &((Elf32_Rela *) ((data)->d_buf))[idx]
-# define xelf_getrela_ptr(data, idx, name) \
- name = &((Elf32_Rela *) ((data)->d_buf))[idx]
-# define xelf_update_rela(data, idx, name) \
- /* nothing */ ((void) (data), (void) (idx), (void) (name), 1)
-
-# define XElf_Verdef_vardef(name) Elf32_Verdef *name
-# define xelf_getverdef(data, offset, name) \
- name = ((Elf32_Verdef *) ((char *) ((data)->d_buf) + (offset)))
-
-# define XElf_Verdaux_vardef(name) Elf32_Verdaux *name
-# define xelf_getverdaux(data, offset, name) \
- name = ((Elf32_Verdaux *) ((char *) ((data)->d_buf) + (offset)))
-
-# define XELF_ST_TYPE(info) ELF32_ST_TYPE (info)
-# define XELF_ST_BIND(info) ELF32_ST_BIND (info)
-# define XELF_ST_INFO(bind, type) ELF32_ST_INFO (bind, type)
-# define XELF_ST_VISIBILITY(info) ELF32_ST_VISIBILITY (info)
-
-# define XELF_R_SYM(info) ELF32_R_SYM (info)
-# define XELF_R_TYPE(info) ELF32_R_TYPE (info)
-# define XELF_R_INFO(sym, type) ELF32_R_INFO (sym, type)
-
-# define xelf_fsize(elf, type, cnt) \
- (__builtin_constant_p (type) \
- ? ({ size_t fsize; \
- switch (type) \
- { \
- case ELF_T_BYTE: fsize = 1; break; \
- case ELF_T_ADDR: fsize = sizeof (Elf32_Addr); break; \
- case ELF_T_DYN: fsize = sizeof (Elf32_Dyn); break; \
- case ELF_T_EHDR: fsize = sizeof (Elf32_Ehdr); break; \
- case ELF_T_HALF: fsize = sizeof (Elf32_Half); break; \
- case ELF_T_OFF: fsize = sizeof (Elf32_Off); break; \
- case ELF_T_PHDR: fsize = sizeof (Elf32_Phdr); break; \
- case ELF_T_RELA: fsize = sizeof (Elf32_Rela); break; \
- case ELF_T_REL: fsize = sizeof (Elf32_Rel); break; \
- case ELF_T_SHDR: fsize = sizeof (Elf32_Shdr); break; \
- case ELF_T_SWORD: fsize = sizeof (Elf32_Sword); break; \
- case ELF_T_SYM: fsize = sizeof (Elf32_Sym); break; \
- case ELF_T_WORD: fsize = sizeof (Elf32_Word); break; \
- case ELF_T_XWORD: fsize = sizeof (Elf32_Xword); break; \
- case ELF_T_SXWORD: fsize = sizeof (Elf32_Sxword); break; \
- case ELF_T_VDEF: fsize = sizeof (Elf32_Verdef); break; \
- case ELF_T_VDAUX: fsize = sizeof (Elf32_Verdaux); break; \
- case ELF_T_VNEED: fsize = sizeof (Elf32_Verneed); break; \
- case ELF_T_VNAUX: fsize = sizeof (Elf32_Vernaux); break; \
- case ELF_T_NHDR: fsize = sizeof (Elf32_Nhdr); break; \
- case ELF_T_SYMINFO: fsize = sizeof (Elf32_Syminfo); break; \
- case ELF_T_MOVE: fsize = sizeof (Elf32_Move); break; \
- default: fsize = 0; break; \
- } \
- fsize * (cnt); }) \
- : gelf_fsize (elf, type, cnt, EV_CURRENT))
-#elif NATIVE_ELF == 64
-/* 64-bit only. */
-# define XElf_Ehdr Elf64_Ehdr
-# define XElf_Shdr Elf64_Shdr
-# define XElf_Addr Elf64_Addr
-# define XElf_Half Elf64_Half
-# define XElf_Off Elf64_Off
-# define XElf_Word Elf64_Word
-# define XElf_Xword Elf64_Xword
-# define XElf_Sxword Elf64_Sxword
-# define XElf_Versym Elf64_Versym
-# define XElf_Sym Elf64_Sym
-# define XElf_Rel Elf64_Rel
-# define XElf_Rela Elf64_Rela
-
-# define XElf_Ehdr_vardef(name) Elf64_Ehdr *name
-# define xelf_getehdr(elf, name) name = elf64_getehdr (elf)
-# define xelf_getehdr_copy(elf, name, copy) \
- (copy) = *(name = elf64_getehdr (elf))
-# define xelf_newehdr(elf, klass) elf64_newehdr (elf)
-# define xelf_update_ehdr(elf, ehdr) \
- /* nothing */ ((void) (elf), (void) (ehdr), 1)
-
-# define xelf_getclass(elf) ELFCLASS32
-
-# define XElf_Phdr_vardef(name) Elf64_Phdr *name
-# define xelf_newphdr(elf, n) elf64_newphdr (elf, n)
-# define xelf_getphdr(elf, idx, name) name = elf64_getphdr (elf) + idx
-# define xelf_getphdr_ptr(elf, idx, name) name = elf64_getphdr (elf) + idx
-# define xelf_update_phdr(elf, idx, phdr) \
- /* nothing */ ((void) (elf), (void) (idx), (void) (phdr), 1)
-
-# define XElf_Shdr_vardef(name) Elf64_Shdr *name
-# define xelf_getshdr(scn, name) name = elf64_getshdr (scn)
-# define xelf_getshdr_copy(scn, name, copy) \
- (copy) = *(name = elf64_getshdr (scn))
-# define xelf_update_shdr(scn, shdr) \
- /* nothing */ ((void) (scn), (void) (shdr), 1)
-
-# define XElf_Sym_vardef(name) Elf64_Sym *name
-# define xelf_getsym(data, idx, name) \
- name = &((Elf64_Sym *) (data)->d_buf)[idx]
-# define xelf_getsym_ptr(data, idx, name) \
- name = &((Elf64_Sym *) (data)->d_buf)[idx]
-# define xelf_getsymshndx(data, ndxdata, idx, name1, name2) \
- (name1 = &((Elf64_Sym *) ((data)->d_buf))[idx]); \
- name2 = (unlikely ((ndxdata) != NULL) \
- ? ((Elf32_Word *) ((ndxdata)->d_buf))[idx] : 0)
-# define xelf_update_sym(data, idx, sym) \
- /* nothing */ ((void) (data), (void) (idx), (void) (sym), 1)
-# define xelf_update_symshndx(data, ndxdata, idx, name1, name2, datachanged) \
- if (datachanged) \
- ((Elf64_Sym *) ((data)->d_buf))[idx] = *name1; \
- if (ndxdata != NULL) \
- (((Elf32_Word *) ((ndxdata)->d_buf))[idx] = name2)
-
-# define XElf_Versym_vardef(name) Elf64_Versym name
-# define xelf_getversym_copy(data, idx, name) \
- (name = ((Elf64_Versym *) ((data)->d_buf))[idx], (&name))
-
-# define XElf_Dyn_vardef(name) Elf64_Dyn *name
-# define xelf_getdyn(data, idx, name) \
- name = &((Elf64_Dyn *) ((data)->d_buf))[idx]
-# define xelf_getdyn_ptr(data, idx, name) \
- name = &((Elf64_Dyn *) ((data)->d_buf))[idx]
-# define xelf_update_dyn(data, idx, name) \
- /* nothing */ ((void) (data), (void) (idx), (void) (name), 1)
-
-# define XElf_Rel_vardef(name) Elf64_Rel *name
-# define xelf_getrel(data, idx, name) \
- name = &((Elf64_Rel *) ((data)->d_buf))[idx]
-# define xelf_getrel_ptr(data, idx, name) \
- name = &((Elf64_Rel *) ((data)->d_buf))[idx]
-# define xelf_update_rel(data, idx, name) \
- /* nothing */ ((void) (data), (void) (idx), (void) (name), 1)
-
-# define XElf_Rela_vardef(name) Elf64_Rela *name
-# define xelf_getrela(data, idx, name) \
- name = &((Elf64_Rela *) ((data)->d_buf))[idx]
-# define xelf_getrela_ptr(data, idx, name) \
- name = &((Elf64_Rela *) ((data)->d_buf))[idx]
-# define xelf_update_rela(data, idx, name) \
- /* nothing */ ((void) (data), (void) (idx), (void) (name), 1)
-
-# define XElf_Verdef_vardef(name) Elf64_Verdef *name
-# define xelf_getverdef(data, offset, name) \
- name = ((Elf64_Verdef *) ((char *) ((data)->d_buf) + (offset)))
-
-# define XElf_Verdaux_vardef(name) Elf64_Verdaux *name
-# define xelf_getverdaux(data, offset, name) \
- name = ((Elf64_Verdaux *) ((char *) ((data)->d_buf) + (offset)))
-
-# define XELF_ST_TYPE(info) ELF64_ST_TYPE (info)
-# define XELF_ST_BIND(info) ELF64_ST_BIND (info)
-# define XELF_ST_INFO(bind, type) ELF64_ST_INFO (bind, type)
-# define XELF_ST_VISIBILITY(info) ELF64_ST_VISIBILITY (info)
-
-# define XELF_R_SYM(info) ELF64_R_SYM (info)
-# define XELF_R_TYPE(info) ELF64_R_TYPE (info)
-# define XELF_R_INFO(sym, type) ELF64_R_INFO (sym, type)
-
-# define xelf_fsize(elf, type, cnt) \
- (__builtin_constant_p (type) \
- ? ({ size_t fsize; \
- switch (type) \
- { \
- case ELF_T_BYTE: fsize = 1; break; \
- case ELF_T_ADDR: fsize = sizeof (Elf64_Addr); break; \
- case ELF_T_DYN: fsize = sizeof (Elf64_Dyn); break; \
- case ELF_T_EHDR: fsize = sizeof (Elf64_Ehdr); break; \
- case ELF_T_HALF: fsize = sizeof (Elf64_Half); break; \
- case ELF_T_OFF: fsize = sizeof (Elf64_Off); break; \
- case ELF_T_PHDR: fsize = sizeof (Elf64_Phdr); break; \
- case ELF_T_RELA: fsize = sizeof (Elf64_Rela); break; \
- case ELF_T_REL: fsize = sizeof (Elf64_Rel); break; \
- case ELF_T_SHDR: fsize = sizeof (Elf64_Shdr); break; \
- case ELF_T_SWORD: fsize = sizeof (Elf64_Sword); break; \
- case ELF_T_SYM: fsize = sizeof (Elf64_Sym); break; \
- case ELF_T_WORD: fsize = sizeof (Elf64_Word); break; \
- case ELF_T_XWORD: fsize = sizeof (Elf64_Xword); break; \
- case ELF_T_SXWORD: fsize = sizeof (Elf64_Sxword); break; \
- case ELF_T_VDEF: fsize = sizeof (Elf64_Verdef); break; \
- case ELF_T_VDAUX: fsize = sizeof (Elf64_Verdaux); break; \
- case ELF_T_VNEED: fsize = sizeof (Elf64_Verneed); break; \
- case ELF_T_VNAUX: fsize = sizeof (Elf64_Vernaux); break; \
- case ELF_T_NHDR: fsize = sizeof (Elf64_Nhdr); break; \
- case ELF_T_SYMINFO: fsize = sizeof (Elf64_Syminfo); break; \
- case ELF_T_MOVE: fsize = sizeof (Elf64_Move); break; \
- default: fsize = 0; break; \
- } \
- fsize * (cnt); }) \
- : gelf_fsize (elf, type, cnt, EV_CURRENT))
-#else
-# include <gelf.h>
-
-/* Generic linker. */
-# define XElf_Ehdr GElf_Ehdr
-# define XElf_Shdr GElf_Shdr
-# define XElf_Addr GElf_Addr
-# define XElf_Half GElf_Half
-# define XElf_Off GElf_Off
-# define XElf_Word GElf_Word
-# define XElf_Xword GElf_Xword
-# define XElf_Sxword GElf_Sxword
-# define XElf_Versym GElf_Versym
-# define XElf_Sym GElf_Sym
-# define XElf_Rel GElf_Rel
-# define XElf_Rela GElf_Rela
-
-# define XElf_Ehdr_vardef(name) GElf_Ehdr name##_mem; GElf_Ehdr *name
-# define xelf_getehdr(elf, name) name = gelf_getehdr (elf, &name##_mem)
-# define xelf_getehdr_copy(elf, name, copy) \
- name = gelf_getehdr (elf, &(copy))
-# define xelf_newehdr(elf, klass) gelf_newehdr (elf, klass)
-# define xelf_update_ehdr(elf, ehdr) gelf_update_ehdr (elf, ehdr)
-
-# define xelf_getclass(elf) gelf_getclass (elf)
-
-# define XElf_Phdr_vardef(name) GElf_Phdr name##_mem; GElf_Phdr *name
-# define xelf_newphdr(elf, n) gelf_newphdr (elf, n)
-# define xelf_getphdr(elf, idx, name) \
- name = gelf_getphdr (elf, idx, &name##_mem)
-# define xelf_getphdr_ptr(elf, idx, name) \
- name = &name##_mem
-# define xelf_update_phdr(elf, idx, phdr) \
- gelf_update_phdr (elf, idx, phdr)
-
-# define XElf_Shdr_vardef(name) GElf_Shdr name##_mem; GElf_Shdr *name
-# define xelf_getshdr(scn, name) name = gelf_getshdr (scn, &name##_mem)
-# define xelf_getshdr_copy(scn, name, copy) \
- name = gelf_getshdr (scn, &(copy))
-# define xelf_update_shdr(scn, shdr) gelf_update_shdr (scn, shdr)
-
-# define XElf_Sym_vardef(name) GElf_Sym name##_mem; GElf_Sym *name
-# define xelf_getsym(data, idx, name) \
- name = gelf_getsym (data, idx, &name##_mem)
-# define xelf_getsym_ptr(data, idx, name) \
- name = &name##_mem
-# define xelf_getsymshndx(data, ndxdata, idx, name1, name2) \
- name1 = gelf_getsymshndx (data, ndxdata, idx, &name1##_mem, &(name2))
-# define xelf_update_sym(data, idx, sym) gelf_update_sym (data, idx, sym)
-# define xelf_update_symshndx(data, ndxdata, idx, name1, name2, datachanged) \
- gelf_update_symshndx (data, ndxdata, idx, name1, name2)
-
-# define XElf_Versym_vardef(name) GElf_Versym name
-# define xelf_getversym_copy(data, idx, name) \
- gelf_getversym (data, idx, &name)
-
-# define XElf_Dyn_vardef(name) GElf_Dyn name##_mem; GElf_Dyn *name
-# define xelf_getdyn(data, idx, name) \
- name = gelf_getdyn (data, idx, &name##_mem)
-# define xelf_getdyn_ptr(data, idx, name) \
- name = &name##_mem
-# define xelf_update_dyn(data, idx, name) \
- gelf_update_dyn (data, idx, name)
-
-# define XElf_Rel_vardef(name) GElf_Rel name##_mem; GElf_Rel *name
-# define xelf_getrel(data, idx, name) \
- name = gelf_getrel (data, idx, &name##_mem)
-# define xelf_getrel_ptr(data, idx, name) \
- name = &name##_mem
-# define xelf_update_rel(data, idx, name) \
- gelf_update_rel (data, idx, name)
-
-# define XElf_Rela_vardef(name) GElf_Rela name##_mem; GElf_Rela *name
-# define xelf_getrela(data, idx, name) \
- name = gelf_getrela (data, idx, &name##_mem)
-# define xelf_getrela_ptr(data, idx, name) \
- name = &name##_mem
-# define xelf_update_rela(data, idx, name) \
- gelf_update_rela (data, idx, name)
-
-# define XElf_Verdef_vardef(name) GElf_Verdef name##_mem; GElf_Verdef *name
-# define xelf_getverdef(data, offset, name) \
- name = gelf_getverdef (data, offset, &name##_mem)
-
-# define XElf_Verdaux_vardef(name) GElf_Verdaux name##_mem; GElf_Verdaux *name
-# define xelf_getverdaux(data, offset, name) \
- name = gelf_getverdaux (data, offset, &name##_mem)
-
-# define XELF_ST_TYPE(info) GELF_ST_TYPE (info)
-# define XELF_ST_BIND(info) GELF_ST_BIND (info)
-# define XELF_ST_INFO(bind, type) GELF_ST_INFO (bind, type)
-# define XELF_ST_VISIBILITY(info) GELF_ST_VISIBILITY (info)
-
-# define XELF_R_SYM(info) GELF_R_SYM (info)
-# define XELF_R_TYPE(info) GELF_R_TYPE (info)
-# define XELF_R_INFO(sym, type) GELF_R_INFO (sym, type)
-
-# define xelf_fsize(elf, type, cnt) \
- gelf_fsize (elf, type, cnt, EV_CURRENT)
-#endif
diff --git a/src/ylwrap b/src/ylwrap
deleted file mode 100644
index e8abf827..00000000
--- a/src/ylwrap
+++ /dev/null
@@ -1,154 +0,0 @@
-#! /bin/sh
-# ylwrap - wrapper for lex/yacc invocations.
-# Copyright 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
-# Written by Tom Tromey <tromey@cygnus.com>.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Usage:
-# ylwrap INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
-# * INPUT is the input file
-# * OUTPUT is file PROG generates
-# * DESIRED is file we actually want
-# * PROGRAM is program to run
-# * ARGS are passed to PROG
-# Any number of OUTPUT,DESIRED pairs may be used.
-
-# The input.
-input="$1"
-shift
-case "$input" in
- [\\/]* | ?:[\\/]*)
- # Absolute path; do nothing.
- ;;
- *)
- # Relative path. Make it absolute.
- input="`pwd`/$input"
- ;;
-esac
-
-pairlist=
-while test "$#" -ne 0; do
- if test "$1" = "--"; then
- shift
- break
- fi
- pairlist="$pairlist $1"
- shift
-done
-
-# The program to run.
-prog="$1"
-shift
-# Make any relative path in $prog absolute.
-case "$prog" in
- [\\/]* | ?:[\\/]*) ;;
- *[\\/]*) prog="`pwd`/$prog" ;;
-esac
-
-# FIXME: add hostname here for parallel makes that run commands on
-# other machines. But that might take us over the 14-char limit.
-dirname=ylwrap$$
-trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
-mkdir $dirname || exit 1
-
-cd $dirname
-
-$prog ${1+"$@"} "$input"
-status=$?
-
-if test $status -eq 0; then
- set X $pairlist
- shift
- first=yes
- # Since DOS filename conventions don't allow two dots,
- # the DOS version of Bison writes out y_tab.c instead of y.tab.c
- # and y_tab.h instead of y.tab.h. Test to see if this is the case.
- y_tab_nodot="no"
- if test -f y_tab.c || test -f y_tab.h; then
- y_tab_nodot="yes"
- fi
-
- # The directory holding the input.
- input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
- # Quote $INPUT_DIR so we can use it in a regexp.
- # FIXME: really we should care about more than `.' and `\'.
- input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
-
- while test "$#" -ne 0; do
- from="$1"
- # Handle y_tab.c and y_tab.h output by DOS
- if test $y_tab_nodot = "yes"; then
- if test $from = "y.tab.c"; then
- from="y_tab.c"
- else
- if test $from = "y.tab.h"; then
- from="y_tab.h"
- fi
- fi
- fi
- if test -f "$from"; then
- # If $2 is an absolute path name, then just use that,
- # otherwise prepend `../'.
- case "$2" in
- [\\/]* | ?:[\\/]*) target="$2";;
- *) target="../$2";;
- esac
-
- # Edit out `#line' or `#' directives.
- #
- # We don't want the resulting debug information to point at
- # an absolute srcdir; it is better for it to just mention the
- # .y file with no path.
- #
- # We want to use the real output file name, not yy.lex.c for
- # instance.
- #
- # We want the include guards to be adjusted too.
- FROM=`echo "$from" | sed \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
- -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
- TARGET=`echo "$2" | sed \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
- -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
- sed "/^#/{s,$input_rx,,;s,$from,$2,;s,$FORM,$TO,;}" "$from" >"$target" ||
- status=$?
- else
- # A missing file is only an error for the first file. This
- # is a blatant hack to let us support using "yacc -d". If -d
- # is not specified, we don't want an error when the header
- # file is "missing".
- if test $first = yes; then
- status=1
- fi
- fi
- shift
- shift
- first=no
- done
-else
- status=$?
-fi
-
-# Remove the directory.
-cd ..
-rm -rf $dirname
-
-exit $status
diff --git a/stamp-h1 b/stamp-h1
deleted file mode 100644
index 4547fe1b..00000000
--- a/stamp-h1
+++ /dev/null
@@ -1 +0,0 @@
-timestamp for config.h
diff --git a/tests/ChangeLog b/tests/ChangeLog
deleted file mode 100644
index 05e36331..00000000
--- a/tests/ChangeLog
+++ /dev/null
@@ -1,41 +0,0 @@
-2004-09-25 Ulrich Drepper <drepper@redhat.com>
-
- * asm-tst4.c (main): Add LD_LIBRARY_PATH to elflint invocation.
- * asm-tst5.c (main): Likewise.
- * asm-tst6.c (main): Likewise.
-
-2004-01-17 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.am: Support building with mudflap.
-
-2004-01-12 Ulrich Drepper <drepper@redhat.com>
-
- * get-aranges.c: Rewrite to use libdw.
- * Makefile.am: Reenable get-aranges test.
-
-2004-01-11 Ulrich Drepper <drepper@redhat.com>
-
- * get-lines.c: New file.
- * get-files.c: Adjust for libdw.
- * run-get-files.sh: Adjust expected result.
- * run-get-lines.sh: Likewise.
- * Makefile.am: Run get-lines test. Don't run get-aranges and
- get-ciefde test for now.
-
- * show-abbrev.c: Adjust call to dwarf_getabbrevattr after interface
- change. Print attribute offset information.
- * run-show-abbrev.sh: Adjust expected output.
-
-2004-01-09 Ulrich Drepper <drepper@redhat.com>
-
- * show-abbrev.c: Adjust call to dwarf_nextcu after interface change.
- * show-die-info.c: Likewise.
- * run-show-die-info.sh: Adjust expected output.
-
-2003-08-13 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile.in: Depend on libebl.a, not libebl.so.
-
-2003-08-11 Ulrich Drepper <drepper@redhat.com>
-
- * Moved to CVS archive.
diff --git a/tests/Makefile b/tests/Makefile
deleted file mode 100644
index 14b0e335..00000000
--- a/tests/Makefile
+++ /dev/null
@@ -1,794 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# tests/Makefile. Generated from Makefile.in by configure.
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-SOURCES = arextract.c arsymtest.c asm-tst1.c asm-tst2.c asm-tst3.c asm-tst4.c asm-tst5.c asm-tst6.c asm-tst7.c asm-tst8.c asm-tst9.c ecp.c get-aranges.c get-files.c get-lines.c get-pubnames.c hash.c msg_tst.c newfile.c newscn.c saridx.c scnnames.c sectiondump.c show-abbrev.c show-die-info.c showptable.c test-nlist.c update1.c update2.c update3.c update4.c
-
-srcdir = .
-top_srcdir = ..
-
-pkgdatadir = $(datadir)/elfutils
-pkglibdir = $(libdir)/elfutils
-pkgincludedir = $(includedir)/elfutils
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = /usr/bin/install -c
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = i686-pc-linux-gnu
-host_triplet = i686-pc-linux-gnu
-noinst_PROGRAMS = arextract$(EXEEXT) arsymtest$(EXEEXT) \
- newfile$(EXEEXT) saridx$(EXEEXT) scnnames$(EXEEXT) \
- sectiondump$(EXEEXT) showptable$(EXEEXT) update1$(EXEEXT) \
- update2$(EXEEXT) update3$(EXEEXT) update4$(EXEEXT) \
- test-nlist$(EXEEXT) show-die-info$(EXEEXT) get-files$(EXEEXT) \
- get-lines$(EXEEXT) get-pubnames$(EXEEXT) get-aranges$(EXEEXT) \
- show-abbrev$(EXEEXT) hash$(EXEEXT) asm-tst1$(EXEEXT) \
- asm-tst2$(EXEEXT) asm-tst3$(EXEEXT) asm-tst4$(EXEEXT) \
- asm-tst5$(EXEEXT) asm-tst6$(EXEEXT) asm-tst7$(EXEEXT) \
- asm-tst8$(EXEEXT) asm-tst9$(EXEEXT) msg_tst$(EXEEXT) \
- newscn$(EXEEXT) ecp$(EXEEXT)
-subdir = tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-PROGRAMS = $(noinst_PROGRAMS)
-arextract_SOURCES = arextract.c
-arextract_OBJECTS = arextract.$(OBJEXT)
-am__DEPENDENCIES_1 = ../libelf/libelf.so
-#am__DEPENDENCIES_1 = ../libelf/libelf.a
-arextract_DEPENDENCIES = $(am__DEPENDENCIES_1)
-arsymtest_SOURCES = arsymtest.c
-arsymtest_OBJECTS = arsymtest.$(OBJEXT)
-arsymtest_DEPENDENCIES = $(am__DEPENDENCIES_1)
-asm_tst1_SOURCES = asm-tst1.c
-asm_tst1_OBJECTS = asm-tst1.$(OBJEXT)
-am__DEPENDENCIES_2 = ../libasm/libasm.so
-#am__DEPENDENCIES_2 = ../libasm/libasm.a
-am__DEPENDENCIES_3 = ../libebl/libebl.a
-asm_tst1_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst2_SOURCES = asm-tst2.c
-asm_tst2_OBJECTS = asm-tst2.$(OBJEXT)
-asm_tst2_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst3_SOURCES = asm-tst3.c
-asm_tst3_OBJECTS = asm-tst3.$(OBJEXT)
-asm_tst3_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst4_SOURCES = asm-tst4.c
-asm_tst4_OBJECTS = asm-tst4.$(OBJEXT)
-asm_tst4_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst5_SOURCES = asm-tst5.c
-asm_tst5_OBJECTS = asm-tst5.$(OBJEXT)
-asm_tst5_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst6_SOURCES = asm-tst6.c
-asm_tst6_OBJECTS = asm-tst6.$(OBJEXT)
-asm_tst6_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst7_SOURCES = asm-tst7.c
-asm_tst7_OBJECTS = asm-tst7.$(OBJEXT)
-asm_tst7_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst8_SOURCES = asm-tst8.c
-asm_tst8_OBJECTS = asm-tst8.$(OBJEXT)
-asm_tst8_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst9_SOURCES = asm-tst9.c
-asm_tst9_OBJECTS = asm-tst9.$(OBJEXT)
-asm_tst9_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-ecp_SOURCES = ecp.c
-ecp_OBJECTS = ecp.$(OBJEXT)
-ecp_DEPENDENCIES = $(am__DEPENDENCIES_1)
-get_aranges_SOURCES = get-aranges.c
-get_aranges_OBJECTS = get-aranges.$(OBJEXT)
-am__DEPENDENCIES_4 = ../libdw/libdw.so
-#am__DEPENDENCIES_4 = ../libdw/libdw.a
-get_aranges_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1)
-get_files_SOURCES = get-files.c
-get_files_OBJECTS = get-files.$(OBJEXT)
-get_files_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1)
-get_lines_SOURCES = get-lines.c
-get_lines_OBJECTS = get-lines.$(OBJEXT)
-get_lines_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1)
-get_pubnames_SOURCES = get-pubnames.c
-get_pubnames_OBJECTS = get-pubnames.$(OBJEXT)
-get_pubnames_DEPENDENCIES = $(am__DEPENDENCIES_4) \
- $(am__DEPENDENCIES_1)
-hash_SOURCES = hash.c
-hash_OBJECTS = hash.$(OBJEXT)
-hash_DEPENDENCIES = $(am__DEPENDENCIES_1)
-msg_tst_SOURCES = msg_tst.c
-msg_tst_OBJECTS = msg_tst.$(OBJEXT)
-msg_tst_DEPENDENCIES = $(am__DEPENDENCIES_1)
-newfile_SOURCES = newfile.c
-newfile_OBJECTS = newfile.$(OBJEXT)
-newfile_DEPENDENCIES = $(am__DEPENDENCIES_1)
-newscn_SOURCES = newscn.c
-newscn_OBJECTS = newscn.$(OBJEXT)
-newscn_DEPENDENCIES = $(am__DEPENDENCIES_1)
-saridx_SOURCES = saridx.c
-saridx_OBJECTS = saridx.$(OBJEXT)
-saridx_DEPENDENCIES = $(am__DEPENDENCIES_1)
-scnnames_SOURCES = scnnames.c
-scnnames_OBJECTS = scnnames.$(OBJEXT)
-scnnames_DEPENDENCIES = $(am__DEPENDENCIES_1)
-sectiondump_SOURCES = sectiondump.c
-sectiondump_OBJECTS = sectiondump.$(OBJEXT)
-sectiondump_DEPENDENCIES = $(am__DEPENDENCIES_1)
-show_abbrev_SOURCES = show-abbrev.c
-show_abbrev_OBJECTS = show-abbrev.$(OBJEXT)
-show_abbrev_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1)
-show_die_info_SOURCES = show-die-info.c
-show_die_info_OBJECTS = show-die-info.$(OBJEXT)
-show_die_info_DEPENDENCIES = $(am__DEPENDENCIES_4) \
- $(am__DEPENDENCIES_1)
-showptable_SOURCES = showptable.c
-showptable_OBJECTS = showptable.$(OBJEXT)
-showptable_DEPENDENCIES = $(am__DEPENDENCIES_1)
-test_nlist_SOURCES = test-nlist.c
-test_nlist_OBJECTS = test-nlist.$(OBJEXT)
-test_nlist_DEPENDENCIES = $(am__DEPENDENCIES_1)
-update1_SOURCES = update1.c
-update1_OBJECTS = update1.$(OBJEXT)
-update1_DEPENDENCIES = $(am__DEPENDENCIES_1)
-update2_SOURCES = update2.c
-update2_OBJECTS = update2.$(OBJEXT)
-update2_DEPENDENCIES = $(am__DEPENDENCIES_1)
-update3_SOURCES = update3.c
-update3_OBJECTS = update3.$(OBJEXT)
-update3_DEPENDENCIES = $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1)
-update4_SOURCES = update4.c
-update4_OBJECTS = update4.$(OBJEXT)
-update4_DEPENDENCIES = $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = arextract.c arsymtest.c asm-tst1.c asm-tst2.c asm-tst3.c \
- asm-tst4.c asm-tst5.c asm-tst6.c asm-tst7.c asm-tst8.c \
- asm-tst9.c ecp.c get-aranges.c get-files.c get-lines.c \
- get-pubnames.c hash.c msg_tst.c newfile.c newscn.c saridx.c \
- scnnames.c sectiondump.c show-abbrev.c show-die-info.c \
- showptable.c test-nlist.c update1.c update2.c update3.c \
- update4.c
-DIST_SOURCES = arextract.c arsymtest.c asm-tst1.c asm-tst2.c \
- asm-tst3.c asm-tst4.c asm-tst5.c asm-tst6.c asm-tst7.c \
- asm-tst8.c asm-tst9.c ecp.c get-aranges.c get-files.c \
- get-lines.c get-pubnames.c hash.c msg_tst.c newfile.c newscn.c \
- saridx.c scnnames.c sectiondump.c show-abbrev.c \
- show-die-info.c showptable.c test-nlist.c update1.c update2.c \
- update3.c update4.c
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run aclocal-1.9
-AMDEP_FALSE = #
-AMDEP_TRUE =
-AMTAR = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run tar
-AUTOCONF = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoconf
-AUTOHEADER = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoheader
-AUTOMAKE = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run automake-1.9
-AWK = gawk
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CFLAGS = -g -O2
-CPP = gcc -E
-CPPFLAGS =
-CYGPATH_W = echo
-DATADIRNAME = ${prefix}/share
-DEFS = -DHAVE_CONFIG_H -D_GNU_SOURCE
-DEPDIR = .deps
-ECHO_C =
-ECHO_N = -n
-ECHO_T =
-EGREP = grep -E
-EXEEXT =
-GMSGFMT = /usr/bin/msgfmt
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
-INTLLIBS =
-LDFLAGS =
-LEX = flex
-LEXLIB = -lfl
-LEX_OUTPUT_ROOT = lex.yy
-LIBICONV = -liconv
-LIBINTL =
-LIBOBJS =
-LIBS =
-LOCALEDIR = ${prefix}/share
-LTLIBICONV = -liconv
-LTLIBINTL =
-LTLIBOBJS =
-MAKEINFO = ${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run makeinfo
-MKINSTALLDIRS = config/mkinstalldirs
-MSGFMT = /usr/bin/msgfmt
-MSGMERGE = /usr/bin/msgmerge
-MUDFLAP_FALSE =
-MUDFLAP_TRUE = #
-NATIVE_LD_FALSE =
-NATIVE_LD_TRUE = #
-OBJEXT = o
-PACKAGE = elfutils
-PACKAGE_BUGREPORT = http://bugzilla.redhat.com/bugzilla/
-PACKAGE_NAME = Red Hat elfutils
-PACKAGE_STRING = Red Hat elfutils 0.97
-PACKAGE_TARNAME = elfutils
-PACKAGE_VERSION = 0.97
-PATH_SEPARATOR = :
-POSUB = po
-RANLIB = ranlib
-SET_MAKE =
-SHELL = /bin/sh
-STRIP =
-USE_NLS = yes
-VERSION = 0.97
-XGETTEXT = /usr/bin/xgettext
-YACC = bison -y
-ac_ct_CC = gcc
-ac_ct_RANLIB = ranlib
-ac_ct_STRIP =
-am__fastdepCC_FALSE = #
-am__fastdepCC_TRUE =
-am__include = include
-am__leading_dot = .
-am__quote =
-am__tar = ${AMTAR} chof - "$$tardir"
-am__untar = ${AMTAR} xf -
-base_cpu = none
-bindir = ${exec_prefix}/bin
-build = i686-pc-linux-gnu
-build_alias =
-build_cpu = i686
-build_os = linux-gnu
-build_vendor = pc
-datadir = ${prefix}/share
-exec_prefix = ${prefix}
-host = i686-pc-linux-gnu
-host_alias =
-host_cpu = i686
-host_os = linux-gnu
-host_vendor = pc
-includedir = ${prefix}/include
-infodir = ${prefix}/info
-install_sh = /work/elfutils/stock/elfutils-0.97/config/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-localstatedir = ${prefix}/var
-mandir = ${prefix}/man
-mkdir_p = mkdir -p --
-oldincludedir = /usr/include
-prefix = /work/elfutils/google/linux-install-elfutils-0.97/
-program_transform_name = s,x,x,
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-sysconfdir = ${prefix}/etc
-target_alias =
-AM_CFLAGS = -Wall -Werror -std=gnu99
-AM_LDFLAGS = -Wl,-rpath,\$$ORIGIN/../libasm:\$$ORIGIN/../libdw:\$$ORIGIN/../libebl:\$$ORIGIN/../libelf
-INCLUDES = -I$(top_srcdir)/libasm -I$(top_srcdir)/libdw \
- -I$(top_srcdir)/libebl -I$(top_srcdir)/libelf \
- -I$(top_srcdir)/lib -I..
-
-# get-ciefde
-TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \
- update1 update2 update3 update4 \
- run-show-die-info.sh run-get-files.sh run-get-lines.sh \
- run-get-pubnames.sh run-get-aranges.sh \
- run-show-abbrev.sh hash asm-tst1 asm-tst2 \
- asm-tst3 asm-tst4 asm-tst5 asm-tst6 asm-tst7 asm-tst8 asm-tst9 \
- msg_tst newscn run-strip-test.sh run-strip-test2.sh \
- run-strip-test3.sh run-ecp-test.sh run-ecp-test2.sh
-
-# run-show-ciefde.sh
-EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
- run-show-die-info.sh run-get-files.sh run-get-lines.sh \
- run-get-pubnames.sh run-get-aranges.sh \
- run-show-ciefde.sh run-show-abbrev.sh run-strip-test.sh \
- run-strip-test2.sh run-ecp-test.sh run-ecp-test2.sh \
- testfile.bz2 testfile2.bz2 testfile3.bz2 testfile4.bz2 \
- testfile5.bz2 testfile6.bz2 testfile7.bz2 testfile8.bz2 \
- testfile9.bz2 testfile10.bz2 testfile11.bz2 testfile12.bz2 \
- testfile13.bz2 run-strip-test3.sh
-
-libdw = ../libdw/libdw.so
-#libdw = ../libdw/libdw.a
-libelf = ../libelf/libelf.so
-#libelf = ../libelf/libelf.a
-libasm = ../libasm/libasm.so
-#libasm = ../libasm/libasm.a
-libebl = ../libebl/libebl.a
-arextract_LDADD = $(libelf)
-arsymtest_LDADD = $(libelf)
-newfile_LDADD = $(libelf)
-saridx_LDADD = $(libelf)
-scnnames_LDADD = $(libelf)
-sectiondump_LDADD = $(libelf)
-showptable_LDADD = $(libelf)
-hash_LDADD = $(libelf)
-test_nlist_LDADD = $(libelf)
-msg_tst_LDADD = $(libelf)
-newscn_LDADD = $(libelf)
-ecp_LDADD = $(libelf)
-update1_LDADD = $(libelf)
-update2_LDADD = $(libelf)
-update3_LDADD = $(libebl) $(libelf)
-update4_LDADD = $(libebl) $(libelf)
-show_die_info_LDADD = $(libdw) $(libelf)
-get_pubnames_LDADD = $(libdw) $(libelf)
-show_abbrev_LDADD = $(libdw) $(libelf)
-get_lines_LDADD = $(libdw) $(libelf)
-get_files_LDADD = $(libdw) $(libelf)
-get_aranges_LDADD = $(libdw) $(libelf)
-#show_ciefde_LDADD = ../libdwarf/libdwarf.so $(libelf)
-asm_tst1_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst2_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst3_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst4_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst5_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst6_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst7_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst8_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst9_LDADD = $(libasm) $(libebl) $(libelf)
-CLEANFILES = xxx
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits tests/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-arextract$(EXEEXT): $(arextract_OBJECTS) $(arextract_DEPENDENCIES)
- @rm -f arextract$(EXEEXT)
- $(LINK) $(arextract_LDFLAGS) $(arextract_OBJECTS) $(arextract_LDADD) $(LIBS)
-arsymtest$(EXEEXT): $(arsymtest_OBJECTS) $(arsymtest_DEPENDENCIES)
- @rm -f arsymtest$(EXEEXT)
- $(LINK) $(arsymtest_LDFLAGS) $(arsymtest_OBJECTS) $(arsymtest_LDADD) $(LIBS)
-asm-tst1$(EXEEXT): $(asm_tst1_OBJECTS) $(asm_tst1_DEPENDENCIES)
- @rm -f asm-tst1$(EXEEXT)
- $(LINK) $(asm_tst1_LDFLAGS) $(asm_tst1_OBJECTS) $(asm_tst1_LDADD) $(LIBS)
-asm-tst2$(EXEEXT): $(asm_tst2_OBJECTS) $(asm_tst2_DEPENDENCIES)
- @rm -f asm-tst2$(EXEEXT)
- $(LINK) $(asm_tst2_LDFLAGS) $(asm_tst2_OBJECTS) $(asm_tst2_LDADD) $(LIBS)
-asm-tst3$(EXEEXT): $(asm_tst3_OBJECTS) $(asm_tst3_DEPENDENCIES)
- @rm -f asm-tst3$(EXEEXT)
- $(LINK) $(asm_tst3_LDFLAGS) $(asm_tst3_OBJECTS) $(asm_tst3_LDADD) $(LIBS)
-asm-tst4$(EXEEXT): $(asm_tst4_OBJECTS) $(asm_tst4_DEPENDENCIES)
- @rm -f asm-tst4$(EXEEXT)
- $(LINK) $(asm_tst4_LDFLAGS) $(asm_tst4_OBJECTS) $(asm_tst4_LDADD) $(LIBS)
-asm-tst5$(EXEEXT): $(asm_tst5_OBJECTS) $(asm_tst5_DEPENDENCIES)
- @rm -f asm-tst5$(EXEEXT)
- $(LINK) $(asm_tst5_LDFLAGS) $(asm_tst5_OBJECTS) $(asm_tst5_LDADD) $(LIBS)
-asm-tst6$(EXEEXT): $(asm_tst6_OBJECTS) $(asm_tst6_DEPENDENCIES)
- @rm -f asm-tst6$(EXEEXT)
- $(LINK) $(asm_tst6_LDFLAGS) $(asm_tst6_OBJECTS) $(asm_tst6_LDADD) $(LIBS)
-asm-tst7$(EXEEXT): $(asm_tst7_OBJECTS) $(asm_tst7_DEPENDENCIES)
- @rm -f asm-tst7$(EXEEXT)
- $(LINK) $(asm_tst7_LDFLAGS) $(asm_tst7_OBJECTS) $(asm_tst7_LDADD) $(LIBS)
-asm-tst8$(EXEEXT): $(asm_tst8_OBJECTS) $(asm_tst8_DEPENDENCIES)
- @rm -f asm-tst8$(EXEEXT)
- $(LINK) $(asm_tst8_LDFLAGS) $(asm_tst8_OBJECTS) $(asm_tst8_LDADD) $(LIBS)
-asm-tst9$(EXEEXT): $(asm_tst9_OBJECTS) $(asm_tst9_DEPENDENCIES)
- @rm -f asm-tst9$(EXEEXT)
- $(LINK) $(asm_tst9_LDFLAGS) $(asm_tst9_OBJECTS) $(asm_tst9_LDADD) $(LIBS)
-ecp$(EXEEXT): $(ecp_OBJECTS) $(ecp_DEPENDENCIES)
- @rm -f ecp$(EXEEXT)
- $(LINK) $(ecp_LDFLAGS) $(ecp_OBJECTS) $(ecp_LDADD) $(LIBS)
-get-aranges$(EXEEXT): $(get_aranges_OBJECTS) $(get_aranges_DEPENDENCIES)
- @rm -f get-aranges$(EXEEXT)
- $(LINK) $(get_aranges_LDFLAGS) $(get_aranges_OBJECTS) $(get_aranges_LDADD) $(LIBS)
-get-files$(EXEEXT): $(get_files_OBJECTS) $(get_files_DEPENDENCIES)
- @rm -f get-files$(EXEEXT)
- $(LINK) $(get_files_LDFLAGS) $(get_files_OBJECTS) $(get_files_LDADD) $(LIBS)
-get-lines$(EXEEXT): $(get_lines_OBJECTS) $(get_lines_DEPENDENCIES)
- @rm -f get-lines$(EXEEXT)
- $(LINK) $(get_lines_LDFLAGS) $(get_lines_OBJECTS) $(get_lines_LDADD) $(LIBS)
-get-pubnames$(EXEEXT): $(get_pubnames_OBJECTS) $(get_pubnames_DEPENDENCIES)
- @rm -f get-pubnames$(EXEEXT)
- $(LINK) $(get_pubnames_LDFLAGS) $(get_pubnames_OBJECTS) $(get_pubnames_LDADD) $(LIBS)
-hash$(EXEEXT): $(hash_OBJECTS) $(hash_DEPENDENCIES)
- @rm -f hash$(EXEEXT)
- $(LINK) $(hash_LDFLAGS) $(hash_OBJECTS) $(hash_LDADD) $(LIBS)
-msg_tst$(EXEEXT): $(msg_tst_OBJECTS) $(msg_tst_DEPENDENCIES)
- @rm -f msg_tst$(EXEEXT)
- $(LINK) $(msg_tst_LDFLAGS) $(msg_tst_OBJECTS) $(msg_tst_LDADD) $(LIBS)
-newfile$(EXEEXT): $(newfile_OBJECTS) $(newfile_DEPENDENCIES)
- @rm -f newfile$(EXEEXT)
- $(LINK) $(newfile_LDFLAGS) $(newfile_OBJECTS) $(newfile_LDADD) $(LIBS)
-newscn$(EXEEXT): $(newscn_OBJECTS) $(newscn_DEPENDENCIES)
- @rm -f newscn$(EXEEXT)
- $(LINK) $(newscn_LDFLAGS) $(newscn_OBJECTS) $(newscn_LDADD) $(LIBS)
-saridx$(EXEEXT): $(saridx_OBJECTS) $(saridx_DEPENDENCIES)
- @rm -f saridx$(EXEEXT)
- $(LINK) $(saridx_LDFLAGS) $(saridx_OBJECTS) $(saridx_LDADD) $(LIBS)
-scnnames$(EXEEXT): $(scnnames_OBJECTS) $(scnnames_DEPENDENCIES)
- @rm -f scnnames$(EXEEXT)
- $(LINK) $(scnnames_LDFLAGS) $(scnnames_OBJECTS) $(scnnames_LDADD) $(LIBS)
-sectiondump$(EXEEXT): $(sectiondump_OBJECTS) $(sectiondump_DEPENDENCIES)
- @rm -f sectiondump$(EXEEXT)
- $(LINK) $(sectiondump_LDFLAGS) $(sectiondump_OBJECTS) $(sectiondump_LDADD) $(LIBS)
-show-abbrev$(EXEEXT): $(show_abbrev_OBJECTS) $(show_abbrev_DEPENDENCIES)
- @rm -f show-abbrev$(EXEEXT)
- $(LINK) $(show_abbrev_LDFLAGS) $(show_abbrev_OBJECTS) $(show_abbrev_LDADD) $(LIBS)
-show-die-info$(EXEEXT): $(show_die_info_OBJECTS) $(show_die_info_DEPENDENCIES)
- @rm -f show-die-info$(EXEEXT)
- $(LINK) $(show_die_info_LDFLAGS) $(show_die_info_OBJECTS) $(show_die_info_LDADD) $(LIBS)
-showptable$(EXEEXT): $(showptable_OBJECTS) $(showptable_DEPENDENCIES)
- @rm -f showptable$(EXEEXT)
- $(LINK) $(showptable_LDFLAGS) $(showptable_OBJECTS) $(showptable_LDADD) $(LIBS)
-test-nlist$(EXEEXT): $(test_nlist_OBJECTS) $(test_nlist_DEPENDENCIES)
- @rm -f test-nlist$(EXEEXT)
- $(LINK) $(test_nlist_LDFLAGS) $(test_nlist_OBJECTS) $(test_nlist_LDADD) $(LIBS)
-update1$(EXEEXT): $(update1_OBJECTS) $(update1_DEPENDENCIES)
- @rm -f update1$(EXEEXT)
- $(LINK) $(update1_LDFLAGS) $(update1_OBJECTS) $(update1_LDADD) $(LIBS)
-update2$(EXEEXT): $(update2_OBJECTS) $(update2_DEPENDENCIES)
- @rm -f update2$(EXEEXT)
- $(LINK) $(update2_LDFLAGS) $(update2_OBJECTS) $(update2_LDADD) $(LIBS)
-update3$(EXEEXT): $(update3_OBJECTS) $(update3_DEPENDENCIES)
- @rm -f update3$(EXEEXT)
- $(LINK) $(update3_LDFLAGS) $(update3_OBJECTS) $(update3_LDADD) $(LIBS)
-update4$(EXEEXT): $(update4_OBJECTS) $(update4_DEPENDENCIES)
- @rm -f update4$(EXEEXT)
- $(LINK) $(update4_LDFLAGS) $(update4_OBJECTS) $(update4_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-include ./$(DEPDIR)/arextract.Po
-include ./$(DEPDIR)/arsymtest.Po
-include ./$(DEPDIR)/asm-tst1.Po
-include ./$(DEPDIR)/asm-tst2.Po
-include ./$(DEPDIR)/asm-tst3.Po
-include ./$(DEPDIR)/asm-tst4.Po
-include ./$(DEPDIR)/asm-tst5.Po
-include ./$(DEPDIR)/asm-tst6.Po
-include ./$(DEPDIR)/asm-tst7.Po
-include ./$(DEPDIR)/asm-tst8.Po
-include ./$(DEPDIR)/asm-tst9.Po
-include ./$(DEPDIR)/ecp.Po
-include ./$(DEPDIR)/get-aranges.Po
-include ./$(DEPDIR)/get-files.Po
-include ./$(DEPDIR)/get-lines.Po
-include ./$(DEPDIR)/get-pubnames.Po
-include ./$(DEPDIR)/hash.Po
-include ./$(DEPDIR)/msg_tst.Po
-include ./$(DEPDIR)/newfile.Po
-include ./$(DEPDIR)/newscn.Po
-include ./$(DEPDIR)/saridx.Po
-include ./$(DEPDIR)/scnnames.Po
-include ./$(DEPDIR)/sectiondump.Po
-include ./$(DEPDIR)/show-abbrev.Po
-include ./$(DEPDIR)/show-die-info.Po
-include ./$(DEPDIR)/showptable.Po
-include ./$(DEPDIR)/test-nlist.Po
-include ./$(DEPDIR)/update1.Po
-include ./$(DEPDIR)/update2.Po
-include ./$(DEPDIR)/update3.Po
-include ./$(DEPDIR)/update4.Po
-
-.c.o:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c $<
-
-.c.obj:
- if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
- then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-check-TESTS: $(TESTS)
- @failed=0; all=0; xfail=0; xpass=0; skip=0; \
- srcdir=$(srcdir); export srcdir; \
- list='$(TESTS)'; \
- if test -n "$$list"; then \
- for tst in $$list; do \
- if test -f ./$$tst; then dir=./; \
- elif test -f $$tst; then dir=; \
- else dir="$(srcdir)/"; fi; \
- if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *" $$tst "*) \
- xpass=`expr $$xpass + 1`; \
- failed=`expr $$failed + 1`; \
- echo "XPASS: $$tst"; \
- ;; \
- *) \
- echo "PASS: $$tst"; \
- ;; \
- esac; \
- elif test $$? -ne 77; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *" $$tst "*) \
- xfail=`expr $$xfail + 1`; \
- echo "XFAIL: $$tst"; \
- ;; \
- *) \
- failed=`expr $$failed + 1`; \
- echo "FAIL: $$tst"; \
- ;; \
- esac; \
- else \
- skip=`expr $$skip + 1`; \
- echo "SKIP: $$tst"; \
- fi; \
- done; \
- if test "$$failed" -eq 0; then \
- if test "$$xfail" -eq 0; then \
- banner="All $$all tests passed"; \
- else \
- banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
- fi; \
- else \
- if test "$$xpass" -eq 0; then \
- banner="$$failed of $$all tests failed"; \
- else \
- banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
- fi; \
- fi; \
- dashes="$$banner"; \
- skipped=""; \
- if test "$$skip" -ne 0; then \
- skipped="($$skip tests were not run)"; \
- test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$skipped"; \
- fi; \
- report=""; \
- if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
- report="Please report to $(PACKAGE_BUGREPORT)"; \
- test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$report"; \
- fi; \
- dashes=`echo "$$dashes" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- test -z "$$skipped" || echo "$$skipped"; \
- test -z "$$report" || echo "$$report"; \
- echo "$$dashes"; \
- test "$$failed" -eq 0; \
- else :; fi
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile $(PROGRAMS)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
- clean-generic clean-noinstPROGRAMS ctags distclean \
- distclean-compile distclean-generic distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-exec install-exec-am \
- install-info install-info-am install-man install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-info-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/tests/Makefile.am b/tests/Makefile.am
deleted file mode 100644
index 1e4f9a8d..00000000
--- a/tests/Makefile.am
+++ /dev/null
@@ -1,98 +0,0 @@
-## Process this file with automake to create Makefile.in
-## Configure input file for elfutils.
-##
-## Copyright (C) 1996-2002, 2003, 2004 Red Hat, Inc.
-##
-## This program is Open Source software; you can redistribute it and/or
-## modify it under the terms of the Open Software License version 1.0 as
-## published by the Open Source Initiative.
-##
-## You should have received a copy of the Open Software License along
-## with this program; if not, you may obtain a copy of the Open Software
-## License version 1.0 from http://www.opensource.org/licenses/osl.php or
-## by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-## 3001 King Ranch Road, Ukiah, CA 95482.
-##
-DEFS = -DHAVE_CONFIG_H -D_GNU_SOURCE
-AM_CFLAGS = -Wall -Werror -std=gnu99
-if !MUDFLAP
-AM_LDFLAGS = -Wl,-rpath,\$$ORIGIN/../libasm:\$$ORIGIN/../libdw:\$$ORIGIN/../libebl:\$$ORIGIN/../libelf
-endif
-INCLUDES = -I$(top_srcdir)/libasm -I$(top_srcdir)/libdw \
- -I$(top_srcdir)/libebl -I$(top_srcdir)/libelf \
- -I$(top_srcdir)/lib -I..
-
-noinst_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \
- showptable update1 update2 update3 update4 test-nlist \
- show-die-info get-files get-lines get-pubnames \
- get-aranges \
- show-abbrev hash asm-tst1 asm-tst2 asm-tst3 \
- asm-tst4 asm-tst5 asm-tst6 asm-tst7 asm-tst8 asm-tst9 \
- msg_tst newscn ecp
-# get-ciefde
-
-TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \
- update1 update2 update3 update4 \
- run-show-die-info.sh run-get-files.sh run-get-lines.sh \
- run-get-pubnames.sh run-get-aranges.sh \
- run-show-abbrev.sh hash asm-tst1 asm-tst2 \
- asm-tst3 asm-tst4 asm-tst5 asm-tst6 asm-tst7 asm-tst8 asm-tst9 \
- msg_tst newscn run-strip-test.sh run-strip-test2.sh \
- run-strip-test3.sh run-ecp-test.sh run-ecp-test2.sh
-# run-show-ciefde.sh
-
-EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
- run-show-die-info.sh run-get-files.sh run-get-lines.sh \
- run-get-pubnames.sh run-get-aranges.sh \
- run-show-ciefde.sh run-show-abbrev.sh run-strip-test.sh \
- run-strip-test2.sh run-ecp-test.sh run-ecp-test2.sh \
- testfile.bz2 testfile2.bz2 testfile3.bz2 testfile4.bz2 \
- testfile5.bz2 testfile6.bz2 testfile7.bz2 testfile8.bz2 \
- testfile9.bz2 testfile10.bz2 testfile11.bz2 testfile12.bz2 \
- testfile13.bz2 run-strip-test3.sh
-
-if MUDFLAP
-libdw = ../libdw/libdw.a
-libelf = ../libelf/libelf.a
-libasm = ../libasm/libasm.a
-else
-libdw = ../libdw/libdw.so
-libelf = ../libelf/libelf.so
-libasm = ../libasm/libasm.so
-endif
-libebl = ../libebl/libebl.a
-
-arextract_LDADD = $(libelf)
-arsymtest_LDADD = $(libelf)
-newfile_LDADD = $(libelf)
-saridx_LDADD = $(libelf)
-scnnames_LDADD = $(libelf)
-sectiondump_LDADD = $(libelf)
-showptable_LDADD = $(libelf)
-hash_LDADD = $(libelf)
-test_nlist_LDADD = $(libelf)
-msg_tst_LDADD = $(libelf)
-newscn_LDADD = $(libelf)
-ecp_LDADD = $(libelf)
-update1_LDADD = $(libelf)
-update2_LDADD = $(libelf)
-update3_LDADD = $(libebl) $(libelf)
-update4_LDADD = $(libebl) $(libelf)
-show_die_info_LDADD = $(libdw) $(libelf)
-get_pubnames_LDADD = $(libdw) $(libelf)
-show_abbrev_LDADD = $(libdw) $(libelf)
-get_lines_LDADD = $(libdw) $(libelf)
-get_files_LDADD = $(libdw) $(libelf)
-get_aranges_LDADD = $(libdw) $(libelf)
-#show_ciefde_LDADD = ../libdwarf/libdwarf.so $(libelf)
-asm_tst1_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst2_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst3_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst4_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst5_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst6_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst7_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst8_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst9_LDADD = $(libasm) $(libebl) $(libelf)
-
-CLEANFILES = xxx
diff --git a/tests/Makefile.in b/tests/Makefile.in
deleted file mode 100644
index c5dd6529..00000000
--- a/tests/Makefile.in
+++ /dev/null
@@ -1,794 +0,0 @@
-# Makefile.in generated by automake 1.9.2 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-SOURCES = arextract.c arsymtest.c asm-tst1.c asm-tst2.c asm-tst3.c asm-tst4.c asm-tst5.c asm-tst6.c asm-tst7.c asm-tst8.c asm-tst9.c ecp.c get-aranges.c get-files.c get-lines.c get-pubnames.c hash.c msg_tst.c newfile.c newscn.c saridx.c scnnames.c sectiondump.c show-abbrev.c show-die-info.c showptable.c test-nlist.c update1.c update2.c update3.c update4.c
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-noinst_PROGRAMS = arextract$(EXEEXT) arsymtest$(EXEEXT) \
- newfile$(EXEEXT) saridx$(EXEEXT) scnnames$(EXEEXT) \
- sectiondump$(EXEEXT) showptable$(EXEEXT) update1$(EXEEXT) \
- update2$(EXEEXT) update3$(EXEEXT) update4$(EXEEXT) \
- test-nlist$(EXEEXT) show-die-info$(EXEEXT) get-files$(EXEEXT) \
- get-lines$(EXEEXT) get-pubnames$(EXEEXT) get-aranges$(EXEEXT) \
- show-abbrev$(EXEEXT) hash$(EXEEXT) asm-tst1$(EXEEXT) \
- asm-tst2$(EXEEXT) asm-tst3$(EXEEXT) asm-tst4$(EXEEXT) \
- asm-tst5$(EXEEXT) asm-tst6$(EXEEXT) asm-tst7$(EXEEXT) \
- asm-tst8$(EXEEXT) asm-tst9$(EXEEXT) msg_tst$(EXEEXT) \
- newscn$(EXEEXT) ecp$(EXEEXT)
-subdir = tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-PROGRAMS = $(noinst_PROGRAMS)
-arextract_SOURCES = arextract.c
-arextract_OBJECTS = arextract.$(OBJEXT)
-@MUDFLAP_FALSE@am__DEPENDENCIES_1 = ../libelf/libelf.so
-@MUDFLAP_TRUE@am__DEPENDENCIES_1 = ../libelf/libelf.a
-arextract_DEPENDENCIES = $(am__DEPENDENCIES_1)
-arsymtest_SOURCES = arsymtest.c
-arsymtest_OBJECTS = arsymtest.$(OBJEXT)
-arsymtest_DEPENDENCIES = $(am__DEPENDENCIES_1)
-asm_tst1_SOURCES = asm-tst1.c
-asm_tst1_OBJECTS = asm-tst1.$(OBJEXT)
-@MUDFLAP_FALSE@am__DEPENDENCIES_2 = ../libasm/libasm.so
-@MUDFLAP_TRUE@am__DEPENDENCIES_2 = ../libasm/libasm.a
-am__DEPENDENCIES_3 = ../libebl/libebl.a
-asm_tst1_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst2_SOURCES = asm-tst2.c
-asm_tst2_OBJECTS = asm-tst2.$(OBJEXT)
-asm_tst2_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst3_SOURCES = asm-tst3.c
-asm_tst3_OBJECTS = asm-tst3.$(OBJEXT)
-asm_tst3_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst4_SOURCES = asm-tst4.c
-asm_tst4_OBJECTS = asm-tst4.$(OBJEXT)
-asm_tst4_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst5_SOURCES = asm-tst5.c
-asm_tst5_OBJECTS = asm-tst5.$(OBJEXT)
-asm_tst5_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst6_SOURCES = asm-tst6.c
-asm_tst6_OBJECTS = asm-tst6.$(OBJEXT)
-asm_tst6_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst7_SOURCES = asm-tst7.c
-asm_tst7_OBJECTS = asm-tst7.$(OBJEXT)
-asm_tst7_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst8_SOURCES = asm-tst8.c
-asm_tst8_OBJECTS = asm-tst8.$(OBJEXT)
-asm_tst8_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-asm_tst9_SOURCES = asm-tst9.c
-asm_tst9_OBJECTS = asm-tst9.$(OBJEXT)
-asm_tst9_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
- $(am__DEPENDENCIES_1)
-ecp_SOURCES = ecp.c
-ecp_OBJECTS = ecp.$(OBJEXT)
-ecp_DEPENDENCIES = $(am__DEPENDENCIES_1)
-get_aranges_SOURCES = get-aranges.c
-get_aranges_OBJECTS = get-aranges.$(OBJEXT)
-@MUDFLAP_FALSE@am__DEPENDENCIES_4 = ../libdw/libdw.so
-@MUDFLAP_TRUE@am__DEPENDENCIES_4 = ../libdw/libdw.a
-get_aranges_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1)
-get_files_SOURCES = get-files.c
-get_files_OBJECTS = get-files.$(OBJEXT)
-get_files_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1)
-get_lines_SOURCES = get-lines.c
-get_lines_OBJECTS = get-lines.$(OBJEXT)
-get_lines_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1)
-get_pubnames_SOURCES = get-pubnames.c
-get_pubnames_OBJECTS = get-pubnames.$(OBJEXT)
-get_pubnames_DEPENDENCIES = $(am__DEPENDENCIES_4) \
- $(am__DEPENDENCIES_1)
-hash_SOURCES = hash.c
-hash_OBJECTS = hash.$(OBJEXT)
-hash_DEPENDENCIES = $(am__DEPENDENCIES_1)
-msg_tst_SOURCES = msg_tst.c
-msg_tst_OBJECTS = msg_tst.$(OBJEXT)
-msg_tst_DEPENDENCIES = $(am__DEPENDENCIES_1)
-newfile_SOURCES = newfile.c
-newfile_OBJECTS = newfile.$(OBJEXT)
-newfile_DEPENDENCIES = $(am__DEPENDENCIES_1)
-newscn_SOURCES = newscn.c
-newscn_OBJECTS = newscn.$(OBJEXT)
-newscn_DEPENDENCIES = $(am__DEPENDENCIES_1)
-saridx_SOURCES = saridx.c
-saridx_OBJECTS = saridx.$(OBJEXT)
-saridx_DEPENDENCIES = $(am__DEPENDENCIES_1)
-scnnames_SOURCES = scnnames.c
-scnnames_OBJECTS = scnnames.$(OBJEXT)
-scnnames_DEPENDENCIES = $(am__DEPENDENCIES_1)
-sectiondump_SOURCES = sectiondump.c
-sectiondump_OBJECTS = sectiondump.$(OBJEXT)
-sectiondump_DEPENDENCIES = $(am__DEPENDENCIES_1)
-show_abbrev_SOURCES = show-abbrev.c
-show_abbrev_OBJECTS = show-abbrev.$(OBJEXT)
-show_abbrev_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1)
-show_die_info_SOURCES = show-die-info.c
-show_die_info_OBJECTS = show-die-info.$(OBJEXT)
-show_die_info_DEPENDENCIES = $(am__DEPENDENCIES_4) \
- $(am__DEPENDENCIES_1)
-showptable_SOURCES = showptable.c
-showptable_OBJECTS = showptable.$(OBJEXT)
-showptable_DEPENDENCIES = $(am__DEPENDENCIES_1)
-test_nlist_SOURCES = test-nlist.c
-test_nlist_OBJECTS = test-nlist.$(OBJEXT)
-test_nlist_DEPENDENCIES = $(am__DEPENDENCIES_1)
-update1_SOURCES = update1.c
-update1_OBJECTS = update1.$(OBJEXT)
-update1_DEPENDENCIES = $(am__DEPENDENCIES_1)
-update2_SOURCES = update2.c
-update2_OBJECTS = update2.$(OBJEXT)
-update2_DEPENDENCIES = $(am__DEPENDENCIES_1)
-update3_SOURCES = update3.c
-update3_OBJECTS = update3.$(OBJEXT)
-update3_DEPENDENCIES = $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1)
-update4_SOURCES = update4.c
-update4_OBJECTS = update4.$(OBJEXT)
-update4_DEPENDENCIES = $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = arextract.c arsymtest.c asm-tst1.c asm-tst2.c asm-tst3.c \
- asm-tst4.c asm-tst5.c asm-tst6.c asm-tst7.c asm-tst8.c \
- asm-tst9.c ecp.c get-aranges.c get-files.c get-lines.c \
- get-pubnames.c hash.c msg_tst.c newfile.c newscn.c saridx.c \
- scnnames.c sectiondump.c show-abbrev.c show-die-info.c \
- showptable.c test-nlist.c update1.c update2.c update3.c \
- update4.c
-DIST_SOURCES = arextract.c arsymtest.c asm-tst1.c asm-tst2.c \
- asm-tst3.c asm-tst4.c asm-tst5.c asm-tst6.c asm-tst7.c \
- asm-tst8.c asm-tst9.c ecp.c get-aranges.c get-files.c \
- get-lines.c get-pubnames.c hash.c msg_tst.c newfile.c newscn.c \
- saridx.c scnnames.c sectiondump.c show-abbrev.c \
- show-die-info.c showptable.c test-nlist.c update1.c update2.c \
- update3.c update4.c
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = -DHAVE_CONFIG_H -D_GNU_SOURCE
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GMSGFMT = @GMSGFMT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
-MUDFLAP_FALSE = @MUDFLAP_FALSE@
-MUDFLAP_TRUE = @MUDFLAP_TRUE@
-NATIVE_LD_FALSE = @NATIVE_LD_FALSE@
-NATIVE_LD_TRUE = @NATIVE_LD_TRUE@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-XGETTEXT = @XGETTEXT@
-YACC = @YACC@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-base_cpu = @base_cpu@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-AM_CFLAGS = -Wall -Werror -std=gnu99
-@MUDFLAP_FALSE@AM_LDFLAGS = -Wl,-rpath,\$$ORIGIN/../libasm:\$$ORIGIN/../libdw:\$$ORIGIN/../libebl:\$$ORIGIN/../libelf
-INCLUDES = -I$(top_srcdir)/libasm -I$(top_srcdir)/libdw \
- -I$(top_srcdir)/libebl -I$(top_srcdir)/libelf \
- -I$(top_srcdir)/lib -I..
-
-# get-ciefde
-TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \
- update1 update2 update3 update4 \
- run-show-die-info.sh run-get-files.sh run-get-lines.sh \
- run-get-pubnames.sh run-get-aranges.sh \
- run-show-abbrev.sh hash asm-tst1 asm-tst2 \
- asm-tst3 asm-tst4 asm-tst5 asm-tst6 asm-tst7 asm-tst8 asm-tst9 \
- msg_tst newscn run-strip-test.sh run-strip-test2.sh \
- run-strip-test3.sh run-ecp-test.sh run-ecp-test2.sh
-
-# run-show-ciefde.sh
-EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
- run-show-die-info.sh run-get-files.sh run-get-lines.sh \
- run-get-pubnames.sh run-get-aranges.sh \
- run-show-ciefde.sh run-show-abbrev.sh run-strip-test.sh \
- run-strip-test2.sh run-ecp-test.sh run-ecp-test2.sh \
- testfile.bz2 testfile2.bz2 testfile3.bz2 testfile4.bz2 \
- testfile5.bz2 testfile6.bz2 testfile7.bz2 testfile8.bz2 \
- testfile9.bz2 testfile10.bz2 testfile11.bz2 testfile12.bz2 \
- testfile13.bz2 run-strip-test3.sh
-
-@MUDFLAP_FALSE@libdw = ../libdw/libdw.so
-@MUDFLAP_TRUE@libdw = ../libdw/libdw.a
-@MUDFLAP_FALSE@libelf = ../libelf/libelf.so
-@MUDFLAP_TRUE@libelf = ../libelf/libelf.a
-@MUDFLAP_FALSE@libasm = ../libasm/libasm.so
-@MUDFLAP_TRUE@libasm = ../libasm/libasm.a
-libebl = ../libebl/libebl.a
-arextract_LDADD = $(libelf)
-arsymtest_LDADD = $(libelf)
-newfile_LDADD = $(libelf)
-saridx_LDADD = $(libelf)
-scnnames_LDADD = $(libelf)
-sectiondump_LDADD = $(libelf)
-showptable_LDADD = $(libelf)
-hash_LDADD = $(libelf)
-test_nlist_LDADD = $(libelf)
-msg_tst_LDADD = $(libelf)
-newscn_LDADD = $(libelf)
-ecp_LDADD = $(libelf)
-update1_LDADD = $(libelf)
-update2_LDADD = $(libelf)
-update3_LDADD = $(libebl) $(libelf)
-update4_LDADD = $(libebl) $(libelf)
-show_die_info_LDADD = $(libdw) $(libelf)
-get_pubnames_LDADD = $(libdw) $(libelf)
-show_abbrev_LDADD = $(libdw) $(libelf)
-get_lines_LDADD = $(libdw) $(libelf)
-get_files_LDADD = $(libdw) $(libelf)
-get_aranges_LDADD = $(libdw) $(libelf)
-#show_ciefde_LDADD = ../libdwarf/libdwarf.so $(libelf)
-asm_tst1_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst2_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst3_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst4_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst5_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst6_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst7_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst8_LDADD = $(libasm) $(libebl) $(libelf)
-asm_tst9_LDADD = $(libasm) $(libebl) $(libelf)
-CLEANFILES = xxx
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnits tests/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-arextract$(EXEEXT): $(arextract_OBJECTS) $(arextract_DEPENDENCIES)
- @rm -f arextract$(EXEEXT)
- $(LINK) $(arextract_LDFLAGS) $(arextract_OBJECTS) $(arextract_LDADD) $(LIBS)
-arsymtest$(EXEEXT): $(arsymtest_OBJECTS) $(arsymtest_DEPENDENCIES)
- @rm -f arsymtest$(EXEEXT)
- $(LINK) $(arsymtest_LDFLAGS) $(arsymtest_OBJECTS) $(arsymtest_LDADD) $(LIBS)
-asm-tst1$(EXEEXT): $(asm_tst1_OBJECTS) $(asm_tst1_DEPENDENCIES)
- @rm -f asm-tst1$(EXEEXT)
- $(LINK) $(asm_tst1_LDFLAGS) $(asm_tst1_OBJECTS) $(asm_tst1_LDADD) $(LIBS)
-asm-tst2$(EXEEXT): $(asm_tst2_OBJECTS) $(asm_tst2_DEPENDENCIES)
- @rm -f asm-tst2$(EXEEXT)
- $(LINK) $(asm_tst2_LDFLAGS) $(asm_tst2_OBJECTS) $(asm_tst2_LDADD) $(LIBS)
-asm-tst3$(EXEEXT): $(asm_tst3_OBJECTS) $(asm_tst3_DEPENDENCIES)
- @rm -f asm-tst3$(EXEEXT)
- $(LINK) $(asm_tst3_LDFLAGS) $(asm_tst3_OBJECTS) $(asm_tst3_LDADD) $(LIBS)
-asm-tst4$(EXEEXT): $(asm_tst4_OBJECTS) $(asm_tst4_DEPENDENCIES)
- @rm -f asm-tst4$(EXEEXT)
- $(LINK) $(asm_tst4_LDFLAGS) $(asm_tst4_OBJECTS) $(asm_tst4_LDADD) $(LIBS)
-asm-tst5$(EXEEXT): $(asm_tst5_OBJECTS) $(asm_tst5_DEPENDENCIES)
- @rm -f asm-tst5$(EXEEXT)
- $(LINK) $(asm_tst5_LDFLAGS) $(asm_tst5_OBJECTS) $(asm_tst5_LDADD) $(LIBS)
-asm-tst6$(EXEEXT): $(asm_tst6_OBJECTS) $(asm_tst6_DEPENDENCIES)
- @rm -f asm-tst6$(EXEEXT)
- $(LINK) $(asm_tst6_LDFLAGS) $(asm_tst6_OBJECTS) $(asm_tst6_LDADD) $(LIBS)
-asm-tst7$(EXEEXT): $(asm_tst7_OBJECTS) $(asm_tst7_DEPENDENCIES)
- @rm -f asm-tst7$(EXEEXT)
- $(LINK) $(asm_tst7_LDFLAGS) $(asm_tst7_OBJECTS) $(asm_tst7_LDADD) $(LIBS)
-asm-tst8$(EXEEXT): $(asm_tst8_OBJECTS) $(asm_tst8_DEPENDENCIES)
- @rm -f asm-tst8$(EXEEXT)
- $(LINK) $(asm_tst8_LDFLAGS) $(asm_tst8_OBJECTS) $(asm_tst8_LDADD) $(LIBS)
-asm-tst9$(EXEEXT): $(asm_tst9_OBJECTS) $(asm_tst9_DEPENDENCIES)
- @rm -f asm-tst9$(EXEEXT)
- $(LINK) $(asm_tst9_LDFLAGS) $(asm_tst9_OBJECTS) $(asm_tst9_LDADD) $(LIBS)
-ecp$(EXEEXT): $(ecp_OBJECTS) $(ecp_DEPENDENCIES)
- @rm -f ecp$(EXEEXT)
- $(LINK) $(ecp_LDFLAGS) $(ecp_OBJECTS) $(ecp_LDADD) $(LIBS)
-get-aranges$(EXEEXT): $(get_aranges_OBJECTS) $(get_aranges_DEPENDENCIES)
- @rm -f get-aranges$(EXEEXT)
- $(LINK) $(get_aranges_LDFLAGS) $(get_aranges_OBJECTS) $(get_aranges_LDADD) $(LIBS)
-get-files$(EXEEXT): $(get_files_OBJECTS) $(get_files_DEPENDENCIES)
- @rm -f get-files$(EXEEXT)
- $(LINK) $(get_files_LDFLAGS) $(get_files_OBJECTS) $(get_files_LDADD) $(LIBS)
-get-lines$(EXEEXT): $(get_lines_OBJECTS) $(get_lines_DEPENDENCIES)
- @rm -f get-lines$(EXEEXT)
- $(LINK) $(get_lines_LDFLAGS) $(get_lines_OBJECTS) $(get_lines_LDADD) $(LIBS)
-get-pubnames$(EXEEXT): $(get_pubnames_OBJECTS) $(get_pubnames_DEPENDENCIES)
- @rm -f get-pubnames$(EXEEXT)
- $(LINK) $(get_pubnames_LDFLAGS) $(get_pubnames_OBJECTS) $(get_pubnames_LDADD) $(LIBS)
-hash$(EXEEXT): $(hash_OBJECTS) $(hash_DEPENDENCIES)
- @rm -f hash$(EXEEXT)
- $(LINK) $(hash_LDFLAGS) $(hash_OBJECTS) $(hash_LDADD) $(LIBS)
-msg_tst$(EXEEXT): $(msg_tst_OBJECTS) $(msg_tst_DEPENDENCIES)
- @rm -f msg_tst$(EXEEXT)
- $(LINK) $(msg_tst_LDFLAGS) $(msg_tst_OBJECTS) $(msg_tst_LDADD) $(LIBS)
-newfile$(EXEEXT): $(newfile_OBJECTS) $(newfile_DEPENDENCIES)
- @rm -f newfile$(EXEEXT)
- $(LINK) $(newfile_LDFLAGS) $(newfile_OBJECTS) $(newfile_LDADD) $(LIBS)
-newscn$(EXEEXT): $(newscn_OBJECTS) $(newscn_DEPENDENCIES)
- @rm -f newscn$(EXEEXT)
- $(LINK) $(newscn_LDFLAGS) $(newscn_OBJECTS) $(newscn_LDADD) $(LIBS)
-saridx$(EXEEXT): $(saridx_OBJECTS) $(saridx_DEPENDENCIES)
- @rm -f saridx$(EXEEXT)
- $(LINK) $(saridx_LDFLAGS) $(saridx_OBJECTS) $(saridx_LDADD) $(LIBS)
-scnnames$(EXEEXT): $(scnnames_OBJECTS) $(scnnames_DEPENDENCIES)
- @rm -f scnnames$(EXEEXT)
- $(LINK) $(scnnames_LDFLAGS) $(scnnames_OBJECTS) $(scnnames_LDADD) $(LIBS)
-sectiondump$(EXEEXT): $(sectiondump_OBJECTS) $(sectiondump_DEPENDENCIES)
- @rm -f sectiondump$(EXEEXT)
- $(LINK) $(sectiondump_LDFLAGS) $(sectiondump_OBJECTS) $(sectiondump_LDADD) $(LIBS)
-show-abbrev$(EXEEXT): $(show_abbrev_OBJECTS) $(show_abbrev_DEPENDENCIES)
- @rm -f show-abbrev$(EXEEXT)
- $(LINK) $(show_abbrev_LDFLAGS) $(show_abbrev_OBJECTS) $(show_abbrev_LDADD) $(LIBS)
-show-die-info$(EXEEXT): $(show_die_info_OBJECTS) $(show_die_info_DEPENDENCIES)
- @rm -f show-die-info$(EXEEXT)
- $(LINK) $(show_die_info_LDFLAGS) $(show_die_info_OBJECTS) $(show_die_info_LDADD) $(LIBS)
-showptable$(EXEEXT): $(showptable_OBJECTS) $(showptable_DEPENDENCIES)
- @rm -f showptable$(EXEEXT)
- $(LINK) $(showptable_LDFLAGS) $(showptable_OBJECTS) $(showptable_LDADD) $(LIBS)
-test-nlist$(EXEEXT): $(test_nlist_OBJECTS) $(test_nlist_DEPENDENCIES)
- @rm -f test-nlist$(EXEEXT)
- $(LINK) $(test_nlist_LDFLAGS) $(test_nlist_OBJECTS) $(test_nlist_LDADD) $(LIBS)
-update1$(EXEEXT): $(update1_OBJECTS) $(update1_DEPENDENCIES)
- @rm -f update1$(EXEEXT)
- $(LINK) $(update1_LDFLAGS) $(update1_OBJECTS) $(update1_LDADD) $(LIBS)
-update2$(EXEEXT): $(update2_OBJECTS) $(update2_DEPENDENCIES)
- @rm -f update2$(EXEEXT)
- $(LINK) $(update2_LDFLAGS) $(update2_OBJECTS) $(update2_LDADD) $(LIBS)
-update3$(EXEEXT): $(update3_OBJECTS) $(update3_DEPENDENCIES)
- @rm -f update3$(EXEEXT)
- $(LINK) $(update3_LDFLAGS) $(update3_OBJECTS) $(update3_LDADD) $(LIBS)
-update4$(EXEEXT): $(update4_OBJECTS) $(update4_DEPENDENCIES)
- @rm -f update4$(EXEEXT)
- $(LINK) $(update4_LDFLAGS) $(update4_OBJECTS) $(update4_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arextract.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arsymtest.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm-tst1.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm-tst2.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm-tst3.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm-tst4.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm-tst5.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm-tst6.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm-tst7.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm-tst8.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asm-tst9.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get-aranges.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get-files.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get-lines.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get-pubnames.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msg_tst.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/newfile.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/newscn.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/saridx.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scnnames.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sectiondump.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/show-abbrev.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/show-die-info.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/showptable.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nlist.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/update1.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/update2.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/update3.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/update4.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-check-TESTS: $(TESTS)
- @failed=0; all=0; xfail=0; xpass=0; skip=0; \
- srcdir=$(srcdir); export srcdir; \
- list='$(TESTS)'; \
- if test -n "$$list"; then \
- for tst in $$list; do \
- if test -f ./$$tst; then dir=./; \
- elif test -f $$tst; then dir=; \
- else dir="$(srcdir)/"; fi; \
- if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *" $$tst "*) \
- xpass=`expr $$xpass + 1`; \
- failed=`expr $$failed + 1`; \
- echo "XPASS: $$tst"; \
- ;; \
- *) \
- echo "PASS: $$tst"; \
- ;; \
- esac; \
- elif test $$? -ne 77; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *" $$tst "*) \
- xfail=`expr $$xfail + 1`; \
- echo "XFAIL: $$tst"; \
- ;; \
- *) \
- failed=`expr $$failed + 1`; \
- echo "FAIL: $$tst"; \
- ;; \
- esac; \
- else \
- skip=`expr $$skip + 1`; \
- echo "SKIP: $$tst"; \
- fi; \
- done; \
- if test "$$failed" -eq 0; then \
- if test "$$xfail" -eq 0; then \
- banner="All $$all tests passed"; \
- else \
- banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
- fi; \
- else \
- if test "$$xpass" -eq 0; then \
- banner="$$failed of $$all tests failed"; \
- else \
- banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
- fi; \
- fi; \
- dashes="$$banner"; \
- skipped=""; \
- if test "$$skip" -ne 0; then \
- skipped="($$skip tests were not run)"; \
- test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$skipped"; \
- fi; \
- report=""; \
- if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
- report="Please report to $(PACKAGE_BUGREPORT)"; \
- test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$report"; \
- fi; \
- dashes=`echo "$$dashes" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- test -z "$$skipped" || echo "$$skipped"; \
- test -z "$$report" || echo "$$report"; \
- echo "$$dashes"; \
- test "$$failed" -eq 0; \
- else :; fi
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile $(PROGRAMS)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
- clean-generic clean-noinstPROGRAMS ctags distclean \
- distclean-compile distclean-generic distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-exec install-exec-am \
- install-info install-info-am install-man install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-info-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/tests/arextract.c b/tests/arextract.c
deleted file mode 100644
index aa86fb4e..00000000
--- a/tests/arextract.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/* Copyright (C) 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <fcntl.h>
-#include <gelf.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/param.h>
-
-
-int
-main (int argc, char *argv[])
-{
- int fd;
- Elf *elf;
- Elf *subelf;
- Elf_Cmd cmd;
- off_t offset;
- size_t todo;
-
- if (argc < 4)
- exit (1);
-
- /* Open the archive. */
- fd = open (argv[1], O_RDONLY);
- if (fd == -1)
- {
- printf ("Cannot open input file: %m");
- exit (1);
- }
-
- /* Set the ELF version. */
- elf_version (EV_CURRENT);
-
- /* Create an ELF descriptor. */
- cmd = ELF_C_READ;
- elf = elf_begin (fd, cmd, NULL);
- if (elf == NULL)
- {
- printf ("Cannot create ELF descriptor: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* If it is no archive punt. */
- if (elf_kind (elf) != ELF_K_AR)
- {
- printf ("`%s' is no archive\n", argv[1]);
- exit (1);
- }
-
- /* Get the elements of the archive one after the other. */
- while ((subelf = elf_begin (fd, cmd, elf)) != NULL)
- {
- /* The the header for this element. */
- Elf_Arhdr *arhdr = elf_getarhdr (subelf);
-
- if (arhdr == NULL)
- {
- printf ("cannot get arhdr: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- if (strcmp (arhdr->ar_name, argv[2]) == 0)
- {
- int outfd;
-
- /* Get the offset of the file in the archive. */
- offset = elf_getbase (subelf);
- if (offset == -1)
- {
- printf ("\
-Failed to get base address for the archive element: %s\n",
- elf_errmsg (-1));
- exit (1);
- }
-
- /* Open the output file. */
- outfd = open (argv[3], O_CREAT | O_TRUNC | O_RDWR, 0666);
- if (outfd == -1)
- {
- printf ("cannot open output file: %m");
- exit (1);
- }
-
- /* Now write out the data. */
- todo = arhdr->ar_size;
- while (todo > 0)
- {
- char buf[1024];
- ssize_t n = pread (fd, buf, MIN (sizeof buf, todo), offset);
- if (n == 0)
- break;
-
- if (write (outfd, buf, n) != n)
- {
- puts ("Writing output failed");
- exit (1);
- }
-
- offset += n;
- todo -= n;
- }
-
- /* Check whether all the date was read and written out. */
- if (todo != 0)
- {
- puts ("Reading archive member failed.");
- exit (1);
- }
-
- /* Close the descriptors. */
- if (elf_end (subelf) != 0 || elf_end (elf) != 0)
- {
- printf ("Freeing ELF descriptors failed: %s", elf_errmsg (-1));
- exit (1);
- }
-
- close (outfd);
- close (fd);
-
- /* All went well. */
- exit (0);
- }
-
- /* Get next archive element. */
- cmd = elf_next (subelf);
- if (elf_end (subelf) != 0)
- {
- printf ("error while freeing sub-ELF descriptor: %s\n",
- elf_errmsg (-1));
- exit (1);
- }
- }
-
- /* When we reach this point we haven't found the given file in the
- archive. */
- printf ("File `%s' not found in archive\n", argv[2]);
- exit (1);
-}
diff --git a/tests/arsymtest.c b/tests/arsymtest.c
deleted file mode 100644
index e4c2cf09..00000000
--- a/tests/arsymtest.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/* Copyright (C) 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <config.h>
-
-#include <fcntl.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-int
-main (int argc, char *argv[])
-{
- int fd;
- FILE *fp;
- Elf *elf;
- Elf_Arsym *arsym;
- size_t narsym;
-
- if (argc < 3)
- exit (1);
-
- /* Open the archive. */
- fd = open (argv[1], O_RDONLY);
- if (fd == -1)
- {
- printf ("Cannot open input file: %m");
- exit (1);
- }
-
- /* Open the output file. */
- fp = fopen (argv[2], "w");
- if (fp == NULL)
- {
- printf ("Cannot open output file: %m");
- exit (1);
- }
-
- /* Set the ELF version. */
- elf_version (EV_CURRENT);
-
- /* Create an ELF descriptor. */
- elf = elf_begin (fd, ELF_C_READ, NULL);
- if (elf == NULL)
- {
- printf ("Cannot create ELF descriptor: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* If it is no archive punt. */
- if (elf_kind (elf) != ELF_K_AR)
- {
- printf ("`%s' is no archive\n", argv[1]);
- exit (1);
- }
-
- /* Now get the index of the archive. */
- arsym = elf_getarsym (elf, &narsym);
- if (arsym == NULL)
- {
- printf ("Cannot get archive index: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* If there is no element in the index do nothing. There always is
- an empty entry at the end which is included in the count and
- which we want to skip. */
- if (narsym-- > 1)
- while (narsym-- > 0)
- {
- Elf *subelf;
- Elf_Arhdr *arhdr;
-
- if (elf_rand (elf, arsym[narsym].as_off) != arsym[narsym].as_off)
- {
- printf ("random access for symbol `%s' fails: %s\n",
- arsym[narsym].as_name, elf_errmsg (-1));
- exit (1);
- }
-
- subelf = elf_begin (fd, ELF_C_READ, elf);
- if (subelf == NULL)
- {
- printf ("Cannot create ELF descriptor for archive member: %s\n",
- elf_errmsg (-1));
- exit (1);
- }
-
- arhdr = elf_getarhdr (subelf);
- if (arhdr == NULL)
- {
- printf ("Cannot get archive header for element `%s': %s\n",
- arsym[narsym].as_name, elf_errmsg (-1));
- exit (1);
- }
-
- /* Now print what we actually want. */
- fprintf (fp, "%s in %s\n", arsym[narsym].as_name, arhdr->ar_name);
-
- /* Free the ELF descriptor. */
- if (elf_end (subelf) != 0)
- {
- printf ("Error while freeing subELF descriptor: %s\n",
- elf_errmsg (-1));
- exit (1);
- }
- }
-
- /* Free the ELF descriptor. */
- if (elf_end (elf) != 0)
- {
- printf ("Error while freeing ELF descriptor: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- close (fd);
- fclose (fp);
-
- return 0;
-}
diff --git a/tests/asm-tst1.c b/tests/asm-tst1.c
deleted file mode 100644
index b76930d0..00000000
--- a/tests/asm-tst1.c
+++ /dev/null
@@ -1,239 +0,0 @@
-/* Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <fcntl.h>
-#include <libasm.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static const char fname[] = "asm-tst1-out.o";
-
-
-static const GElf_Ehdr expected_ehdr =
- {
- .e_ident = { [EI_MAG0] = ELFMAG0,
- [EI_MAG1] = ELFMAG1,
- [EI_MAG2] = ELFMAG2,
- [EI_MAG3] = ELFMAG3,
- [EI_CLASS] = ELFCLASS32,
- [EI_DATA] = ELFDATA2LSB,
- [EI_VERSION] = EV_CURRENT },
- .e_type = ET_REL,
- .e_machine = EM_386,
- .e_version = EV_CURRENT,
- .e_shoff = 88,
- .e_ehsize = sizeof (Elf32_Ehdr),
- .e_shentsize = sizeof (Elf32_Shdr),
- .e_shnum = 4,
- .e_shstrndx = 3
- };
-
-
-static const char *scnnames[4] =
- {
- [0] = "",
- [1] = ".text",
- [2] = ".data",
- [3] = ".shstrtab"
- };
-
-
-int
-main (void)
-{
- AsmCtx_t *ctx;
- AsmScn_t *scn1;
- AsmScn_t *scn2;
- int fd;
- Elf *elf;
- GElf_Ehdr ehdr_mem;
- GElf_Ehdr *ehdr;
- int result = 0;
- size_t cnt;
-
- elf_version (EV_CURRENT);
-
- ctx = asm_begin (fname, false, EM_386, ELFCLASS32, ELFDATA2LSB);
- if (ctx == NULL)
- {
- printf ("cannot create assembler context: %s\n", asm_errmsg (-1));
- return 1;
- }
-
- /* Create two sections. */
- scn1 = asm_newscn (ctx, ".text", SHT_PROGBITS, SHF_ALLOC | SHF_EXECINSTR);
- scn2 = asm_newscn (ctx, ".data", SHT_PROGBITS, SHF_ALLOC | SHF_WRITE);
- if (scn1 == NULL || scn2 == NULL)
- {
- printf ("cannot create section in output file: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Special alignment for the .text section. */
- if (asm_align (scn1, 32) != 0)
- {
- printf ("cannot align .text section: %s\n", asm_errmsg (-1));
- result = 1;
- }
-
- /* Create the output file. */
- if (asm_end (ctx) != 0)
- {
- printf ("cannot create output file: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Check the file. */
- fd = open (fname, O_RDONLY);
- if (fd == -1)
- {
- printf ("cannot open generated file: %m\n");
- result = 1;
- goto out;
- }
-
- elf = elf_begin (fd, ELF_C_READ, NULL);
- if (elf == NULL)
- {
- printf ("cannot create ELF descriptor: %s\n", elf_errmsg (-1));
- result = 1;
- goto out_close;
- }
- if (elf_kind (elf) != ELF_K_ELF)
- {
- puts ("not a valid ELF file");
- result = 1;
- goto out_close2;
- }
-
- ehdr = gelf_getehdr (elf, &ehdr_mem);
- if (ehdr == NULL)
- {
- printf ("cannot get ELF header: %s\n", elf_errmsg (-1));
- result = 1;
- goto out_close2;
- }
-
- if (memcmp (ehdr, &expected_ehdr, sizeof (GElf_Ehdr)) != 0)
- {
- puts ("ELF header does not match");
- result = 1;
- goto out_close2;
- }
-
- for (cnt = 1; cnt < 4; ++cnt)
- {
- Elf_Scn *scn;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
-
- scn = elf_getscn (elf, cnt);
- if (scn == NULL)
- {
- printf ("cannot get section %Zd: %s\n", cnt, elf_errmsg (-1));
- result = 1;
- continue;
- }
-
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- {
- printf ("cannot get section header for section %Zd: %s\n",
- cnt, elf_errmsg (-1));
- result = 1;
- continue;
- }
-
- if (strcmp (elf_strptr (elf, ehdr->e_shstrndx, shdr->sh_name),
- scnnames[cnt]) != 0)
- {
- printf ("section %Zd's name differs: %s vs %s\n", cnt,
- elf_strptr (elf, ehdr->e_shstrndx, shdr->sh_name),
- scnnames[cnt]);
- result = 1;
- }
-
- if (shdr->sh_type != (cnt == 3 ? SHT_STRTAB : SHT_PROGBITS))
- {
- printf ("section %Zd's type differs\n", cnt);
- result = 1;
- }
-
- if ((cnt == 1 && shdr->sh_flags != (SHF_ALLOC | SHF_EXECINSTR))
- || (cnt == 2 && shdr->sh_flags != (SHF_ALLOC | SHF_WRITE))
- || (cnt == 3 && shdr->sh_flags != 0))
- {
- printf ("section %Zd's flags differs\n", cnt);
- result = 1;
- }
-
- if (shdr->sh_addr != 0)
- {
- printf ("section %Zd's address differs\n", cnt);
- result = 1;
- }
-
- if (shdr->sh_offset != ((sizeof (Elf32_Ehdr) + 31) & ~31))
- {
- printf ("section %Zd's offset differs\n", cnt);
- result = 1;
- }
-
- if ((cnt != 3 && shdr->sh_size != 0)
- || (cnt == 3 && shdr->sh_size != 23))
- {
- printf ("section %Zd's size differs\n", cnt);
- result = 1;
- }
-
- if (shdr->sh_link != 0)
- {
- printf ("section %Zd's link differs\n", cnt);
- result = 1;
- }
-
- if (shdr->sh_info != 0)
- {
- printf ("section %Zd's info differs\n", cnt);
- result = 1;
- }
-
- if ((cnt == 1 && shdr->sh_addralign != 32)
- || (cnt != 1 && shdr->sh_addralign != 1))
- {
- printf ("section %Zd's addralign differs\n", cnt);
- result = 1;
- }
-
- if (shdr->sh_entsize != 0)
- {
- printf ("section %Zd's entsize differs\n", cnt);
- result = 1;
- }
- }
-
- out_close2:
- elf_end (elf);
- out_close:
- close (fd);
- out:
- /* We don't need the file anymore. */
- unlink (fname);
-
- return result;
-}
diff --git a/tests/asm-tst2.c b/tests/asm-tst2.c
deleted file mode 100644
index a309976d..00000000
--- a/tests/asm-tst2.c
+++ /dev/null
@@ -1,261 +0,0 @@
-/* Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <fcntl.h>
-#include <libasm.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static const char fname[] = "asm-tst2-out.o";
-
-
-static const GElf_Ehdr expected_ehdr =
- {
- .e_ident = { [EI_MAG0] = ELFMAG0,
- [EI_MAG1] = ELFMAG1,
- [EI_MAG2] = ELFMAG2,
- [EI_MAG3] = ELFMAG3,
- [EI_CLASS] = ELFCLASS32,
- [EI_DATA] = ELFDATA2LSB,
- [EI_VERSION] = EV_CURRENT },
- .e_type = ET_REL,
- .e_machine = EM_386,
- .e_version = EV_CURRENT,
- .e_shoff = 96,
- .e_ehsize = sizeof (Elf32_Ehdr),
- .e_shentsize = sizeof (Elf32_Shdr),
- .e_shnum = 3,
- .e_shstrndx = 2
- };
-
-
-static const char *scnnames[3] =
- {
- [0] = "",
- [1] = ".data",
- [2] = ".shstrtab"
- };
-
-
-int
-main (void)
-{
- AsmCtx_t *ctx;
- AsmScn_t *scn1;
- AsmScn_t *scn2;
- int result = 0;
- int fd;
- Elf *elf;
- GElf_Ehdr ehdr_mem;
- GElf_Ehdr *ehdr;
- size_t cnt;
-
- elf_version (EV_CURRENT);
-
- ctx = asm_begin (fname, false, EM_386, ELFCLASS32, ELFDATA2LSB);
- if (ctx == NULL)
- {
- printf ("cannot create assembler context: %s\n", asm_errmsg (-1));
- return 1;
- }
-
- /* Create two sections. */
- scn1 = asm_newscn (ctx, ".data", SHT_PROGBITS, SHF_ALLOC | SHF_WRITE);
- scn2 = asm_newsubscn (scn1, 1);
- if (scn1 == NULL || scn2 == NULL)
- {
- printf ("cannot create section in output file: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Special alignment for the .text section. */
- if (asm_align (scn1, 16) != 0)
- {
- printf ("cannot align .text section: %s\n", asm_errmsg (-1));
- result = 1;
- }
-
- /* Add a few strings. */
- if (asm_addstrz (scn1, "one", 4) != 0)
- {
- printf ("cannot insert first string: %s\n", asm_errmsg (-1));
- result = 1;
- }
- if (asm_addstrz (scn2, "three", 0) != 0)
- {
- printf ("cannot insert second string: %s\n", asm_errmsg (-1));
- result = 1;
- }
- if (asm_addstrz (scn1, "two", 4) != 0)
- {
- printf ("cannot insert third string: %s\n", asm_errmsg (-1));
- result = 1;
- }
-
- /* Create the output file. */
- if (asm_end (ctx) != 0)
- {
- printf ("cannot create output file: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Check the file. */
- fd = open (fname, O_RDONLY);
- if (fd == -1)
- {
- printf ("cannot open generated file: %m\n");
- result = 1;
- goto out;
- }
-
- elf = elf_begin (fd, ELF_C_READ, NULL);
- if (elf == NULL)
- {
- printf ("cannot create ELF descriptor: %s\n", elf_errmsg (-1));
- result = 1;
- goto out_close;
- }
- if (elf_kind (elf) != ELF_K_ELF)
- {
- puts ("not a valid ELF file");
- result = 1;
- goto out_close2;
- }
-
- ehdr = gelf_getehdr (elf, &ehdr_mem);
- if (ehdr == NULL)
- {
- printf ("cannot get ELF header: %s\n", elf_errmsg (-1));
- result = 1;
- goto out_close2;
- }
-
- if (memcmp (ehdr, &expected_ehdr, sizeof (GElf_Ehdr)) != 0)
- {
- puts ("ELF header does not match");
- result = 1;
- goto out_close2;
- }
-
- for (cnt = 1; cnt < 3; ++cnt)
- {
- Elf_Scn *scn;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
-
- scn = elf_getscn (elf, cnt);
- if (scn == NULL)
- {
- printf ("cannot get section %Zd: %s\n", cnt, elf_errmsg (-1));
- result = 1;
- continue;
- }
-
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- {
- printf ("cannot get section header for section %Zd: %s\n",
- cnt, elf_errmsg (-1));
- result = 1;
- continue;
- }
-
- if (strcmp (elf_strptr (elf, ehdr->e_shstrndx, shdr->sh_name),
- scnnames[cnt]) != 0)
- {
- printf ("section %Zd's name differs: %s vs %s\n", cnt,
- elf_strptr (elf, ehdr->e_shstrndx, shdr->sh_name),
- scnnames[cnt]);
- result = 1;
- }
-
- if (shdr->sh_type != (cnt == 2 ? SHT_STRTAB : SHT_PROGBITS))
- {
- printf ("section %Zd's type differs\n", cnt);
- result = 1;
- }
-
- if ((cnt == 1 && shdr->sh_flags != (SHF_ALLOC | SHF_WRITE))
- || (cnt == 2 && shdr->sh_flags != 0))
- {
- printf ("section %Zd's flags differs\n", cnt);
- result = 1;
- }
-
- if (shdr->sh_addr != 0)
- {
- printf ("section %Zd's address differs\n", cnt);
- result = 1;
- }
-
- if ((cnt == 1 && shdr->sh_offset != ((sizeof (Elf32_Ehdr) + 15) & ~15))
- || (cnt == 2
- && shdr->sh_offset != (((sizeof (Elf32_Ehdr) + 15) & ~15)
- + strlen ("one") + 1
- + strlen ("two") + 1
- + strlen ("three") + 1)))
- {
- printf ("section %Zd's offset differs\n", cnt);
- result = 1;
- }
-
- if ((cnt == 1 && shdr->sh_size != (strlen ("one") + 1
- + strlen ("two") + 1
- + strlen ("three") + 1))
- || (cnt == 2 && shdr->sh_size != 17))
- {
- printf ("section %Zd's size differs\n", cnt);
- result = 1;
- }
-
- if (shdr->sh_link != 0)
- {
- printf ("section %Zd's link differs\n", cnt);
- result = 1;
- }
-
- if (shdr->sh_info != 0)
- {
- printf ("section %Zd's info differs\n", cnt);
- result = 1;
- }
-
- if ((cnt == 1 && shdr->sh_addralign != 16)
- || (cnt != 1 && shdr->sh_addralign != 1))
- {
- printf ("section %Zd's addralign differs\n", cnt);
- result = 1;
- }
-
- if (shdr->sh_entsize != 0)
- {
- printf ("section %Zd's entsize differs\n", cnt);
- result = 1;
- }
- }
-
- out_close2:
- elf_end (elf);
- out_close:
- close (fd);
- out:
- /* We don't need the file anymore. */
- unlink (fname);
-
- return result;
-}
diff --git a/tests/asm-tst3.c b/tests/asm-tst3.c
deleted file mode 100644
index fb79ea78..00000000
--- a/tests/asm-tst3.c
+++ /dev/null
@@ -1,322 +0,0 @@
-/* Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <fcntl.h>
-#include <libasm.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static const char fname[] = "asm-tst3-out.o";
-
-
-static const char *scnnames[5] =
- {
- [0] = "",
- [1] = ".data",
- [2] = ".strtab",
- [3] = ".symtab",
- [4] = ".shstrtab"
- };
-
-
-static unsigned int scntypes[5] =
- {
- [0] = SHT_NULL,
- [1] = SHT_PROGBITS,
- [2] = SHT_STRTAB,
- [3] = SHT_SYMTAB,
- [4] = SHT_STRTAB
- };
-
-
-int
-main (void)
-{
- AsmCtx_t *ctx;
- AsmScn_t *scn1;
- AsmScn_t *scn2;
- int result = 0;
- int fd;
- Elf *elf;
- GElf_Ehdr ehdr_mem;
- GElf_Ehdr *ehdr;
- size_t cnt;
-
- elf_version (EV_CURRENT);
-
- ctx = asm_begin (fname, false, EM_386, ELFCLASS32, ELFDATA2LSB);
- if (ctx == NULL)
- {
- printf ("cannot create assembler context: %s\n", asm_errmsg (-1));
- return 1;
- }
-
- /* Create two sections. */
- scn1 = asm_newscn (ctx, ".data", SHT_PROGBITS, SHF_ALLOC | SHF_WRITE);
- scn2 = asm_newsubscn (scn1, 1);
- if (scn1 == NULL || scn2 == NULL)
- {
- printf ("cannot create section in output file: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Special alignment for the .text section. */
- if (asm_align (scn1, 16) != 0)
- {
- printf ("cannot align .text section: %s\n", asm_errmsg (-1));
- result = 1;
- }
-
- /* Add a few strings with names. */
- if (asm_newsym (scn1, "one", 4, STT_OBJECT, STB_GLOBAL) == NULL)
- {
- printf ("cannot create first name: %s\n", asm_errmsg (-1));
- result = 1;
- }
- if (asm_addstrz (scn1, "one", 4) != 0)
- {
- printf ("cannot insert first string: %s\n", asm_errmsg (-1));
- result = 1;
- }
- if (asm_newsym (scn2, "three", 6, STT_OBJECT, STB_WEAK) == NULL)
- {
- printf ("cannot create second name: %s\n", asm_errmsg (-1));
- result = 1;
- }
- if (asm_addstrz (scn2, "three", 0) != 0)
- {
- printf ("cannot insert second string: %s\n", asm_errmsg (-1));
- result = 1;
- }
- if (asm_newsym (scn1, "two", 4, STT_OBJECT, STB_LOCAL) == NULL)
- {
- printf ("cannot create third name: %s\n", asm_errmsg (-1));
- result = 1;
- }
- if (asm_addstrz (scn1, "two", 4) != 0)
- {
- printf ("cannot insert third string: %s\n", asm_errmsg (-1));
- result = 1;
- }
-
- /* Create the output file. */
- if (asm_end (ctx) != 0)
- {
- printf ("cannot create output file: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Check the file. */
- fd = open (fname, O_RDONLY);
- if (fd == -1)
- {
- printf ("cannot open generated file: %m\n");
- result = 1;
- goto out;
- }
-
- elf = elf_begin (fd, ELF_C_READ, NULL);
- if (elf == NULL)
- {
- printf ("cannot create ELF descriptor: %s\n", elf_errmsg (-1));
- result = 1;
- goto out_close;
- }
- if (elf_kind (elf) != ELF_K_ELF)
- {
- puts ("not a valid ELF file");
- result = 1;
- goto out_close2;
- }
-
- ehdr = gelf_getehdr (elf, &ehdr_mem);
- if (ehdr == NULL)
- {
- printf ("cannot get ELF header: %s\n", elf_errmsg (-1));
- result = 1;
- goto out_close2;
- }
-
- for (cnt = 1; cnt < 5; ++cnt)
- {
- Elf_Scn *scn;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
-
- scn = elf_getscn (elf, cnt);
- if (scn == NULL)
- {
- printf ("cannot get section %Zd: %s\n", cnt, elf_errmsg (-1));
- result = 1;
- continue;
- }
-
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- {
- printf ("cannot get section header for section %Zd: %s\n",
- cnt, elf_errmsg (-1));
- result = 1;
- continue;
- }
-
- if (strcmp (elf_strptr (elf, ehdr->e_shstrndx, shdr->sh_name),
- scnnames[cnt]) != 0)
- {
- printf ("section %Zd's name differs: %s vs %s\n", cnt,
- elf_strptr (elf, ehdr->e_shstrndx, shdr->sh_name),
- scnnames[cnt]);
- result = 1;
- }
-
- if (shdr->sh_type != scntypes[cnt])
- {
- printf ("section %Zd's type differs\n", cnt);
- result = 1;
- }
-
- if ((cnt == 1 && shdr->sh_flags != (SHF_ALLOC | SHF_WRITE))
- || (cnt != 1 && shdr->sh_flags != 0))
- {
- printf ("section %Zd's flags differs\n", cnt);
- result = 1;
- }
-
- if (shdr->sh_addr != 0)
- {
- printf ("section %Zd's address differs\n", cnt);
- result = 1;
- }
-
- if (cnt == 3)
- {
- Elf_Data *data;
-
- if (shdr->sh_link != 2)
- {
- puts ("symbol table has incorrect link");
- result = 1;
- }
-
- data = elf_getdata (scn, NULL);
- if (data == NULL)
- {
- puts ("cannot get data of symbol table");
- result = 1;
- }
- else
- {
- size_t inner;
-
- for (inner = 1;
- inner < (shdr->sh_size
- / gelf_fsize (elf, ELF_T_SYM, 1, EV_CURRENT));
- ++inner)
- {
- GElf_Sym sym_mem;
- GElf_Sym *sym;
-
- sym = gelf_getsym (data, inner, &sym_mem);
- if (sym == NULL)
- {
- printf ("cannot get symbol %zu: %s\n",
- inner, elf_errmsg (-1));
- result = 1;
- }
- else
- {
- /* The order of the third and fourth entry depends
- on how the hash table is organized. */
- static const char *names[4] =
- {
- [0] = "",
- [1] = "two",
- [2] = "one",
- [3] = "three"
- };
- static const int info[4] =
- {
- [0] = GELF_ST_INFO (STB_LOCAL, STT_NOTYPE),
- [1] = GELF_ST_INFO (STB_LOCAL, STT_OBJECT),
- [2] = GELF_ST_INFO (STB_GLOBAL, STT_OBJECT),
- [3] = GELF_ST_INFO (STB_WEAK, STT_OBJECT)
- };
- static const unsigned value[4] =
- {
- [0] = 0,
- [1] = 4,
- [2] = 0,
- [3] = 8
- };
-
- if (strcmp (names[inner],
- elf_strptr (elf, shdr->sh_link,
- sym->st_name)) != 0)
- {
- printf ("symbol %zu has different name\n", inner);
- result = 1;
- }
-
- if (sym->st_value != value[inner])
- {
- printf ("symbol %zu has wrong value\n", inner);
- result = 1;
- }
-
- if (sym->st_other != 0)
- {
- printf ("symbol %zu has wrong other info\n", inner);
- result = 1;
- }
-
- if (sym->st_shndx != 1)
- {
- printf ("symbol %zu has wrong section reference\n",
- inner);
- result = 1;
- }
-
- if (sym->st_info != info[inner])
- {
- printf ("symbol %zu has wrong type or binding\n",
- inner);
- result = 1;
- }
-
- if ((inner != 3 && sym->st_size != 4)
- || (inner == 3 && sym->st_size != 6))
- {
- printf ("symbol %zu has wrong size\n", inner);
- result = 1;
- }
- }
- }
- }
- }
- }
-
- out_close2:
- elf_end (elf);
- out_close:
- close (fd);
- out:
- /* We don't need the file anymore. */
- unlink (fname);
-
- return result;
-}
diff --git a/tests/asm-tst4.c b/tests/asm-tst4.c
deleted file mode 100644
index 29d6485d..00000000
--- a/tests/asm-tst4.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright (C) 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <fcntl.h>
-#include <libasm.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static const char fname[] = "asm-tst4-out.o";
-
-
-int
-main (void)
-{
- AsmCtx_t *ctx;
- int result = 0;
- size_t cnt;
-
- elf_version (EV_CURRENT);
-
- ctx = asm_begin (fname, false, EM_386, ELFCLASS32, ELFDATA2LSB);
- if (ctx == NULL)
- {
- printf ("cannot create assembler context: %s\n", asm_errmsg (-1));
- return 1;
- }
-
- /* Create 66000 sections. */
- for (cnt = 0; cnt < 66000; ++cnt)
- {
- char buf[20];
- AsmScn_t *scn;
-
- /* Create a unique name. */
- snprintf (buf, sizeof (buf), ".data.%Zu", cnt);
-
- /* Create the section. */
- scn = asm_newscn (ctx, buf, SHT_PROGBITS, SHF_ALLOC | SHF_WRITE);
- if (scn == NULL)
- {
- printf ("cannot create section \"%s\" in output file: %s\n",
- buf, asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Add some content. */
- if (asm_adduint32 (scn, cnt) != 0)
- {
- printf ("cannot create content of section \"%s\": %s\n",
- buf, asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
- }
-
- /* Create the output file. */
- if (asm_end (ctx) != 0)
- {
- printf ("cannot create output file: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- if (result == 0)
- result = WEXITSTATUS (system ("\
-env LD_LIBRARY_PATH=../libelf ../src/elflint -q asm-tst4-out.o"));
-
- /* We don't need the file anymore. */
- unlink (fname);
-
- return result;
-}
diff --git a/tests/asm-tst5.c b/tests/asm-tst5.c
deleted file mode 100644
index 4f761aed..00000000
--- a/tests/asm-tst5.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright (C) 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <fcntl.h>
-#include <libasm.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-#include "system.h"
-
-
-static const char fname[] = "asm-tst5-out.o";
-
-
-int
-main (void)
-{
- AsmCtx_t *ctx;
- int result = 0;
- size_t cnt;
-
- elf_version (EV_CURRENT);
-
- ctx = asm_begin (fname, false, EM_386, ELFCLASS32, ELFDATA2LSB);
- if (ctx == NULL)
- {
- printf ("cannot create assembler context: %s\n", asm_errmsg (-1));
- return 1;
- }
-
- /* Create 66000 sections. */
- for (cnt = 0; cnt < 66000; ++cnt)
- {
- char buf[20];
- AsmScn_t *scn;
-
- /* Create a unique name. */
- snprintf (buf, sizeof (buf), ".data.%Zu", cnt);
-
- /* Create the section. */
- scn = asm_newscn (ctx, buf, SHT_PROGBITS, SHF_ALLOC | SHF_WRITE);
- if (scn == NULL)
- {
- printf ("cannot create section \"%s\" in output file: %s\n",
- buf, asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Add a name. */
- snprintf (buf, sizeof (buf), "%Zu", cnt);
- if (asm_newsym (scn, buf, sizeof (uint32_t), STT_OBJECT,
- STB_GLOBAL) == NULL)
- {
- printf ("cannot create symbol \"%s\": %s\n", buf, asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Add some content. */
- if (asm_adduint32 (scn, cnt) != 0)
- {
- printf ("cannot create content of section \"%s\": %s\n",
- buf, asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
- }
-
- /* Create the output file. */
- if (asm_end (ctx) != 0)
- {
- printf ("cannot create output file: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- if (result == 0)
- result = WEXITSTATUS (system ("\
-env LD_LIBRARY_PATH=../libelf ../src/elflint -q asm-tst5-out.o"));
-
- /* We don't need the file anymore. */
- unlink (fname);
-
- return result;
-}
diff --git a/tests/asm-tst6.c b/tests/asm-tst6.c
deleted file mode 100644
index ece69bc2..00000000
--- a/tests/asm-tst6.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Copyright (C) 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <libasm.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-#include <system.h>
-
-
-static const char fname[] = "asm-tst6-out.o";
-
-
-int
-main (void)
-{
- AsmCtx_t *ctx;
- int result = 0;
- size_t cnt;
-
- elf_version (EV_CURRENT);
-
- ctx = asm_begin (fname, false, EM_386, ELFCLASS32, ELFDATA2LSB);
- if (ctx == NULL)
- {
- printf ("cannot create assembler context: %s\n", asm_errmsg (-1));
- return 1;
- }
-
- for (cnt = 0; cnt < 22000; ++cnt)
- {
- char buf[512];
- AsmScnGrp_t *grp;
- AsmScn_t *scn;
- AsmSym_t *sym;
-
- snprintf (buf, sizeof (buf), ".grp%Zu", cnt);
- grp = asm_newscngrp (ctx, buf, NULL, 0);
- if (grp == NULL)
- {
- printf ("cannot section group %Zu: %s\n", cnt, asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- scn = asm_newscn_ingrp (ctx, ".data", SHT_PROGBITS,
- SHF_ALLOC | SHF_WRITE, grp);
- if (scn == NULL)
- {
- printf ("cannot data section for group %Zu: %s\n",
- cnt, asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Add a name. */
- snprintf (buf, sizeof (buf), "%Zu", cnt);
- sym = asm_newsym (scn, buf, sizeof (uint32_t), STT_OBJECT,
- STB_GLOBAL);
- if (sym == NULL)
- {
- printf ("cannot create symbol \"%s\": %s\n", buf, asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Add some content. */
- if (asm_adduint32 (scn, cnt) != 0)
- {
- printf ("cannot create content of section \"%s\": %s\n",
- buf, asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Now we have a symbol, use it as the signature. */
- if (asm_scngrp_newsignature (grp, sym) != 0)
- {
- printf ("cannot set signature for section group %Zu: %s\n",
- cnt, asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Create a phony debug info section. */
- scn = asm_newscn_ingrp (ctx, ".stab", SHT_PROGBITS, 0, grp);
- if (scn == NULL)
- {
- printf ("cannot stab section for group %Zu: %s\n",
- cnt, asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Add some content. */
- if (asm_adduint32 (scn, cnt) != 0)
- {
- printf ("cannot create content of section \"%s\": %s\n",
- buf, asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
- }
-
- /* Create the output file. */
- if (asm_end (ctx) != 0)
- {
- printf ("cannot create output file: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- if (result == 0)
- result = WEXITSTATUS (system ("\
-env LD_LIBRARY_PATH=../libelf ../src/elflint -q asm-tst6-out.o"));
-
- /* We don't need the file anymore. */
- unlink (fname);
-
- return result;
-}
diff --git a/tests/asm-tst7.c b/tests/asm-tst7.c
deleted file mode 100644
index ebd45594..00000000
--- a/tests/asm-tst7.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/* Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <fcntl.h>
-#include <inttypes.h>
-#include <libasm.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static const char fname[] = "asm-tst7-out.o";
-
-
-int
-main (void)
-{
- int result = 0;
- size_t cnt;
- AsmCtx_t *ctx;
- Elf *elf;
- int fd;
-
- elf_version (EV_CURRENT);
-
- ctx = asm_begin (fname, false, EM_386, ELFCLASS32, ELFDATA2LSB);
- if (ctx == NULL)
- {
- printf ("cannot create assembler context: %s\n", asm_errmsg (-1));
- return 1;
- }
-
- if (asm_newcomsym (ctx, "commsym", 4, 16) == NULL)
- {
- printf ("cannot create common symbol: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Create the output file. */
- if (asm_end (ctx) != 0)
- {
- printf ("cannot create output file: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Check the file. */
- fd = open (fname, O_RDONLY);
- if (fd == -1)
- {
- printf ("cannot open generated file: %m\n");
- result = 1;
- goto out;
- }
-
- elf = elf_begin (fd, ELF_C_READ, NULL);
- if (elf == NULL)
- {
- printf ("cannot create ELF descriptor: %s\n", elf_errmsg (-1));
- result = 1;
- goto out_close;
- }
- if (elf_kind (elf) != ELF_K_ELF)
- {
- puts ("not a valid ELF file");
- result = 1;
- goto out_close2;
- }
-
- for (cnt = 1; 1; ++cnt)
- {
- Elf_Scn *scn;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
-
- scn = elf_getscn (elf, cnt);
- if (scn == NULL)
- {
- printf ("cannot get section %Zd: %s\n", cnt, elf_errmsg (-1));
- result = 1;
- continue;
- }
-
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- {
- printf ("cannot get section header for section %Zd: %s\n",
- cnt, elf_errmsg (-1));
- result = 1;
- continue;
- }
- /* We are looking for the symbol table. */
- if (shdr->sh_type != SHT_SYMTAB)
- continue;
-
- for (cnt = 1; cnt< (shdr->sh_size
- / gelf_fsize (elf, ELF_T_SYM, 1, EV_CURRENT));
- ++cnt)
- {
- GElf_Sym sym_mem;
- GElf_Sym *sym;
-
- if (cnt > 1)
- {
- puts ("too many symbol");
- result = 1;
- break;
- }
-
- sym = gelf_getsym (elf_getdata (scn, NULL), cnt, &sym_mem);
- if (sym == NULL)
- {
- printf ("cannot get symbol %zu: %s\n", cnt, elf_errmsg (-1));
- result = 1;
- }
- else
- {
- if (sym->st_shndx != SHN_COMMON)
- {
- printf ("expected common symbol, got section %u\n",
- (unsigned int) sym->st_shndx);
- result = 1;
- }
-
- if (sym->st_value != 16)
- {
- printf ("requested alignment 16, is %" PRIuMAX "\n",
- (uintmax_t) sym->st_value);
- result = 1;
- }
-
- if (sym->st_size != 4)
- {
- printf ("requested size 4, is %" PRIuMAX "\n",
- (uintmax_t) sym->st_value);
- result = 1;
- }
- }
- }
-
- break;
- }
-
- out_close2:
- elf_end (elf);
- out_close:
- close (fd);
- out:
- /* We don't need the file anymore. */
- unlink (fname);
-
- return result;
-}
diff --git a/tests/asm-tst8.c b/tests/asm-tst8.c
deleted file mode 100644
index 6ce7c9c0..00000000
--- a/tests/asm-tst8.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <fcntl.h>
-#include <inttypes.h>
-#include <libasm.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static const char fname[] = "asm-tst8-out.o";
-
-
-int
-main (void)
-{
- int result = 0;
- size_t cnt;
- AsmCtx_t *ctx;
- Elf *elf;
- int fd;
-
- elf_version (EV_CURRENT);
-
- ctx = asm_begin (fname, false, EM_386, ELFCLASS32, ELFDATA2LSB);
- if (ctx == NULL)
- {
- printf ("cannot create assembler context: %s\n", asm_errmsg (-1));
- return 1;
- }
-
- if (asm_newabssym (ctx, "tst8-out.s", 4, 0xfeedbeef, STT_FILE, STB_LOCAL)
- == NULL)
- {
- printf ("cannot create absolute symbol: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Create the output file. */
- if (asm_end (ctx) != 0)
- {
- printf ("cannot create output file: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Check the file. */
- fd = open (fname, O_RDONLY);
- if (fd == -1)
- {
- printf ("cannot open generated file: %m\n");
- result = 1;
- goto out;
- }
-
- elf = elf_begin (fd, ELF_C_READ, NULL);
- if (elf == NULL)
- {
- printf ("cannot create ELF descriptor: %s\n", elf_errmsg (-1));
- result = 1;
- goto out_close;
- }
- if (elf_kind (elf) != ELF_K_ELF)
- {
- puts ("not a valid ELF file");
- result = 1;
- goto out_close2;
- }
-
- for (cnt = 1; 1; ++cnt)
- {
- Elf_Scn *scn;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
-
- scn = elf_getscn (elf, cnt);
- if (scn == NULL)
- {
- printf ("cannot get section %Zd: %s\n", cnt, elf_errmsg (-1));
- result = 1;
- continue;
- }
-
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- {
- printf ("cannot get section header for section %Zd: %s\n",
- cnt, elf_errmsg (-1));
- result = 1;
- continue;
- }
- /* We are looking for the symbol table. */
- if (shdr->sh_type != SHT_SYMTAB)
- continue;
-
- for (cnt = 1; cnt< (shdr->sh_size
- / gelf_fsize (elf, ELF_T_SYM, 1, EV_CURRENT));
- ++cnt)
- {
- GElf_Sym sym_mem;
- GElf_Sym *sym;
-
- if (cnt > 1)
- {
- puts ("too many symbol");
- result = 1;
- break;
- }
-
- sym = gelf_getsym (elf_getdata (scn, NULL), cnt, &sym_mem);
- if (sym == NULL)
- {
- printf ("cannot get symbol %zu: %s\n", cnt, elf_errmsg (-1));
- result = 1;
- }
- else
- {
- if (sym->st_shndx != SHN_ABS)
- {
- printf ("expected common symbol, got section %u\n",
- (unsigned int) sym->st_shndx);
- result = 1;
- }
-
- if (sym->st_value != 0xfeedbeef)
- {
- printf ("requested value 0xfeedbeef, is %#" PRIxMAX "\n",
- (uintmax_t) sym->st_value);
- result = 1;
- }
-
- if (sym->st_size != 4)
- {
- printf ("requested size 4, is %" PRIuMAX "\n",
- (uintmax_t) sym->st_value);
- result = 1;
- }
-
- if (GELF_ST_TYPE (sym->st_info) != STT_FILE)
- {
- printf ("requested type FILE, is %u\n",
- (unsigned int) GELF_ST_TYPE (sym->st_info));
- result = 1;
- }
- }
- }
-
- break;
- }
-
- out_close2:
- elf_end (elf);
- out_close:
- close (fd);
- out:
- /* We don't need the file anymore. */
- unlink (fname);
-
- return result;
-}
diff --git a/tests/asm-tst9.c b/tests/asm-tst9.c
deleted file mode 100644
index 28bb4787..00000000
--- a/tests/asm-tst9.c
+++ /dev/null
@@ -1,318 +0,0 @@
-/* Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <fcntl.h>
-#include <inttypes.h>
-#include <libasm.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static const char fname[] = "asm-tst9-out.o";
-
-
-static int32_t input[] =
- {
- 0, 1, 129, 510, 2000, 33000, 0x7ffffff, 0x7fffffff
- };
-#define ninput (sizeof (input) / sizeof (input[0]))
-
-
-static const GElf_Ehdr expected_ehdr =
- {
- .e_ident = { [EI_MAG0] = ELFMAG0,
- [EI_MAG1] = ELFMAG1,
- [EI_MAG2] = ELFMAG2,
- [EI_MAG3] = ELFMAG3,
- [EI_CLASS] = ELFCLASS32,
- [EI_DATA] = ELFDATA2LSB,
- [EI_VERSION] = EV_CURRENT },
- .e_type = ET_REL,
- .e_machine = EM_386,
- .e_version = EV_CURRENT,
- .e_shoff = 180,
- .e_ehsize = sizeof (Elf32_Ehdr),
- .e_shentsize = sizeof (Elf32_Shdr),
- .e_shnum = 3,
- .e_shstrndx = 2
- };
-
-
-static const char *scnnames[3] =
- {
- [0] = "",
- [1] = ".data",
- [2] = ".shstrtab"
- };
-
-
-static const char expecteddata[] =
- {
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x7f,
- 0x81, 0x01, 0x81, 0x01, 0xff, 0xfe, 0xff, 0xff, 0x0f, 0xff, 0x7e, 0xfe,
- 0x03, 0xfe, 0x03, 0x82, 0xfc, 0xff, 0xff, 0x0f, 0x82, 0x7c, 0xd0, 0x0f,
- 0xd0, 0x0f, 0xb0, 0xf0, 0xff, 0xff, 0x0f, 0xb0, 0x70, 0xe8, 0x81, 0x02,
- 0xe8, 0x81, 0x02, 0x98, 0xfe, 0xfd, 0xff, 0x0f, 0x98, 0xfe, 0x7d, 0xff,
- 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0x3f, 0x81, 0x80, 0x80, 0xc0, 0x0f,
- 0x81, 0x80, 0x80, 0x40, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff,
- 0xff, 0x07, 0x81, 0x80, 0x80, 0x80, 0x08, 0x81, 0x80, 0x80, 0x80, 0x78
- };
-
-
-int
-main (void)
-{
- AsmCtx_t *ctx;
- AsmScn_t *scn;
- int result = 0;
- int fd;
- Elf *elf;
- GElf_Ehdr ehdr_mem;
- GElf_Ehdr *ehdr;
- size_t cnt;
-
- elf_version (EV_CURRENT);
-
- ctx = asm_begin (fname, false, EM_386, ELFCLASS32, ELFDATA2LSB);
- if (ctx == NULL)
- {
- printf ("cannot create assembler context: %s\n", asm_errmsg (-1));
- return 1;
- }
-
- /* Create two sections. */
- scn = asm_newscn (ctx, ".data", SHT_PROGBITS, SHF_ALLOC | SHF_WRITE);
- if (scn == NULL)
- {
- printf ("cannot create section in output file: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Special alignment for the .text section. */
- if (asm_align (scn, 16) != 0)
- {
- printf ("cannot align .text section: %s\n", asm_errmsg (-1));
- result = 1;
- }
-
- /* Add a few ULEB128 and SLEB128 numbers. */
- for (cnt = 0; cnt < ninput; ++cnt)
- {
- if (asm_adduleb128 (scn, input[cnt]) != 0)
- {
- printf ("cannot insert uleb %" PRIu32 ": %s\n",
- (uint32_t) input[cnt], asm_errmsg (-1));
- result = 1;
- }
-
- if (asm_addsleb128 (scn, input[cnt]) != 0)
- {
- printf ("cannot insert sleb %" PRId32 ": %s\n",
- input[cnt], asm_errmsg (-1));
- result = 1;
- }
-
- if (asm_adduleb128 (scn, -input[cnt]) != 0)
- {
- printf ("cannot insert uleb %" PRIu32 ": %s\n",
- (uint32_t) -input[cnt], asm_errmsg (-1));
- result = 1;
- }
-
- if (asm_addsleb128 (scn, -input[cnt]) != 0)
- {
- printf ("cannot insert sleb %" PRId32 ": %s\n",
- -input[cnt], asm_errmsg (-1));
- result = 1;
- }
- }
-
- /* Create the output file. */
- if (asm_end (ctx) != 0)
- {
- printf ("cannot create output file: %s\n", asm_errmsg (-1));
- asm_abort (ctx);
- return 1;
- }
-
- /* Check the file. */
- fd = open (fname, O_RDONLY);
- if (fd == -1)
- {
- printf ("cannot open generated file: %m\n");
- result = 1;
- goto out;
- }
-
- elf = elf_begin (fd, ELF_C_READ, NULL);
- if (elf == NULL)
- {
- printf ("cannot create ELF descriptor: %s\n", elf_errmsg (-1));
- result = 1;
- goto out_close;
- }
- if (elf_kind (elf) != ELF_K_ELF)
- {
- puts ("not a valid ELF file");
- result = 1;
- goto out_close2;
- }
-
- ehdr = gelf_getehdr (elf, &ehdr_mem);
- if (ehdr == NULL)
- {
- printf ("cannot get ELF header: %s\n", elf_errmsg (-1));
- result = 1;
- goto out_close2;
- }
-
- if (memcmp (ehdr, &expected_ehdr, sizeof (GElf_Ehdr)) != 0)
- {
- puts ("ELF header does not match");
- result = 1;
- goto out_close2;
- }
-
- for (cnt = 1; cnt < 3; ++cnt)
- {
- Elf_Scn *scn;
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr;
-
- scn = elf_getscn (elf, cnt);
- if (scn == NULL)
- {
- printf ("cannot get section %Zd: %s\n", cnt, elf_errmsg (-1));
- result = 1;
- continue;
- }
-
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr == NULL)
- {
- printf ("cannot get section header for section %Zd: %s\n",
- cnt, elf_errmsg (-1));
- result = 1;
- continue;
- }
-
- if (strcmp (elf_strptr (elf, ehdr->e_shstrndx, shdr->sh_name),
- scnnames[cnt]) != 0)
- {
- printf ("section %Zd's name differs: %s vs %s\n", cnt,
- elf_strptr (elf, ehdr->e_shstrndx, shdr->sh_name),
- scnnames[cnt]);
- result = 1;
- }
-
- if (shdr->sh_type != (cnt == 2 ? SHT_STRTAB : SHT_PROGBITS))
- {
- printf ("section %Zd's type differs\n", cnt);
- result = 1;
- }
-
- if ((cnt == 1 && shdr->sh_flags != (SHF_ALLOC | SHF_WRITE))
- || (cnt == 2 && shdr->sh_flags != 0))
- {
- printf ("section %Zd's flags differs\n", cnt);
- result = 1;
- }
-
- if (shdr->sh_addr != 0)
- {
- printf ("section %Zd's address differs\n", cnt);
- result = 1;
- }
-
- if ((cnt == 1 && shdr->sh_offset != ((sizeof (Elf32_Ehdr) + 15) & ~15))
- || (cnt == 2
- && shdr->sh_offset != (((sizeof (Elf32_Ehdr) + 15) & ~15)
- + sizeof (expecteddata))))
- {
- printf ("section %Zd's offset differs\n", cnt);
- result = 1;
- }
-
- if ((cnt == 1 && shdr->sh_size != sizeof (expecteddata))
- || (cnt == 2 && shdr->sh_size != 17))
- {
- printf ("section %Zd's size differs\n", cnt);
- result = 1;
- }
-
- if (shdr->sh_link != 0)
- {
- printf ("section %Zd's link differs\n", cnt);
- result = 1;
- }
-
- if (shdr->sh_info != 0)
- {
- printf ("section %Zd's info differs\n", cnt);
- result = 1;
- }
-
- if ((cnt == 1 && shdr->sh_addralign != 16)
- || (cnt != 1 && shdr->sh_addralign != 1))
- {
- printf ("section %Zd's addralign differs\n", cnt);
- result = 1;
- }
-
- if (shdr->sh_entsize != 0)
- {
- printf ("section %Zd's entsize differs\n", cnt);
- result = 1;
- }
-
- if (cnt == 1)
- {
- Elf_Data *data = elf_getdata (scn, NULL);
-
- if (data == NULL)
- {
- printf ("cannot get data of section %Zd\n", cnt);
- result = 1;
- }
- else
- {
- if (data->d_size != sizeof (expecteddata))
- {
- printf ("data block size of section %Zd wrong: got %Zd, "
- "expected 96\n", cnt, data->d_size);
- result = 1;
- }
-
- if (memcmp (data->d_buf, expecteddata, sizeof (expecteddata))
- != 0)
- {
- printf ("data block content of section %Zd wrong\n", cnt);
- result = 1;
- }
- }
- }
- }
-
- out_close2:
- elf_end (elf);
- out_close:
- close (fd);
- out:
- /* We don't need the file anymore. */
- unlink (fname);
-
- return result;
-}
diff --git a/tests/ecp.c b/tests/ecp.c
deleted file mode 100644
index 15bc71cc..00000000
--- a/tests/ecp.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <errno.h>
-#include <error.h>
-#include <fcntl.h>
-#include <gelf.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-int
-main (int argc, char *argv[])
-{
- if (argc < 3)
- error (EXIT_FAILURE, 0, "usage: %s FROMNAME TONAME", argv[0]);
-
- elf_version (EV_CURRENT);
-
- int infd = open (argv[1], O_RDONLY);
- if (infd == -1)
- error (EXIT_FAILURE, errno, "cannot open input file '%s'", argv[1]);
-
- Elf *inelf = elf_begin (infd, ELF_C_READ, NULL);
- if (inelf == NULL)
- error (EXIT_FAILURE, 0, "problems opening '%s' as ELF file: %s",
- argv[1], elf_errmsg (-1));
-
- int outfd = creat (argv[2], 0666);
- if (outfd == -1)
- error (EXIT_FAILURE, errno, "cannot open output file '%s'", argv[2]);
-
- Elf *outelf = elf_begin (outfd, ELF_C_WRITE, NULL);
- if (outelf == NULL)
- error (EXIT_FAILURE, 0, "problems opening '%s' as ELF file: %s",
- argv[2], elf_errmsg (-1));
-
- gelf_newehdr (outelf, gelf_getclass (inelf));
-
- GElf_Ehdr ehdr_mem;
- GElf_Ehdr *ehdr;
- gelf_update_ehdr (outelf, (ehdr = gelf_getehdr (inelf, &ehdr_mem)));
-
- if (ehdr->e_phnum > 0)
- {
- int cnt;
-
- if (gelf_newphdr (outelf, ehdr->e_phnum) == 0)
- error (EXIT_FAILURE, 0, "cannot create program header: %s",
- elf_errmsg (-1));
-
- for (cnt = 0; cnt < ehdr->e_phnum; ++cnt)
- {
- GElf_Phdr phdr_mem;
-
- gelf_update_phdr (outelf, cnt, gelf_getphdr (inelf, cnt, &phdr_mem));
- }
- }
-
- Elf_Scn *scn = NULL;
- while ((scn = elf_nextscn (inelf, scn)) != NULL)
- {
- Elf_Scn *newscn = elf_newscn (outelf);
-
- GElf_Shdr shdr_mem;
- gelf_update_shdr (newscn, gelf_getshdr (scn, &shdr_mem));
-
- *elf_newdata (newscn) = *elf_getdata (scn, NULL);
- }
-
- elf_flagelf (outelf, ELF_C_SET, ELF_F_LAYOUT);
-
- if (elf_update (outelf, ELF_C_WRITE) == -1)
- error (EXIT_FAILURE, 0, "elf_update failed: %s", elf_errmsg (-1));
-
- close (outfd);
-
- return 0;
-}
diff --git a/tests/get-aranges.c b/tests/get-aranges.c
deleted file mode 100644
index 1be76b2d..00000000
--- a/tests/get-aranges.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Copyright (C) 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <fcntl.h>
-#include <libelf.h>
-#include <libdw.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static const Dwarf_Addr testaddr[] =
-{
- 0x804842b, 0x804842c, 0x804843c, 0x8048459, 0x804845a,
- 0x804845b, 0x804845c, 0x8048460, 0x8048465, 0x8048466,
- 0x8048467, 0x8048468, 0x8048470, 0x8048471, 0x8048472
-};
-#define ntestaddr (sizeof (testaddr) / sizeof (testaddr[0]))
-
-
-int
-main (int argc, char *argv[])
-{
- int result = 0;
- int cnt;
-
- for (cnt = 1; cnt < argc; ++cnt)
- {
- int fd = open (argv[cnt], O_RDONLY);
-
- Dwarf *dbg = dwarf_begin (fd, DWARF_C_READ);
- if (dbg == NULL)
- {
- printf ("%s not usable\n", argv[cnt]);
- result = 1;
- close (fd);
- continue;
- }
-
- Dwarf_Aranges *aranges;
- size_t naranges;
- if (dwarf_getaranges (dbg, &aranges, &naranges) != 0)
- printf ("%s: cannot get aranges\n", argv[cnt]);
- else
- {
- for (size_t i = 0; i < ntestaddr; ++i)
- {
- Dwarf_Arange *found;
-
- found = dwarf_getarange_addr (aranges, testaddr[i]);
- if (found != NULL)
- {
- Dwarf_Off cu_offset;
-
- if (dwarf_getarangeinfo (found, NULL, NULL, &cu_offset) != 0)
- {
- puts ("failed to get CU die offset");
- result = 1;
- }
- else
- {
- const char *cuname;
- Dwarf_Die cu_die;
-
- if (dwarf_offdie (dbg, cu_offset, &cu_die) == NULL
- || (cuname = dwarf_diename (&cu_die)) == NULL)
- {
- puts ("failed to get CU die");
- result = 1;
- }
- else
- printf ("CU name: \"%s\"\n", cuname);
- }
- }
- else
- printf ("%#llx: not in range\n",
- (unsigned long long int) testaddr[i]);
- }
-
- for (size_t i = 0; i < naranges; ++i)
- {
- Dwarf_Arange *arange = dwarf_onearange (aranges, i);
- if (arange == NULL)
- {
- printf ("cannot get arange %zu: %s\n", i, dwarf_errmsg (-1));
- break;
- }
-
- Dwarf_Addr start;
- Dwarf_Word length;
- Dwarf_Off cu_offset;
-
- if (dwarf_getarangeinfo (arange, &start, &length, &cu_offset)
- != 0)
- {
- printf ("cannot get info from aranges[%zu]\n", i);
- result = 1;
- }
- else
- {
- printf (" [%2zu] start: %#llx, length: %llu, cu: %llu\n",
- i, (unsigned long long int) start,
- (unsigned long long int) length,
- (unsigned long long int) cu_offset);
-
- const char *cuname;
- Dwarf_Die cu_die;
- if (dwarf_offdie (dbg, cu_offset, &cu_die) == NULL
- || (cuname = dwarf_diename (&cu_die)) == NULL)
- {
- puts ("failed to get CU die");
- result = 1;
- }
- else
- printf ("CU name: \"%s\"\n", cuname);
- }
- }
- }
-
- dwarf_end (dbg);
- close (fd);
- }
-
- return result;
-}
diff --git a/tests/get-files.c b/tests/get-files.c
deleted file mode 100644
index 537d1eac..00000000
--- a/tests/get-files.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright (C) 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <fcntl.h>
-#include <libelf.h>
-#include <libdw.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-int
-main (int argc, char *argv[])
-{
- int result = 0;
- int cnt;
-
- for (cnt = 1; cnt < argc; ++cnt)
- {
- int fd = open (argv[cnt], O_RDONLY);
-
- Dwarf *dbg = dwarf_begin (fd, DWARF_C_READ);
- if (dbg == NULL)
- {
- printf ("%s not usable\n", argv[cnt]);
- result = 1;
- if (fd != -1)
- close (fd);
- continue;
- }
-
- Dwarf_Off o = 0;
- Dwarf_Off ncu;
- Dwarf_Off ao;
- size_t cuhl;
- uint8_t asz;
- uint8_t osz;
- while (dwarf_nextcu (dbg, o, &ncu, &cuhl, &ao, &asz, &osz) == 0)
- {
- printf ("cuhl = %zu, o = %llu, asz = %hhu, osz = %hhu, ncu = %llu\n",
- cuhl, (unsigned long long int) ao,
- asz, osz, (unsigned long long int) ncu);
-
- Dwarf_Die die_mem;
- Dwarf_Die *die = dwarf_offdie (dbg, o + cuhl, &die_mem);
- if (die == NULL)
- {
- printf ("%s: cannot get CU die\n", argv[cnt]);
- result = 1;
- break;
- }
-
- Dwarf_Files *files;
- size_t nfiles;
- if (dwarf_getsrcfiles (die, &files, &nfiles) != 0)
- {
- printf ("%s: cannot get files\n", argv[cnt]);
- result = 1;
- break;
- }
-
- for (int i = 0; i < nfiles; ++i)
- printf (" file[%d] = \"%s\"\n", i,
- dwarf_filesrc (files, i, NULL, NULL));
-
- o = ncu;
- }
-
- dwarf_end (dbg);
- close (fd);
- }
-
- return result;
-}
diff --git a/tests/get-lines.c b/tests/get-lines.c
deleted file mode 100644
index 6a8c0764..00000000
--- a/tests/get-lines.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Copyright (C) 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <fcntl.h>
-#include <inttypes.h>
-#include <libelf.h>
-#include <libdw.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-int
-main (int argc, char *argv[])
-{
- int result = 0;
- int cnt;
-
- for (cnt = 1; cnt < argc; ++cnt)
- {
- int fd = open (argv[cnt], O_RDONLY);
-
- Dwarf *dbg = dwarf_begin (fd, DWARF_C_READ);
- if (dbg == NULL)
- {
- printf ("%s not usable: %s\n", argv[cnt], dwarf_errmsg (-1));
- close (fd);
- continue;
- }
-
- Dwarf_Off cuoff = 0;
- Dwarf_Off old_cuoff = 0;
- size_t hsize;
- Dwarf_Off ao;
- uint8_t asz;
- uint8_t osz;
- while (dwarf_nextcu (dbg, cuoff, &cuoff, &hsize, &ao, &asz, &osz) == 0)
- {
- printf ("cuhl = %zu, o = %llu, asz = %hhu, osz = %hhu, ncu = %llu\n",
- hsize, (unsigned long long int) ao,
- asz, osz, (unsigned long long int) cuoff);
-
- /* Get the DIE for the CU. */
- Dwarf_Die die;
- if (dwarf_offdie (dbg, old_cuoff + hsize, &die) == NULL)
- {
- /* Something went wrong. */
- printf ("%s: cannot get CU die\n", argv[cnt]);
- result = 1;
- break;
- }
- old_cuoff = cuoff;
-
- Dwarf_Lines *lb;
- size_t nlb;
- if (dwarf_getsrclines (&die, &lb, &nlb) != 0)
- {
- printf ("%s: cannot get lines\n", argv[cnt]);
- result = 1;
- break;
- }
-
- printf (" %zu lines\n", nlb);
-
- for (size_t i = 0; i < nlb; ++i)
- {
- Dwarf_Line *l = dwarf_onesrcline (lb, i);
- if (l == NULL)
- {
- printf ("%s: cannot get individual line\n", argv[cnt]);
- result = 1;
- break;
- }
-
- Dwarf_Addr addr;
- if (dwarf_lineaddr (l, &addr) != 0)
- addr = 0;
- const char *file = dwarf_linesrc (l, NULL, NULL);
- int line;
- if (dwarf_lineno (l, &line) != 0)
- line = 0;
-
- printf ("%" PRIx64 ": %s:%d:", (uint64_t) addr,
- file ?: "???", line);
-
- int column;
- if (dwarf_linecol (l, &column) != 0)
- column = 0;
- if (column >= 0)
- printf ("%d:", column);
-
- bool is_stmt;
- if (dwarf_linebeginstatement (l, &is_stmt) != 0)
- is_stmt = false;
- bool end_sequence;
- if (dwarf_lineendsequence (l, &end_sequence) != 0)
- end_sequence = false;
- bool basic_block;
- if (dwarf_lineblock (l, &basic_block) != 0)
- basic_block = false;
- bool prologue_end;
- if (dwarf_lineprologueend (l, &prologue_end) != 0)
- prologue_end = false;
- bool epilogue_begin;
- if (dwarf_lineepiloguebegin (l, &epilogue_begin) != 0)
- epilogue_begin = false;
-
- printf (" is_stmt:%s, end_seq:%s, bb:%s, prologue:%s, epilogue:%s\n",
- is_stmt ? "yes" : "no", end_sequence ? "yes" : "no",
- basic_block ? "yes" : "no", prologue_end ? "yes" : "no",
- epilogue_begin ? "yes" : "no");
- }
- }
-
- dwarf_end (dbg);
- close (fd);
- }
-
- return result;
-}
diff --git a/tests/get-pubnames.c b/tests/get-pubnames.c
deleted file mode 100644
index 3523f72f..00000000
--- a/tests/get-pubnames.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <fcntl.h>
-#include <libelf.h>
-#include <libdw.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static int globcnt;
-
-static int
-callback (Dwarf *dbg, Dwarf_Global *gl, void *arg)
-{
- int result = DWARF_CB_OK;
-
- printf (" [%2d] \"%s\", die: %llu, cu: %llu\n",
- globcnt++, gl->name, (unsigned long long int) gl->die_offset,
- (unsigned long long int) gl->cu_offset);
-
- Dwarf_Die cu_die;
- const char *cuname;
- if (dwarf_offdie (dbg, gl->cu_offset, &cu_die) == NULL
- || (cuname = dwarf_diename (&cu_die)) == NULL)
- {
- puts ("failed to get CU die");
- result = DWARF_CB_ABORT;
- }
- else
- printf ("CU name: \"%s\"\n", cuname);
-
- const char *diename;
- Dwarf_Die die;
- if (dwarf_offdie (dbg, gl->die_offset, &die) == NULL
- || (diename = dwarf_diename (&die)) == NULL)
- {
- puts ("failed to get object die");
- result = DWARF_CB_ABORT;
- }
- else
- printf ("object name: \"%s\"\n", diename);
-
- return result;
-}
-
-
-int
-main (int argc, char *argv[])
-{
- int result = 0;
- int cnt;
-
- for (cnt = 1; cnt < argc; ++cnt)
- {
- int fd = open (argv[cnt], O_RDONLY);
- Dwarf *dbg = dwarf_begin (fd, DWARF_C_READ);
- if (dbg == NULL)
- {
- printf ("%s not usable: %s\n", argv[cnt], dwarf_errmsg (-1));
- result = 1;
- close (fd);
- continue;
- }
-
- globcnt = 0;
-
- if (dwarf_getpubnames (dbg, callback, NULL, 0) != 0)
- {
- printf ("dwarf_get_pubnames didn't return zero: %s\n",
- dwarf_errmsg (-1));
- result = 1;
- }
-
- dwarf_end (dbg);
- close (fd);
- }
-
- return result;
-}
diff --git a/tests/hash.c b/tests/hash.c
deleted file mode 100644
index afe853bb..00000000
--- a/tests/hash.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <libelf.h>
-#include <stdio.h>
-
-
-static int
-check (const char *name, unsigned long int expected)
-{
- unsigned long int actual = elf_hash (name);
-
- return actual != expected;
-}
-
-
-int
-main (void)
-{
- int status;
-
- /* Check some names. We know what the expected result is. */
- status = check ("_DYNAMIC", 165832675);
- status |= check ("_GLOBAL_OFFSET_TABLE_", 102264335);
-
- return status;
-}
diff --git a/tests/msg_tst.c b/tests/msg_tst.c
deleted file mode 100644
index 67e63c0e..00000000
--- a/tests/msg_tst.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Copyright (C) 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <config.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <libelfP.h>
-
-static struct
-{
- int id;
- const char *expected;
-} libelf_msgs[ELF_E_NUM] =
- {
- { ELF_E_NOERROR, "no error" },
- { ELF_E_UNKNOWN_ERROR, "unknown error" },
- { ELF_E_UNKNOWN_VERSION, "unknown version" },
- { ELF_E_UNKNOWN_TYPE, "unknown type" },
- { ELF_E_INVALID_HANDLE, "invalid `Elf' handle" },
- { ELF_E_SOURCE_SIZE, "invalid size of source operand" },
- { ELF_E_DEST_SIZE, "invalid size of destination operand" },
- { ELF_E_INVALID_ENCODING, "invalid encoding" },
- { ELF_E_NOMEM, "out of memory" },
- { ELF_E_INVALID_FILE, "invalid file descriptor" },
- { ELF_E_INVALID_OP, "invalid operation" },
- { ELF_E_NO_VERSION, "ELF version not set" },
- { ELF_E_INVALID_CMD, "invalid command" },
- { ELF_E_RANGE, "offset out of range" },
- { ELF_E_ARCHIVE_FMAG, "invalid fmag field in archive header" },
- { ELF_E_INVALID_ARCHIVE, "invalid archive file" },
- { ELF_E_NO_ARCHIVE, "descriptor is not for an archive" },
- { ELF_E_NO_INDEX, "no index available" },
- { ELF_E_READ_ERROR, "cannot read data from file" },
- { ELF_E_WRITE_ERROR, "cannot write data to file" },
- { ELF_E_INVALID_CLASS, "invalid binary class" },
- { ELF_E_INVALID_INDEX, "invalid section index" },
- { ELF_E_INVALID_OPERAND, "invalid operand" },
- { ELF_E_INVALID_SECTION, "invalid section" },
- { ELF_E_INVALID_COMMAND, "invalid command" },
- { ELF_E_WRONG_ORDER_EHDR, "executable header not created first" },
- { ELF_E_FD_DISABLED, "file descriptor disabled" },
- { ELF_E_FD_MISMATCH, "archive/member fildes mismatch" },
- { ELF_E_OFFSET_RANGE, "offset out of range" },
- { ELF_E_NOT_NUL_SECTION, "cannot manipulate null section" },
- { ELF_E_DATA_MISMATCH, "data/scn mismatch" },
- { ELF_E_INVALID_SECTION_HEADER, "invalid section header" },
- { ELF_E_INVALID_DATA, "invalid data" },
- { ELF_E_DATA_ENCODING, "unknown data encoding" },
- { ELF_E_SECTION_TOO_SMALL, "section `sh_size' too small for data" },
- { ELF_E_INVALID_ALIGN, "invalid section alignment" },
- { ELF_E_INVALID_SHENTSIZE, "invalid section entry size" },
- { ELF_E_UPDATE_RO, "update() for write on read-only file" },
- { ELF_E_NOFILE, "no such file" },
- { ELF_E_GROUP_NOT_REL,
- "only relocatable files can contain section groups" },
- { ELF_E_INVALID_PHDR,
- "program header only allowed in executables and shared objects" },
- { ELF_E_NO_PHDR,
- "file has no program header" }
- };
-
-
-int
-main (void)
-{
- size_t cnt;
- int result = EXIT_SUCCESS;
-
- /* Clear the error state. */
- (void) elf_errno ();
-
- /* Check all the messages of libelf. */
- for (cnt = 1; cnt < ELF_E_NUM; ++cnt)
- {
- const char *str = elf_errmsg (libelf_msgs[cnt].id);
-
- if (strcmp (str, libelf_msgs[cnt].expected) != 0)
- {
- printf ("libelf msg %zu: expected \"%s\", got \"%s\"\n",
- cnt, libelf_msgs[cnt].expected, str);
- result = EXIT_FAILURE;
- }
- }
-
- return result;
-}
diff --git a/tests/newfile.c b/tests/newfile.c
deleted file mode 100644
index 5efc862a..00000000
--- a/tests/newfile.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/* Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <config.h>
-
-#include <libelf.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-static void
-print_ehdr (Elf32_Ehdr *ehdr)
-{
- int n;
-
- for (n = 0; n < EI_NIDENT; ++n)
- printf (" %02x", ehdr->e_ident[n]);
-
- printf ("\ntype = %d\nmachine = %d\nversion = %d\nentry = %d\n"
- "phoff = %d\nshoff = %d\nflags = %d\nehsize = %d\n"
- "phentsize = %d\nphnum = %d\nshentsize = %d\nshnum = %d\n"
- "shstrndx = %d\n",
- ehdr->e_type,
- ehdr->e_machine,
- ehdr->e_version,
- ehdr->e_entry,
- ehdr->e_phoff,
- ehdr->e_shoff,
- ehdr->e_flags,
- ehdr->e_ehsize,
- ehdr->e_phentsize,
- ehdr->e_phnum,
- ehdr->e_shentsize,
- ehdr->e_shnum,
- ehdr->e_shstrndx);
-}
-
-int
-main (int argc, char *argv[])
-{
- Elf *elf;
- int result = 0;
- int fd;
- char fname[] = "newfile-XXXXXX";
-
- fd = mkstemp (fname);
- if (fd == -1)
- {
- printf ("cannot create temporary file: %m\n");
- exit (1);
- }
- /* Remove the file when we exit. */
- unlink (fname);
-
- elf_version (EV_CURRENT);
- elf = elf_begin (fd, ELF_C_WRITE, NULL);
- if (elf == NULL)
- {
- printf ("elf_begin: %s\n", elf_errmsg (-1));
- result = 1;
- }
- else
- {
- if (elf32_newehdr (elf) == NULL)
- {
- printf ("elf32_newehdr: %s\n", elf_errmsg (-1));
- result = 1;
- }
- else
- {
- Elf32_Ehdr *ehdr = elf32_getehdr (elf);
-
- if (ehdr == NULL)
- {
- printf ("elf32_getehdr: %s\n", elf_errmsg (-1));
- result = 1;
- }
- else
- {
- int i;
-
- if (argc > 1)
- /* Use argc as a debugging flag. */
- print_ehdr (ehdr);
-
- /* Some tests. */
- for (i = 0; i < EI_NIDENT; ++i)
- if (ehdr->e_ident[i] != 0)
- {
- printf ("ehdr->e_ident[%d] != 0\n", i);
- result = 1;
- break;
- }
-
-#define VALUE_TEST(name, val) \
- if (ehdr->name != val) \
- { \
- printf ("ehdr->%s != %d\n", #name, val); \
- result = 1; \
- }
-#define ZERO_TEST(name) VALUE_TEST (name, 0)
- ZERO_TEST (e_type);
- ZERO_TEST (e_machine);
- ZERO_TEST (e_version);
- ZERO_TEST (e_entry);
- ZERO_TEST (e_phoff);
- ZERO_TEST (e_shoff);
- ZERO_TEST (e_flags);
- ZERO_TEST (e_ehsize);
- ZERO_TEST (e_phentsize);
- ZERO_TEST (e_phnum);
- ZERO_TEST (e_shentsize);
- ZERO_TEST (e_shnum);
- ZERO_TEST (e_shstrndx);
-
- if (elf32_newphdr (elf, 10) == NULL)
- {
- printf ("elf32_newphdr: %s\n", elf_errmsg (-1));
- result = 1;
- }
- else
- {
- if (argc > 1)
- print_ehdr (ehdr);
-
- ehdr = elf32_getehdr (elf);
- if (ehdr == NULL)
- {
- printf ("elf32_getehdr (#2): %s\n", elf_errmsg (-1));
- result = 1;
- }
- else
- {
- ZERO_TEST (e_type);
- ZERO_TEST (e_machine);
- ZERO_TEST (e_version);
- ZERO_TEST (e_entry);
- ZERO_TEST (e_phoff);
- ZERO_TEST (e_shoff);
- ZERO_TEST (e_flags);
- ZERO_TEST (e_ehsize);
- VALUE_TEST (e_phentsize, (int) sizeof (Elf32_Phdr));
- VALUE_TEST (e_phnum, 10);
- ZERO_TEST (e_shentsize);
- ZERO_TEST (e_shnum);
- ZERO_TEST (e_shstrndx);
- }
- }
- }
- }
-
- (void) elf_end (elf);
- }
-
- return result;
-}
diff --git a/tests/newscn.c b/tests/newscn.c
deleted file mode 100644
index bc975130..00000000
--- a/tests/newscn.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <assert.h>
-#include <fcntl.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-int
-main (int argc, char *argv[])
-{
- Elf *elf;
- int fd;
- Elf_Scn *section;
-
- if (elf_version (EV_CURRENT) == EV_NONE)
- {
- fprintf (stderr, "library fd of date\n");
- exit (1);
- }
-
- char name[] = "test.XXXXXX";
- fd = mkstemp (name);
- if (fd < 0)
- {
- fprintf (stderr, "Failed to open fdput file: %s\n", name);
- exit (1);
- }
- unlink (name);
-
- elf = elf_begin (fd, ELF_C_WRITE, NULL);
- if (elf == NULL)
- {
- fprintf (stderr, "Failed to elf_begin fdput file: %s\n", name);
- exit (1);
- }
-
- section = elf_newscn (elf);
- section = elf_nextscn (elf, section);
- assert (section == NULL);
-
- elf_end (elf);
- close (fd);
-
- return 0;
-}
diff --git a/tests/run-arextract.sh b/tests/run-arextract.sh
deleted file mode 100644
index 839a6792..00000000
--- a/tests/run-arextract.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1999, 2000, 2002 Red Hat, Inc.
-# Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-#
-# This program is Open Source software; you can redistribute it and/or
-# modify it under the terms of the Open Software License version 1.0 as
-# published by the Open Source Initiative.
-#
-# You should have received a copy of the Open Software License along
-# with this program; if not, you may obtain a copy of the Open Software
-# License version 1.0 from http://www.opensource.org/licenses/osl.php or
-# by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-# 3001 King Ranch Road, Ukiah, CA 95482.
-
-archive=../libelf/.libs/libelf.a
-test -f $archive || archive=../libelf/libelf.a
-if test -f $archive; then
- # The file is really available (i.e., no shared-only built).
- echo -n "Extracting symbols... $ac_c"
-
- # The files we are looking at.
- for f in ../libelf/*.o; do
- ./arextract $archive `basename $f` arextract.test || exit 1
- cmp $f arextract.test || {
- echo "Extraction of $1 failed"
- exit 1
- }
- rm -f ${objpfx}arextract.test
- done
-
- echo "done"
-fi
-
-exit 0
diff --git a/tests/run-arsymtest.sh b/tests/run-arsymtest.sh
deleted file mode 100644
index 793cdb8f..00000000
--- a/tests/run-arsymtest.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1999, 2000, 2002 Red Hat, Inc.
-# Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-#
-# This program is Open Source software; you can redistribute it and/or
-# modify it under the terms of the Open Software License version 1.0 as
-# published by the Open Source Initiative.
-#
-# You should have received a copy of the Open Software License along
-# with this program; if not, you may obtain a copy of the Open Software
-# License version 1.0 from http://www.opensource.org/licenses/osl.php or
-# by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-# 3001 King Ranch Road, Ukiah, CA 95482.
-
-lib=../libelf/libelf.a
-okfile=arsymtest.ok
-tmpfile=arsymtest.tmp
-testfile=arsymtest.test
-
-result=0
-if test -f $lib; then
- # Generate list using `nm' we check against.
- nm -s $lib |
- sed -e '1,/^Arch/d' -e '/^$/,$d' |
- sort > $okfile
-
- # Now run our program using libelf.
- ./arsymtest $lib $tmpfile || exit 1
- sort $tmpfile > $testfile
- rm $tmpfile
-
- # Compare the outputs.
- if cmp $okfile $testfile; then
- result=0
- rm $testfile $okfile
- else
- result=1
- fi
-fi
-
-exit $result
diff --git a/tests/run-ecp-test.sh b/tests/run-ecp-test.sh
deleted file mode 100644
index e4304965..00000000
--- a/tests/run-ecp-test.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2002 Red Hat, Inc.
-# Written by Jakub Jelinek <jakub@redhat.com>, 2002.
-#
-# This program is Open Source software; you can redistribute it and/or
-# modify it under the terms of the Open Software License version 1.0 as
-# published by the Open Source Initiative.
-#
-# You should have received a copy of the Open Software License along
-# with this program; if not, you may obtain a copy of the Open Software
-# License version 1.0 from http://www.opensource.org/licenses/osl.php or
-# by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-# 3001 King Ranch Road, Ukiah, CA 95482.
-set -e
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile10.bz2 > testfile10 2>/dev/null || exit 0
-
-./ecp testfile10 testfile10.tmp
-
-cmp testfile10 testfile10.tmp
-
-rm -f testfile10 testfile10.tmp
-
-exit 0
diff --git a/tests/run-ecp-test2.sh b/tests/run-ecp-test2.sh
deleted file mode 100644
index 143c70a6..00000000
--- a/tests/run-ecp-test2.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2002 Red Hat, Inc.
-# Written by Jakub Jelinek <jakub@redhat.com>, 2002.
-#
-# This program is Open Source software; you can redistribute it and/or
-# modify it under the terms of the Open Software License version 1.0 as
-# published by the Open Source Initiative.
-#
-# You should have received a copy of the Open Software License along
-# with this program; if not, you may obtain a copy of the Open Software
-# License version 1.0 from http://www.opensource.org/licenses/osl.php or
-# by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-# 3001 King Ranch Road, Ukiah, CA 95482.
-set -e
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile2.bz2 > testfile2 2>/dev/null || exit 0
-
-./ecp testfile2 testfile2.tmp
-
-rm -f testfile2 testfile2.tmp
-
-exit 0
diff --git a/tests/run-get-aranges.sh b/tests/run-get-aranges.sh
deleted file mode 100644
index 26b29863..00000000
--- a/tests/run-get-aranges.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1999, 2000, 2002 Red Hat, Inc.
-# Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-#
-# This program is Open Source software; you can redistribute it and/or
-# modify it under the terms of the Open Software License version 1.0 as
-# published by the Open Source Initiative.
-#
-# You should have received a copy of the Open Software License along
-# with this program; if not, you may obtain a copy of the Open Software
-# License version 1.0 from http://www.opensource.org/licenses/osl.php or
-# by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-# 3001 King Ranch Road, Ukiah, CA 95482.
-set -e
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile.bz2 > testfile 2>/dev/null || exit 0
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile2.bz2 > testfile2 2>/dev/null || exit 0
-
-./get-aranges testfile testfile2 > get-aranges.out
-
-cmp get-aranges.out - <<"EOF"
-0x804842b: not in range
-CU name: "m.c"
-CU name: "m.c"
-CU name: "m.c"
-0x804845a: not in range
-0x804845b: not in range
-CU name: "b.c"
-CU name: "b.c"
-CU name: "b.c"
-0x8048466: not in range
-0x8048467: not in range
-CU name: "f.c"
-CU name: "f.c"
-CU name: "f.c"
-0x8048472: not in range
- [ 0] start: 0x804842c, length: 46, cu: 11
-CU name: "m.c"
- [ 1] start: 0x804845c, length: 10, cu: 202
-CU name: "b.c"
- [ 2] start: 0x8048468, length: 10, cu: 5628
-CU name: "f.c"
-0x804842b: not in range
-0x804842c: not in range
-0x804843c: not in range
-0x8048459: not in range
-0x804845a: not in range
-0x804845b: not in range
-0x804845c: not in range
-0x8048460: not in range
-0x8048465: not in range
-0x8048466: not in range
-0x8048467: not in range
-0x8048468: not in range
-0x8048470: not in range
-0x8048471: not in range
-0x8048472: not in range
- [ 0] start: 0x10000470, length: 32, cu: 11
-CU name: "b.c"
- [ 1] start: 0x10000490, length: 32, cu: 2429
-CU name: "f.c"
- [ 2] start: 0x100004b0, length: 100, cu: 2532
-CU name: "m.c"
-EOF
-
-rm -f testfile testfile2 get-aranges.out
-
-exit 0
diff --git a/tests/run-get-files.sh b/tests/run-get-files.sh
deleted file mode 100644
index 7af5c139..00000000
--- a/tests/run-get-files.sh
+++ /dev/null
@@ -1,64 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1999, 2000, 2002, 2004 Red Hat, Inc.
-# Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-#
-# This program is Open Source software; you can redistribute it and/or
-# modify it under the terms of the Open Software License version 1.0 as
-# published by the Open Source Initiative.
-#
-# You should have received a copy of the Open Software License along
-# with this program; if not, you may obtain a copy of the Open Software
-# License version 1.0 from http://www.opensource.org/licenses/osl.php or
-# by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-# 3001 King Ranch Road, Ukiah, CA 95482.
-set -e
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile.bz2 > testfile 2>/dev/null || exit 0
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile2.bz2 > testfile2 2>/dev/null || exit 0
-
-./get-files testfile testfile2 > get-files.out
-
-diff -u get-files.out - <<"EOF"
-cuhl = 11, o = 0, asz = 4, osz = 4, ncu = 191
- file[0] = "???"
- file[1] = "/home/drepper/gnu/new-bu/build/ttt/m.c"
-cuhl = 11, o = 114, asz = 4, osz = 4, ncu = 5617
- file[0] = "???"
- file[1] = "/home/drepper/gnu/new-bu/build/ttt/b.c"
- file[2] = "/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h"
- file[3] = "/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h"
- file[4] = "/usr/include/bits/types.h"
- file[5] = "/usr/include/bits/sched.h"
- file[6] = "/usr/include/bits/pthreadtypes.h"
- file[7] = "/usr/include/stdio.h"
- file[8] = "/usr/include/libio.h"
- file[9] = "/usr/include/wchar.h"
- file[10] = "/usr/include/_G_config.h"
- file[11] = "/usr/include/gconv.h"
-cuhl = 11, o = 412, asz = 4, osz = 4, ncu = 5752
- file[0] = "???"
- file[1] = "/home/drepper/gnu/new-bu/build/ttt/f.c"
-cuhl = 11, o = 0, asz = 4, osz = 4, ncu = 2418
- file[0] = "???"
- file[1] = "/shoggoth/drepper/b.c"
- file[2] = "/home/geoffk/objs/laurel-000912-branch/lib/gcc-lib/powerpc-unknown-linux-gnu/2.96-laurel-000912/include/stddef.h"
- file[3] = "/home/geoffk/objs/laurel-000912-branch/lib/gcc-lib/powerpc-unknown-linux-gnu/2.96-laurel-000912/include/stdarg.h"
- file[4] = "/shoggoth/drepper/<built-in>"
- file[5] = "/usr/include/bits/types.h"
- file[6] = "/usr/include/stdio.h"
- file[7] = "/usr/include/libio.h"
- file[8] = "/usr/include/_G_config.h"
-cuhl = 11, o = 213, asz = 4, osz = 4, ncu = 2521
- file[0] = "???"
- file[1] = "/shoggoth/drepper/f.c"
-cuhl = 11, o = 267, asz = 4, osz = 4, ncu = 2680
- file[0] = "???"
- file[1] = "/shoggoth/drepper/m.c"
-EOF
-
-rm -f testfile testfil2 get-files.out
-
-exit 0
diff --git a/tests/run-get-lines.sh b/tests/run-get-lines.sh
deleted file mode 100644
index 70c9cd84..00000000
--- a/tests/run-get-lines.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1999, 2000, 2002, 2004 Red Hat, Inc.
-# Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-#
-# This program is Open Source software; you can redistribute it and/or
-# modify it under the terms of the Open Software License version 1.0 as
-# published by the Open Source Initiative.
-#
-# You should have received a copy of the Open Software License along
-# with this program; if not, you may obtain a copy of the Open Software
-# License version 1.0 from http://www.opensource.org/licenses/osl.php or
-# by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-# 3001 King Ranch Road, Ukiah, CA 95482.
-set -e
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile.bz2 > testfile 2>/dev/null || exit 0
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile2.bz2 > testfile2 2>/dev/null || exit 0
-
-./get-lines testfile testfile2 > get-lines.out
-
-diff -u get-lines.out - <<"EOF"
-cuhl = 11, o = 0, asz = 4, osz = 4, ncu = 191
- 5 lines
-804842c: /home/drepper/gnu/new-bu/build/ttt/m.c:5:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-8048432: /home/drepper/gnu/new-bu/build/ttt/m.c:6:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-804844d: /home/drepper/gnu/new-bu/build/ttt/m.c:7:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-8048458: /home/drepper/gnu/new-bu/build/ttt/m.c:8:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-804845a: /home/drepper/gnu/new-bu/build/ttt/m.c:8:0: is_stmt:yes, end_seq:yes, bb:no, prologue:no, epilogue:no
-cuhl = 11, o = 114, asz = 4, osz = 4, ncu = 5617
- 4 lines
-804845c: /home/drepper/gnu/new-bu/build/ttt/b.c:4:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-804845f: /home/drepper/gnu/new-bu/build/ttt/b.c:5:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-8048464: /home/drepper/gnu/new-bu/build/ttt/b.c:6:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-8048466: /home/drepper/gnu/new-bu/build/ttt/b.c:6:0: is_stmt:yes, end_seq:yes, bb:no, prologue:no, epilogue:no
-cuhl = 11, o = 412, asz = 4, osz = 4, ncu = 5752
- 4 lines
-8048468: /home/drepper/gnu/new-bu/build/ttt/f.c:3:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-804846b: /home/drepper/gnu/new-bu/build/ttt/f.c:4:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-8048470: /home/drepper/gnu/new-bu/build/ttt/f.c:5:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-8048472: /home/drepper/gnu/new-bu/build/ttt/f.c:5:0: is_stmt:yes, end_seq:yes, bb:no, prologue:no, epilogue:no
-cuhl = 11, o = 0, asz = 4, osz = 4, ncu = 2418
- 4 lines
-10000470: /shoggoth/drepper/b.c:4:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-1000047c: /shoggoth/drepper/b.c:5:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-10000480: /shoggoth/drepper/b.c:6:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-10000490: /shoggoth/drepper/b.c:6:0: is_stmt:yes, end_seq:yes, bb:no, prologue:no, epilogue:no
-cuhl = 11, o = 213, asz = 4, osz = 4, ncu = 2521
- 4 lines
-10000490: /shoggoth/drepper/f.c:3:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-1000049c: /shoggoth/drepper/f.c:4:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-100004a0: /shoggoth/drepper/f.c:5:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-100004b0: /shoggoth/drepper/f.c:5:0: is_stmt:yes, end_seq:yes, bb:no, prologue:no, epilogue:no
-cuhl = 11, o = 267, asz = 4, osz = 4, ncu = 2680
- 5 lines
-100004b0: /shoggoth/drepper/m.c:5:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-100004cc: /shoggoth/drepper/m.c:6:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-100004e8: /shoggoth/drepper/m.c:7:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-100004f4: /shoggoth/drepper/m.c:8:0: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no
-10000514: /shoggoth/drepper/m.c:8:0: is_stmt:yes, end_seq:yes, bb:no, prologue:no, epilogue:no
-EOF
-
-rm -f testfile testfile2 get-lines.out
-
-exit 0
diff --git a/tests/run-get-pubnames.sh b/tests/run-get-pubnames.sh
deleted file mode 100644
index a232bfd2..00000000
--- a/tests/run-get-pubnames.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1999, 2000, 2002, 2003 Red Hat, Inc.
-# Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-#
-# This program is Open Source software; you can redistribute it and/or
-# modify it under the terms of the Open Software License version 1.0 as
-# published by the Open Source Initiative.
-#
-# You should have received a copy of the Open Software License along
-# with this program; if not, you may obtain a copy of the Open Software
-# License version 1.0 from http://www.opensource.org/licenses/osl.php or
-# by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-# 3001 King Ranch Road, Ukiah, CA 95482.
-set -e
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile.bz2 > testfile 2>/dev/null || exit 0
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile2.bz2 > testfile2 2>/dev/null || exit 0
-
-./get-pubnames testfile testfile2 > get-pubnames.out
-
-diff -u get-pubnames.out - <<"EOF"
- [ 0] "main", die: 104, cu: 11
-CU name: "m.c"
-object name: "main"
- [ 1] "a", die: 174, cu: 11
-CU name: "m.c"
-object name: "a"
- [ 2] "bar", die: 295, cu: 202
-CU name: "b.c"
-object name: "bar"
- [ 3] "foo", die: 5721, cu: 5628
-CU name: "f.c"
-object name: "foo"
- [ 0] "bar", die: 72, cu: 11
-CU name: "b.c"
-object name: "bar"
- [ 1] "foo", die: 2490, cu: 2429
-CU name: "f.c"
-object name: "foo"
- [ 2] "main", die: 2593, cu: 2532
-CU name: "m.c"
-object name: "main"
- [ 3] "a", die: 2663, cu: 2532
-CU name: "m.c"
-object name: "a"
-EOF
-
-rm -f testfile testfile2 get-pubnames.out
-
-exit 0
diff --git a/tests/run-show-abbrev.sh b/tests/run-show-abbrev.sh
deleted file mode 100644
index 78812a5f..00000000
--- a/tests/run-show-abbrev.sh
+++ /dev/null
@@ -1,355 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1999, 2000, 2002, 2003, 2004 Red Hat, Inc.
-# Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-#
-# This program is Open Source software; you can redistribute it and/or
-# modify it under the terms of the Open Software License version 1.0 as
-# published by the Open Source Initiative.
-#
-# You should have received a copy of the Open Software License along
-# with this program; if not, you may obtain a copy of the Open Software
-# License version 1.0 from http://www.opensource.org/licenses/osl.php or
-# by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-# 3001 King Ranch Road, Ukiah, CA 95482.
-set -e
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile.bz2 > testfile 2>/dev/null || exit 0
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile2.bz2 > testfile2 2>/dev/null || exit 0
-
-./show-abbrev testfile testfile2 > show-abbrev.out
-
-diff -u show-abbrev.out - <<"EOF"
-abbrev[0]: code = 1, tag = 17, children = 1
-abbrev[0]: attr[0]: code = 16, form = 6, offset = 0
-abbrev[0]: attr[1]: code = 18, form = 1, offset = 2
-abbrev[0]: attr[2]: code = 17, form = 1, offset = 4
-abbrev[0]: attr[3]: code = 3, form = 8, offset = 6
-abbrev[0]: attr[4]: code = 27, form = 8, offset = 8
-abbrev[0]: attr[5]: code = 37, form = 8, offset = 10
-abbrev[0]: attr[6]: code = 19, form = 11, offset = 12
-abbrev[19]: code = 2, tag = 46, children = 1
-abbrev[19]: attr[0]: code = 1, form = 19, offset = 19
-abbrev[19]: attr[1]: code = 63, form = 12, offset = 21
-abbrev[19]: attr[2]: code = 3, form = 8, offset = 23
-abbrev[19]: attr[3]: code = 58, form = 11, offset = 25
-abbrev[19]: attr[4]: code = 59, form = 11, offset = 27
-abbrev[19]: attr[5]: code = 39, form = 12, offset = 29
-abbrev[19]: attr[6]: code = 73, form = 19, offset = 31
-abbrev[19]: attr[7]: code = 17, form = 1, offset = 33
-abbrev[19]: attr[8]: code = 18, form = 1, offset = 35
-abbrev[19]: attr[9]: code = 64, form = 10, offset = 37
-abbrev[44]: code = 3, tag = 46, children = 1
-abbrev[44]: attr[0]: code = 1, form = 19, offset = 44
-abbrev[44]: attr[1]: code = 63, form = 12, offset = 46
-abbrev[44]: attr[2]: code = 3, form = 8, offset = 48
-abbrev[44]: attr[3]: code = 58, form = 11, offset = 50
-abbrev[44]: attr[4]: code = 59, form = 11, offset = 52
-abbrev[44]: attr[5]: code = 73, form = 19, offset = 54
-abbrev[44]: attr[6]: code = 60, form = 12, offset = 56
-abbrev[63]: code = 4, tag = 24, children = 0
-abbrev[68]: code = 5, tag = 46, children = 1
-abbrev[68]: attr[0]: code = 63, form = 12, offset = 68
-abbrev[68]: attr[1]: code = 3, form = 8, offset = 70
-abbrev[68]: attr[2]: code = 58, form = 11, offset = 72
-abbrev[68]: attr[3]: code = 59, form = 11, offset = 74
-abbrev[68]: attr[4]: code = 73, form = 19, offset = 76
-abbrev[68]: attr[5]: code = 60, form = 12, offset = 78
-abbrev[85]: code = 6, tag = 36, children = 0
-abbrev[85]: attr[0]: code = 3, form = 8, offset = 85
-abbrev[85]: attr[1]: code = 11, form = 11, offset = 87
-abbrev[85]: attr[2]: code = 62, form = 11, offset = 89
-abbrev[96]: code = 7, tag = 52, children = 0
-abbrev[96]: attr[0]: code = 3, form = 8, offset = 96
-abbrev[96]: attr[1]: code = 58, form = 11, offset = 98
-abbrev[96]: attr[2]: code = 59, form = 11, offset = 100
-abbrev[96]: attr[3]: code = 73, form = 19, offset = 102
-abbrev[96]: attr[4]: code = 63, form = 12, offset = 104
-abbrev[96]: attr[5]: code = 2, form = 10, offset = 106
-abbrev[0]: code = 1, tag = 17, children = 1
-abbrev[0]: attr[0]: code = 16, form = 6, offset = 114
-abbrev[0]: attr[1]: code = 18, form = 1, offset = 116
-abbrev[0]: attr[2]: code = 17, form = 1, offset = 118
-abbrev[0]: attr[3]: code = 3, form = 8, offset = 120
-abbrev[0]: attr[4]: code = 27, form = 8, offset = 122
-abbrev[0]: attr[5]: code = 37, form = 8, offset = 124
-abbrev[0]: attr[6]: code = 19, form = 11, offset = 126
-abbrev[19]: code = 2, tag = 46, children = 0
-abbrev[19]: attr[0]: code = 63, form = 12, offset = 133
-abbrev[19]: attr[1]: code = 3, form = 8, offset = 135
-abbrev[19]: attr[2]: code = 58, form = 11, offset = 137
-abbrev[19]: attr[3]: code = 59, form = 11, offset = 139
-abbrev[19]: attr[4]: code = 39, form = 12, offset = 141
-abbrev[19]: attr[5]: code = 73, form = 19, offset = 143
-abbrev[19]: attr[6]: code = 17, form = 1, offset = 145
-abbrev[19]: attr[7]: code = 18, form = 1, offset = 147
-abbrev[19]: attr[8]: code = 64, form = 10, offset = 149
-abbrev[42]: code = 3, tag = 36, children = 0
-abbrev[42]: attr[0]: code = 3, form = 8, offset = 156
-abbrev[42]: attr[1]: code = 11, form = 11, offset = 158
-abbrev[42]: attr[2]: code = 62, form = 11, offset = 160
-abbrev[53]: code = 4, tag = 22, children = 0
-abbrev[53]: attr[0]: code = 3, form = 8, offset = 167
-abbrev[53]: attr[1]: code = 58, form = 11, offset = 169
-abbrev[53]: attr[2]: code = 59, form = 11, offset = 171
-abbrev[53]: attr[3]: code = 73, form = 19, offset = 173
-abbrev[66]: code = 5, tag = 15, children = 0
-abbrev[66]: attr[0]: code = 11, form = 11, offset = 180
-abbrev[73]: code = 6, tag = 15, children = 0
-abbrev[73]: attr[0]: code = 11, form = 11, offset = 187
-abbrev[73]: attr[1]: code = 73, form = 19, offset = 189
-abbrev[82]: code = 7, tag = 19, children = 1
-abbrev[82]: attr[0]: code = 1, form = 19, offset = 196
-abbrev[82]: attr[1]: code = 11, form = 11, offset = 198
-abbrev[82]: attr[2]: code = 58, form = 11, offset = 200
-abbrev[82]: attr[3]: code = 59, form = 11, offset = 202
-abbrev[95]: code = 8, tag = 13, children = 0
-abbrev[95]: attr[0]: code = 3, form = 8, offset = 209
-abbrev[95]: attr[1]: code = 58, form = 11, offset = 211
-abbrev[95]: attr[2]: code = 59, form = 11, offset = 213
-abbrev[95]: attr[3]: code = 73, form = 19, offset = 215
-abbrev[95]: attr[4]: code = 56, form = 10, offset = 217
-abbrev[110]: code = 9, tag = 1, children = 1
-abbrev[110]: attr[0]: code = 1, form = 19, offset = 224
-abbrev[110]: attr[1]: code = 73, form = 19, offset = 226
-abbrev[119]: code = 10, tag = 33, children = 0
-abbrev[119]: attr[0]: code = 73, form = 19, offset = 233
-abbrev[119]: attr[1]: code = 47, form = 11, offset = 235
-abbrev[128]: code = 11, tag = 19, children = 1
-abbrev[128]: attr[0]: code = 1, form = 19, offset = 242
-abbrev[128]: attr[1]: code = 3, form = 8, offset = 244
-abbrev[128]: attr[2]: code = 11, form = 11, offset = 246
-abbrev[128]: attr[3]: code = 58, form = 11, offset = 248
-abbrev[128]: attr[4]: code = 59, form = 11, offset = 250
-abbrev[143]: code = 12, tag = 19, children = 0
-abbrev[143]: attr[0]: code = 3, form = 8, offset = 257
-abbrev[143]: attr[1]: code = 60, form = 12, offset = 259
-abbrev[152]: code = 13, tag = 13, children = 0
-abbrev[152]: attr[0]: code = 3, form = 8, offset = 266
-abbrev[152]: attr[1]: code = 58, form = 11, offset = 268
-abbrev[152]: attr[2]: code = 59, form = 5, offset = 270
-abbrev[152]: attr[3]: code = 73, form = 19, offset = 272
-abbrev[152]: attr[4]: code = 56, form = 10, offset = 274
-abbrev[167]: code = 14, tag = 22, children = 0
-abbrev[167]: attr[0]: code = 3, form = 8, offset = 281
-abbrev[167]: attr[1]: code = 58, form = 11, offset = 283
-abbrev[167]: attr[2]: code = 59, form = 5, offset = 285
-abbrev[167]: attr[3]: code = 73, form = 19, offset = 287
-abbrev[180]: code = 15, tag = 23, children = 1
-abbrev[180]: attr[0]: code = 1, form = 19, offset = 294
-abbrev[180]: attr[1]: code = 11, form = 11, offset = 296
-abbrev[180]: attr[2]: code = 58, form = 11, offset = 298
-abbrev[180]: attr[3]: code = 59, form = 11, offset = 300
-abbrev[193]: code = 16, tag = 13, children = 0
-abbrev[193]: attr[0]: code = 3, form = 8, offset = 307
-abbrev[193]: attr[1]: code = 58, form = 11, offset = 309
-abbrev[193]: attr[2]: code = 59, form = 11, offset = 311
-abbrev[193]: attr[3]: code = 73, form = 19, offset = 313
-abbrev[206]: code = 17, tag = 4, children = 1
-abbrev[206]: attr[0]: code = 1, form = 19, offset = 320
-abbrev[206]: attr[1]: code = 11, form = 11, offset = 322
-abbrev[206]: attr[2]: code = 58, form = 11, offset = 324
-abbrev[206]: attr[3]: code = 59, form = 11, offset = 326
-abbrev[219]: code = 18, tag = 40, children = 0
-abbrev[219]: attr[0]: code = 3, form = 8, offset = 333
-abbrev[219]: attr[1]: code = 28, form = 11, offset = 335
-abbrev[228]: code = 19, tag = 38, children = 0
-abbrev[228]: attr[0]: code = 73, form = 19, offset = 342
-abbrev[235]: code = 20, tag = 21, children = 1
-abbrev[235]: attr[0]: code = 1, form = 19, offset = 349
-abbrev[235]: attr[1]: code = 39, form = 12, offset = 351
-abbrev[235]: attr[2]: code = 73, form = 19, offset = 353
-abbrev[246]: code = 21, tag = 5, children = 0
-abbrev[246]: attr[0]: code = 73, form = 19, offset = 360
-abbrev[253]: code = 22, tag = 21, children = 1
-abbrev[253]: attr[0]: code = 1, form = 19, offset = 367
-abbrev[253]: attr[1]: code = 39, form = 12, offset = 369
-abbrev[262]: code = 23, tag = 33, children = 0
-abbrev[262]: attr[0]: code = 73, form = 19, offset = 376
-abbrev[262]: attr[1]: code = 47, form = 6, offset = 378
-abbrev[271]: code = 24, tag = 22, children = 0
-abbrev[271]: attr[0]: code = 3, form = 8, offset = 385
-abbrev[271]: attr[1]: code = 58, form = 11, offset = 387
-abbrev[271]: attr[2]: code = 59, form = 11, offset = 389
-abbrev[282]: code = 25, tag = 4, children = 1
-abbrev[282]: attr[0]: code = 1, form = 19, offset = 396
-abbrev[282]: attr[1]: code = 3, form = 8, offset = 398
-abbrev[282]: attr[2]: code = 11, form = 11, offset = 400
-abbrev[282]: attr[3]: code = 58, form = 11, offset = 402
-abbrev[282]: attr[4]: code = 59, form = 11, offset = 404
-abbrev[0]: code = 1, tag = 17, children = 1
-abbrev[0]: attr[0]: code = 16, form = 6, offset = 412
-abbrev[0]: attr[1]: code = 18, form = 1, offset = 414
-abbrev[0]: attr[2]: code = 17, form = 1, offset = 416
-abbrev[0]: attr[3]: code = 3, form = 8, offset = 418
-abbrev[0]: attr[4]: code = 27, form = 8, offset = 420
-abbrev[0]: attr[5]: code = 37, form = 8, offset = 422
-abbrev[0]: attr[6]: code = 19, form = 11, offset = 424
-abbrev[19]: code = 2, tag = 46, children = 0
-abbrev[19]: attr[0]: code = 63, form = 12, offset = 431
-abbrev[19]: attr[1]: code = 3, form = 8, offset = 433
-abbrev[19]: attr[2]: code = 58, form = 11, offset = 435
-abbrev[19]: attr[3]: code = 59, form = 11, offset = 437
-abbrev[19]: attr[4]: code = 39, form = 12, offset = 439
-abbrev[19]: attr[5]: code = 73, form = 19, offset = 441
-abbrev[19]: attr[6]: code = 17, form = 1, offset = 443
-abbrev[19]: attr[7]: code = 18, form = 1, offset = 445
-abbrev[19]: attr[8]: code = 64, form = 10, offset = 447
-abbrev[42]: code = 3, tag = 36, children = 0
-abbrev[42]: attr[0]: code = 3, form = 8, offset = 454
-abbrev[42]: attr[1]: code = 11, form = 11, offset = 456
-abbrev[42]: attr[2]: code = 62, form = 11, offset = 458
-abbrev[0]: code = 1, tag = 17, children = 1
-abbrev[0]: attr[0]: code = 16, form = 6, offset = 0
-abbrev[0]: attr[1]: code = 18, form = 1, offset = 2
-abbrev[0]: attr[2]: code = 17, form = 1, offset = 4
-abbrev[0]: attr[3]: code = 3, form = 8, offset = 6
-abbrev[0]: attr[4]: code = 27, form = 8, offset = 8
-abbrev[0]: attr[5]: code = 37, form = 8, offset = 10
-abbrev[0]: attr[6]: code = 19, form = 11, offset = 12
-abbrev[19]: code = 2, tag = 46, children = 0
-abbrev[19]: attr[0]: code = 63, form = 12, offset = 19
-abbrev[19]: attr[1]: code = 3, form = 8, offset = 21
-abbrev[19]: attr[2]: code = 58, form = 11, offset = 23
-abbrev[19]: attr[3]: code = 59, form = 11, offset = 25
-abbrev[19]: attr[4]: code = 39, form = 12, offset = 27
-abbrev[19]: attr[5]: code = 73, form = 19, offset = 29
-abbrev[19]: attr[6]: code = 17, form = 1, offset = 31
-abbrev[19]: attr[7]: code = 18, form = 1, offset = 33
-abbrev[19]: attr[8]: code = 64, form = 10, offset = 35
-abbrev[42]: code = 3, tag = 36, children = 0
-abbrev[42]: attr[0]: code = 3, form = 8, offset = 42
-abbrev[42]: attr[1]: code = 11, form = 11, offset = 44
-abbrev[42]: attr[2]: code = 62, form = 11, offset = 46
-abbrev[53]: code = 4, tag = 22, children = 0
-abbrev[53]: attr[0]: code = 3, form = 8, offset = 53
-abbrev[53]: attr[1]: code = 58, form = 11, offset = 55
-abbrev[53]: attr[2]: code = 59, form = 11, offset = 57
-abbrev[53]: attr[3]: code = 73, form = 19, offset = 59
-abbrev[66]: code = 5, tag = 1, children = 1
-abbrev[66]: attr[0]: code = 1, form = 19, offset = 66
-abbrev[66]: attr[1]: code = 3, form = 8, offset = 68
-abbrev[66]: attr[2]: code = 73, form = 19, offset = 70
-abbrev[77]: code = 6, tag = 33, children = 0
-abbrev[77]: attr[0]: code = 73, form = 19, offset = 77
-abbrev[77]: attr[1]: code = 47, form = 11, offset = 79
-abbrev[86]: code = 7, tag = 19, children = 1
-abbrev[86]: attr[0]: code = 1, form = 19, offset = 86
-abbrev[86]: attr[1]: code = 3, form = 8, offset = 88
-abbrev[86]: attr[2]: code = 11, form = 11, offset = 90
-abbrev[86]: attr[3]: code = 58, form = 11, offset = 92
-abbrev[86]: attr[4]: code = 59, form = 11, offset = 94
-abbrev[101]: code = 8, tag = 13, children = 0
-abbrev[101]: attr[0]: code = 3, form = 8, offset = 101
-abbrev[101]: attr[1]: code = 58, form = 11, offset = 103
-abbrev[101]: attr[2]: code = 59, form = 11, offset = 105
-abbrev[101]: attr[3]: code = 73, form = 19, offset = 107
-abbrev[101]: attr[4]: code = 56, form = 10, offset = 109
-abbrev[116]: code = 9, tag = 15, children = 0
-abbrev[116]: attr[0]: code = 11, form = 11, offset = 116
-abbrev[123]: code = 10, tag = 15, children = 0
-abbrev[123]: attr[0]: code = 11, form = 11, offset = 123
-abbrev[123]: attr[1]: code = 73, form = 19, offset = 125
-abbrev[132]: code = 11, tag = 19, children = 1
-abbrev[132]: attr[0]: code = 1, form = 19, offset = 132
-abbrev[132]: attr[1]: code = 11, form = 11, offset = 134
-abbrev[132]: attr[2]: code = 58, form = 11, offset = 136
-abbrev[132]: attr[3]: code = 59, form = 11, offset = 138
-abbrev[145]: code = 12, tag = 1, children = 1
-abbrev[145]: attr[0]: code = 1, form = 19, offset = 145
-abbrev[145]: attr[1]: code = 73, form = 19, offset = 147
-abbrev[154]: code = 13, tag = 22, children = 0
-abbrev[154]: attr[0]: code = 3, form = 8, offset = 154
-abbrev[154]: attr[1]: code = 58, form = 11, offset = 156
-abbrev[154]: attr[2]: code = 59, form = 5, offset = 158
-abbrev[154]: attr[3]: code = 73, form = 19, offset = 160
-abbrev[167]: code = 14, tag = 19, children = 0
-abbrev[167]: attr[0]: code = 3, form = 8, offset = 167
-abbrev[167]: attr[1]: code = 60, form = 12, offset = 169
-abbrev[176]: code = 15, tag = 22, children = 0
-abbrev[176]: attr[0]: code = 3, form = 8, offset = 176
-abbrev[176]: attr[1]: code = 58, form = 11, offset = 178
-abbrev[176]: attr[2]: code = 59, form = 11, offset = 180
-abbrev[187]: code = 16, tag = 21, children = 1
-abbrev[187]: attr[0]: code = 1, form = 19, offset = 187
-abbrev[187]: attr[1]: code = 39, form = 12, offset = 189
-abbrev[187]: attr[2]: code = 73, form = 19, offset = 191
-abbrev[198]: code = 17, tag = 5, children = 0
-abbrev[198]: attr[0]: code = 73, form = 19, offset = 198
-abbrev[205]: code = 18, tag = 38, children = 0
-abbrev[205]: attr[0]: code = 73, form = 19, offset = 205
-abbrev[0]: code = 1, tag = 17, children = 1
-abbrev[0]: attr[0]: code = 16, form = 6, offset = 213
-abbrev[0]: attr[1]: code = 18, form = 1, offset = 215
-abbrev[0]: attr[2]: code = 17, form = 1, offset = 217
-abbrev[0]: attr[3]: code = 3, form = 8, offset = 219
-abbrev[0]: attr[4]: code = 27, form = 8, offset = 221
-abbrev[0]: attr[5]: code = 37, form = 8, offset = 223
-abbrev[0]: attr[6]: code = 19, form = 11, offset = 225
-abbrev[19]: code = 2, tag = 46, children = 0
-abbrev[19]: attr[0]: code = 63, form = 12, offset = 232
-abbrev[19]: attr[1]: code = 3, form = 8, offset = 234
-abbrev[19]: attr[2]: code = 58, form = 11, offset = 236
-abbrev[19]: attr[3]: code = 59, form = 11, offset = 238
-abbrev[19]: attr[4]: code = 39, form = 12, offset = 240
-abbrev[19]: attr[5]: code = 73, form = 19, offset = 242
-abbrev[19]: attr[6]: code = 17, form = 1, offset = 244
-abbrev[19]: attr[7]: code = 18, form = 1, offset = 246
-abbrev[19]: attr[8]: code = 64, form = 10, offset = 248
-abbrev[42]: code = 3, tag = 36, children = 0
-abbrev[42]: attr[0]: code = 3, form = 8, offset = 255
-abbrev[42]: attr[1]: code = 11, form = 11, offset = 257
-abbrev[42]: attr[2]: code = 62, form = 11, offset = 259
-abbrev[0]: code = 1, tag = 17, children = 1
-abbrev[0]: attr[0]: code = 16, form = 6, offset = 267
-abbrev[0]: attr[1]: code = 18, form = 1, offset = 269
-abbrev[0]: attr[2]: code = 17, form = 1, offset = 271
-abbrev[0]: attr[3]: code = 3, form = 8, offset = 273
-abbrev[0]: attr[4]: code = 27, form = 8, offset = 275
-abbrev[0]: attr[5]: code = 37, form = 8, offset = 277
-abbrev[0]: attr[6]: code = 19, form = 11, offset = 279
-abbrev[19]: code = 2, tag = 46, children = 1
-abbrev[19]: attr[0]: code = 1, form = 19, offset = 286
-abbrev[19]: attr[1]: code = 63, form = 12, offset = 288
-abbrev[19]: attr[2]: code = 3, form = 8, offset = 290
-abbrev[19]: attr[3]: code = 58, form = 11, offset = 292
-abbrev[19]: attr[4]: code = 59, form = 11, offset = 294
-abbrev[19]: attr[5]: code = 39, form = 12, offset = 296
-abbrev[19]: attr[6]: code = 73, form = 19, offset = 298
-abbrev[19]: attr[7]: code = 17, form = 1, offset = 300
-abbrev[19]: attr[8]: code = 18, form = 1, offset = 302
-abbrev[19]: attr[9]: code = 64, form = 10, offset = 304
-abbrev[44]: code = 3, tag = 46, children = 1
-abbrev[44]: attr[0]: code = 1, form = 19, offset = 311
-abbrev[44]: attr[1]: code = 63, form = 12, offset = 313
-abbrev[44]: attr[2]: code = 3, form = 8, offset = 315
-abbrev[44]: attr[3]: code = 58, form = 11, offset = 317
-abbrev[44]: attr[4]: code = 59, form = 11, offset = 319
-abbrev[44]: attr[5]: code = 73, form = 19, offset = 321
-abbrev[44]: attr[6]: code = 60, form = 12, offset = 323
-abbrev[63]: code = 4, tag = 24, children = 0
-abbrev[68]: code = 5, tag = 46, children = 1
-abbrev[68]: attr[0]: code = 63, form = 12, offset = 335
-abbrev[68]: attr[1]: code = 3, form = 8, offset = 337
-abbrev[68]: attr[2]: code = 58, form = 11, offset = 339
-abbrev[68]: attr[3]: code = 59, form = 11, offset = 341
-abbrev[68]: attr[4]: code = 73, form = 19, offset = 343
-abbrev[68]: attr[5]: code = 60, form = 12, offset = 345
-abbrev[85]: code = 6, tag = 36, children = 0
-abbrev[85]: attr[0]: code = 3, form = 8, offset = 352
-abbrev[85]: attr[1]: code = 11, form = 11, offset = 354
-abbrev[85]: attr[2]: code = 62, form = 11, offset = 356
-abbrev[96]: code = 7, tag = 52, children = 0
-abbrev[96]: attr[0]: code = 3, form = 8, offset = 363
-abbrev[96]: attr[1]: code = 58, form = 11, offset = 365
-abbrev[96]: attr[2]: code = 59, form = 11, offset = 367
-abbrev[96]: attr[3]: code = 73, form = 19, offset = 369
-abbrev[96]: attr[4]: code = 63, form = 12, offset = 371
-abbrev[96]: attr[5]: code = 2, form = 10, offset = 373
-EOF
-
-rm -f testfile testfile2 show-abbrev.out
-
-exit 0
diff --git a/tests/run-show-ciefde.sh b/tests/run-show-ciefde.sh
deleted file mode 100644
index b3355334..00000000
--- a/tests/run-show-ciefde.sh
+++ /dev/null
@@ -1,319 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1999, 2000, 2002 Red Hat, Inc.
-# Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-#
-# This program is Open Source software; you can redistribute it and/or
-# modify it under the terms of the Open Software License version 1.0 as
-# published by the Open Source Initiative.
-#
-# You should have received a copy of the Open Software License along
-# with this program; if not, you may obtain a copy of the Open Software
-# License version 1.0 from http://www.opensource.org/licenses/osl.php or
-# by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-# 3001 King Ranch Road, Ukiah, CA 95482.
-set -e
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile3.bz2 > testfile3 2>/dev/null || exit 0
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile4.bz2 > testfile4 2>/dev/null || exit 0
-
-./show-ciefde testfile3 testfile4 > show-ciefde.out
-
-diff -u show-ciefde.out - <<"EOF"
-testfile3 has 1 CIEs and 1 FDEs
-CIE[0]: bytes_in_cie = 16, version = 1, augmenter = ""
-CIE[0]: code_alignment_factor = 1
-CIE[0]: data_alignment_factor = fffffffffffffffc
-CIE[0]: return_address_register = 8
-CIE[0]: bytes = 0c 04 04 88 01 00 00
-FDE[0]: low_pc = 0x804842c, length = 41
-FDE[0]: bytes = 18 00 00 00 18 00 00 00 2c 84 04 08 29 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[0]: cie_offset = 0, cie_index = 0, fde_offset = 24
-FDE[0]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-no FDE at 8048400
-FDE[@804842c]: cie_offset = 0, cie_index = 0, fde_offset = 24
-FDE[@8048454]: cie_offset = 0, cie_index = 0, fde_offset = 24
-no FDE at 8048455
-no FDE at 80493fc
-testfile4 has 5 CIEs and 61 FDEs
-CIE[0]: bytes_in_cie = 20, version = 1, augmenter = "eh"
-CIE[0]: code_alignment_factor = 1
-CIE[0]: data_alignment_factor = fffffffffffffffc
-CIE[0]: return_address_register = 8
-CIE[0]: bytes = 0c 04 04 88 01
-CIE[1]: bytes_in_cie = 16, version = 1, augmenter = ""
-CIE[1]: code_alignment_factor = 1
-CIE[1]: data_alignment_factor = fffffffffffffffc
-CIE[1]: return_address_register = 8
-CIE[1]: bytes = 0c 04 04 88 01 00 00
-CIE[2]: bytes_in_cie = 16, version = 1, augmenter = ""
-CIE[2]: code_alignment_factor = 1
-CIE[2]: data_alignment_factor = fffffffffffffffc
-CIE[2]: return_address_register = 8
-CIE[2]: bytes = 0c 04 04 88 01 00 00
-CIE[3]: bytes_in_cie = 20, version = 1, augmenter = "eh"
-CIE[3]: code_alignment_factor = 1
-CIE[3]: data_alignment_factor = fffffffffffffffc
-CIE[3]: return_address_register = 8
-CIE[3]: bytes = 0c 04 04 88 01
-CIE[4]: bytes_in_cie = 16, version = 1, augmenter = ""
-CIE[4]: code_alignment_factor = 1
-CIE[4]: data_alignment_factor = fffffffffffffffc
-CIE[4]: return_address_register = 8
-CIE[4]: bytes = 0c 04 04 88 01 00 00
-FDE[0]: low_pc = 0x80493fc, length = 154
-FDE[0]: bytes = 2c 00 00 00 1c 00 00 00 fc 93 04 08 9a 00 00 00 41 0e 08 85 02 42 0d 05 53 2e 08 50 2e 10 48 2e 00 58 2e 10 62 2e 00 63 2e 10 45 2e 00 00 00 00
-FDE[0]: cie_offset = 0, cie_index = 0, fde_offset = 28
-FDE[0]: instructions = 41 0e 08 85 02 42 0d 05 53 2e 08 50 2e 10 48 2e 00 58 2e 10 62 2e 00 63 2e 10 45 2e 00 00 00 00
-FDE[1]: low_pc = 0x8049498, length = 49
-FDE[1]: bytes = 18 00 00 00 4c 00 00 00 98 94 04 08 31 00 00 00 41 0e 08 85 02 42 0d 05 4c 2e 10 00
-FDE[1]: cie_offset = 0, cie_index = 0, fde_offset = 76
-FDE[1]: instructions = 41 0e 08 85 02 42 0d 05 4c 2e 10 00
-FDE[2]: low_pc = 0x80494d4, length = 23
-FDE[2]: bytes = 18 00 00 00 18 00 00 00 d4 94 04 08 17 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[2]: cie_offset = 100, cie_index = 1, fde_offset = 24
-FDE[2]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[3]: low_pc = 0x80494f0, length = 26
-FDE[3]: bytes = 18 00 00 00 34 00 00 00 f0 94 04 08 1a 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[3]: cie_offset = 100, cie_index = 1, fde_offset = 52
-FDE[3]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[4]: low_pc = 0x8049560, length = 85
-FDE[4]: bytes = 24 00 00 00 50 00 00 00 60 95 04 08 55 00 00 00 41 0e 08 85 02 42 0d 05 41 86 03 41 83 04 53 2e 10 4e 2e 00 55 2e 10 00
-FDE[4]: cie_offset = 100, cie_index = 1, fde_offset = 80
-FDE[4]: instructions = 41 0e 08 85 02 42 0d 05 41 86 03 41 83 04 53 2e 10 4e 2e 00 55 2e 10 00
-FDE[5]: low_pc = 0x80495c0, length = 66
-FDE[5]: bytes = 20 00 00 00 78 00 00 00 c0 95 04 08 42 00 00 00 41 0e 08 85 02 42 0d 05 41 86 03 41 83 04 5e 2e 10 00 00 00
-FDE[5]: cie_offset = 100, cie_index = 1, fde_offset = 120
-FDE[5]: instructions = 41 0e 08 85 02 42 0d 05 41 86 03 41 83 04 5e 2e 10 00 00 00
-FDE[6]: low_pc = 0x8049610, length = 28
-FDE[6]: bytes = 18 00 00 00 9c 00 00 00 10 96 04 08 1c 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[6]: cie_offset = 100, cie_index = 1, fde_offset = 156
-FDE[6]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[7]: low_pc = 0x8049630, length = 31
-FDE[7]: bytes = 18 00 00 00 b8 00 00 00 30 96 04 08 1f 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[7]: cie_offset = 100, cie_index = 1, fde_offset = 184
-FDE[7]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[8]: low_pc = 0x80496e0, length = 71
-FDE[8]: bytes = 1c 00 00 00 d4 00 00 00 e0 96 04 08 47 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 5c 2e 10 00 00
-FDE[8]: cie_offset = 100, cie_index = 1, fde_offset = 212
-FDE[8]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 5c 2e 10 00 00
-FDE[9]: low_pc = 0x8049730, length = 165
-FDE[9]: bytes = 20 00 00 00 f4 00 00 00 30 97 04 08 a5 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 69 2e 10 02 66 2e 00 00 00
-FDE[9]: cie_offset = 100, cie_index = 1, fde_offset = 244
-FDE[9]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 69 2e 10 02 66 2e 00 00 00
-FDE[10]: low_pc = 0x80497e0, length = 89
-FDE[10]: bytes = 1c 00 00 00 18 01 00 00 e0 97 04 08 59 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 74 2e 10 00 00
-FDE[10]: cie_offset = 100, cie_index = 1, fde_offset = 280
-FDE[10]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 74 2e 10 00 00
-FDE[11]: low_pc = 0x8049840, length = 89
-FDE[11]: bytes = 28 00 00 00 38 01 00 00 40 98 04 08 59 00 00 00 41 0e 08 85 02 42 0d 05 41 86 03 41 83 04 55 2e 10 4e 2e 00 52 2e 10 4c 2e 00 00 00
-FDE[11]: cie_offset = 100, cie_index = 1, fde_offset = 312
-FDE[11]: instructions = 41 0e 08 85 02 42 0d 05 41 86 03 41 83 04 55 2e 10 4e 2e 00 52 2e 10 4c 2e 00 00 00
-FDE[12]: low_pc = 0x80498a0, length = 176
-FDE[12]: bytes = 24 00 00 00 64 01 00 00 a0 98 04 08 b0 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 5e 2e 10 4c 2e 00 00
-FDE[12]: cie_offset = 100, cie_index = 1, fde_offset = 356
-FDE[12]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 5e 2e 10 4c 2e 00 00
-FDE[13]: low_pc = 0x8049950, length = 116
-FDE[13]: bytes = 24 00 00 00 8c 01 00 00 50 99 04 08 74 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 5e 2e 10 00 00 00
-FDE[13]: cie_offset = 100, cie_index = 1, fde_offset = 396
-FDE[13]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 5e 2e 10 00 00 00
-FDE[14]: low_pc = 0x80499d0, length = 31
-FDE[14]: bytes = 18 00 00 00 b4 01 00 00 d0 99 04 08 1f 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[14]: cie_offset = 100, cie_index = 1, fde_offset = 436
-FDE[14]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[15]: low_pc = 0x80499f0, length = 313
-FDE[15]: bytes = 24 00 00 00 d0 01 00 00 f0 99 04 08 39 01 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 d8 2e 10 62 2e 00
-FDE[15]: cie_offset = 100, cie_index = 1, fde_offset = 464
-FDE[15]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 d8 2e 10 62 2e 00
-FDE[16]: low_pc = 0x8049b30, length = 262
-FDE[16]: bytes = 24 00 00 00 f8 01 00 00 30 9b 04 08 06 01 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 c8 2e 10 62 2e 00
-FDE[16]: cie_offset = 100, cie_index = 1, fde_offset = 504
-FDE[16]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 c8 2e 10 62 2e 00
-FDE[17]: low_pc = 0x8049c40, length = 95
-FDE[17]: bytes = 1c 00 00 00 20 02 00 00 40 9c 04 08 5f 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 6e 2e 10 00 00
-FDE[17]: cie_offset = 100, cie_index = 1, fde_offset = 544
-FDE[17]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 6e 2e 10 00 00
-FDE[18]: low_pc = 0x8049d60, length = 230
-FDE[18]: bytes = 20 00 00 00 40 02 00 00 60 9d 04 08 e6 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 02 9a 2e 10 00 00
-FDE[18]: cie_offset = 100, cie_index = 1, fde_offset = 576
-FDE[18]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 02 9a 2e 10 00 00
-FDE[19]: low_pc = 0x8049e50, length = 85
-FDE[19]: bytes = 18 00 00 00 64 02 00 00 50 9e 04 08 55 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[19]: cie_offset = 100, cie_index = 1, fde_offset = 612
-FDE[19]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[20]: low_pc = 0x8049eb0, length = 144
-FDE[20]: bytes = 20 00 00 00 80 02 00 00 b0 9e 04 08 90 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 5b 2e 10
-FDE[20]: cie_offset = 100, cie_index = 1, fde_offset = 640
-FDE[20]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 5b 2e 10
-FDE[21]: low_pc = 0x8049f40, length = 115
-FDE[21]: bytes = 20 00 00 00 a4 02 00 00 40 9f 04 08 73 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 59 2e 10
-FDE[21]: cie_offset = 100, cie_index = 1, fde_offset = 676
-FDE[21]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 59 2e 10
-FDE[22]: low_pc = 0x8049fd0, length = 948
-FDE[22]: bytes = 30 00 00 00 c8 02 00 00 d0 9f 04 08 b4 03 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 f7 2e 20 02 64 2e 10 03 15 01 2e 00 02 9f 2e 10 00 00
-FDE[22]: cie_offset = 100, cie_index = 1, fde_offset = 712
-FDE[22]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 f7 2e 20 02 64 2e 10 03 15 01 2e 00 02 9f 2e 10 00 00
-FDE[23]: low_pc = 0x804a390, length = 201
-FDE[23]: bytes = 28 00 00 00 fc 02 00 00 90 a3 04 08 c9 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 58 2e 10 52 2e 00 75 2e 10 00
-FDE[23]: cie_offset = 100, cie_index = 1, fde_offset = 764
-FDE[23]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 58 2e 10 52 2e 00 75 2e 10 00
-FDE[24]: low_pc = 0x804a460, length = 206
-FDE[24]: bytes = 28 00 00 00 28 03 00 00 60 a4 04 08 ce 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 64 2e 10 52 2e 00 6e 2e 10 00
-FDE[24]: cie_offset = 100, cie_index = 1, fde_offset = 808
-FDE[24]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 64 2e 10 52 2e 00 6e 2e 10 00
-FDE[25]: low_pc = 0x804b970, length = 1274
-FDE[25]: bytes = 44 00 00 00 18 00 00 00 70 b9 04 08 fa 04 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 66 2e 10 7b 2e 20 03 7f 01 2e 10 53 2e 08 4c 2e 10 79 2e 20 02 54 2e 10 7e 2e 20 03 6c 01 2e 10 02 45 2e 20 00 00 00
-FDE[25]: cie_offset = 948, cie_index = 2, fde_offset = 24
-FDE[25]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 66 2e 10 7b 2e 20 03 7f 01 2e 10 53 2e 08 4c 2e 10 79 2e 20 02 54 2e 10 7e 2e 20 03 6c 01 2e 10 02 45 2e 20 00 00 00
-FDE[26]: low_pc = 0x804be70, length = 60
-FDE[26]: bytes = 1c 00 00 00 60 00 00 00 70 be 04 08 3c 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 5e 2e 10 00 00
-FDE[26]: cie_offset = 948, cie_index = 2, fde_offset = 96
-FDE[26]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 5e 2e 10 00 00
-FDE[27]: low_pc = 0x804c090, length = 85
-FDE[27]: bytes = 24 00 00 00 80 00 00 00 90 c0 04 08 55 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 66 2e 04 4d 2e 0c 4c 2e 04 46 2e 20 00
-FDE[27]: cie_offset = 948, cie_index = 2, fde_offset = 128
-FDE[27]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 66 2e 04 4d 2e 0c 4c 2e 04 46 2e 20 00
-FDE[28]: low_pc = 0x804c0f0, length = 75
-FDE[28]: bytes = 2c 00 00 00 a8 00 00 00 f0 c0 04 08 4b 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 5b 2e 04 4a 2e 0c 4d 2e 04 46 2e 20 00 00 00
-FDE[28]: cie_offset = 948, cie_index = 2, fde_offset = 168
-FDE[28]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 5b 2e 04 4a 2e 0c 4d 2e 04 46 2e 20 00 00 00
-FDE[29]: low_pc = 0x804d8e0, length = 71
-FDE[29]: bytes = 20 00 00 00 d8 00 00 00 e0 d8 04 08 47 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 60 2e 10
-FDE[29]: cie_offset = 948, cie_index = 2, fde_offset = 216
-FDE[29]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 60 2e 10
-FDE[30]: low_pc = 0x804d980, length = 71
-FDE[30]: bytes = 20 00 00 00 fc 00 00 00 80 d9 04 08 47 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 60 2e 10
-FDE[30]: cie_offset = 948, cie_index = 2, fde_offset = 252
-FDE[30]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 60 2e 10
-FDE[31]: low_pc = 0x804da20, length = 71
-FDE[31]: bytes = 20 00 00 00 20 01 00 00 20 da 04 08 47 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 60 2e 10
-FDE[31]: cie_offset = 948, cie_index = 2, fde_offset = 288
-FDE[31]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 60 2e 10
-FDE[32]: low_pc = 0x804dac0, length = 71
-FDE[32]: bytes = 20 00 00 00 44 01 00 00 c0 da 04 08 47 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 60 2e 10
-FDE[32]: cie_offset = 948, cie_index = 2, fde_offset = 324
-FDE[32]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 60 2e 10
-FDE[33]: low_pc = 0x804db60, length = 71
-FDE[33]: bytes = 20 00 00 00 68 01 00 00 60 db 04 08 47 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 60 2e 10
-FDE[33]: cie_offset = 948, cie_index = 2, fde_offset = 360
-FDE[33]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 60 2e 10
-FDE[34]: low_pc = 0x804dc00, length = 71
-FDE[34]: bytes = 20 00 00 00 8c 01 00 00 00 dc 04 08 47 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 60 2e 10
-FDE[34]: cie_offset = 948, cie_index = 2, fde_offset = 396
-FDE[34]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 60 2e 10
-FDE[35]: low_pc = 0x804dca0, length = 71
-FDE[35]: bytes = 20 00 00 00 b0 01 00 00 a0 dc 04 08 47 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 60 2e 10
-FDE[35]: cie_offset = 948, cie_index = 2, fde_offset = 432
-FDE[35]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 60 2e 10
-FDE[36]: low_pc = 0x804c5b4, length = 26
-FDE[36]: bytes = 18 00 00 00 1c 00 00 00 b4 c5 04 08 1a 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[36]: cie_offset = 1412, cie_index = 3, fde_offset = 28
-FDE[36]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[37]: low_pc = 0x804c5d0, length = 23
-FDE[37]: bytes = 18 00 00 00 38 00 00 00 d0 c5 04 08 17 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[37]: cie_offset = 1412, cie_index = 3, fde_offset = 56
-FDE[37]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[38]: low_pc = 0x804c640, length = 24
-FDE[38]: bytes = 18 00 00 00 54 00 00 00 40 c6 04 08 18 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[38]: cie_offset = 1412, cie_index = 3, fde_offset = 84
-FDE[38]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[39]: low_pc = 0x804c660, length = 32
-FDE[39]: bytes = 18 00 00 00 70 00 00 00 60 c6 04 08 20 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[39]: cie_offset = 1412, cie_index = 3, fde_offset = 112
-FDE[39]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[40]: low_pc = 0x804c680, length = 29
-FDE[40]: bytes = 18 00 00 00 8c 00 00 00 80 c6 04 08 1d 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[40]: cie_offset = 1412, cie_index = 3, fde_offset = 140
-FDE[40]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[41]: low_pc = 0x804c6a0, length = 36
-FDE[41]: bytes = 18 00 00 00 a8 00 00 00 a0 c6 04 08 24 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[41]: cie_offset = 1412, cie_index = 3, fde_offset = 168
-FDE[41]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[42]: low_pc = 0x804c6d0, length = 98
-FDE[42]: bytes = 24 00 00 00 c4 00 00 00 d0 c6 04 08 62 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 43 2e 10 00 00 00
-FDE[42]: cie_offset = 1412, cie_index = 3, fde_offset = 196
-FDE[42]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 43 2e 10 00 00 00
-FDE[43]: low_pc = 0x804c740, length = 107
-FDE[43]: bytes = 24 00 00 00 ec 00 00 00 40 c7 04 08 6b 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 53 2e 10 7b 2e 00 00
-FDE[43]: cie_offset = 1412, cie_index = 3, fde_offset = 236
-FDE[43]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 53 2e 10 7b 2e 00 00
-FDE[44]: low_pc = 0x804c7b0, length = 256
-FDE[44]: bytes = 24 00 00 00 14 01 00 00 b0 c7 04 08 00 01 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 bf 2e 10 00 00 00
-FDE[44]: cie_offset = 1412, cie_index = 3, fde_offset = 276
-FDE[44]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 02 bf 2e 10 00 00 00
-FDE[45]: low_pc = 0x804c8b0, length = 78
-FDE[45]: bytes = 1c 00 00 00 3c 01 00 00 b0 c8 04 08 4e 00 00 00 41 0e 08 85 02 42 0d 05 41 86 03 41 83 04 00 00
-FDE[45]: cie_offset = 1412, cie_index = 3, fde_offset = 316
-FDE[45]: instructions = 41 0e 08 85 02 42 0d 05 41 86 03 41 83 04 00 00
-FDE[46]: low_pc = 0x804c900, length = 480
-FDE[46]: bytes = 40 00 00 00 5c 01 00 00 00 c9 04 08 e0 01 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 7d 2e 10 4c 2e 00 02 48 2e 10 02 54 2e 00 78 2e 10 4c 2e 00 02 44 2e 10 79 2e 08 49 2e 10 48 2e 00 00 00
-FDE[46]: cie_offset = 1412, cie_index = 3, fde_offset = 348
-FDE[46]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 7d 2e 10 4c 2e 00 02 48 2e 10 02 54 2e 00 78 2e 10 4c 2e 00 02 44 2e 10 79 2e 08 49 2e 10 48 2e 00 00 00
-FDE[47]: low_pc = 0x804cae0, length = 37
-FDE[47]: bytes = 1c 00 00 00 a0 01 00 00 e0 ca 04 08 25 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 52 2e 10 00 00
-FDE[47]: cie_offset = 1412, cie_index = 3, fde_offset = 416
-FDE[47]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 52 2e 10 00 00
-FDE[48]: low_pc = 0x804cb10, length = 128
-FDE[48]: bytes = 2c 00 00 00 c0 01 00 00 10 cb 04 08 80 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 62 2e 10 56 2e 08 49 2e 10 48 2e 00 6c 2e 10
-FDE[48]: cie_offset = 1412, cie_index = 3, fde_offset = 448
-FDE[48]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 62 2e 10 56 2e 08 49 2e 10 48 2e 00 6c 2e 10
-FDE[49]: low_pc = 0x804cb90, length = 128
-FDE[49]: bytes = 2c 00 00 00 f0 01 00 00 90 cb 04 08 80 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 62 2e 10 56 2e 08 49 2e 10 48 2e 00 6c 2e 10
-FDE[49]: cie_offset = 1412, cie_index = 3, fde_offset = 496
-FDE[49]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 62 2e 10 56 2e 08 49 2e 10 48 2e 00 6c 2e 10
-FDE[50]: low_pc = 0x804cc10, length = 45
-FDE[50]: bytes = 18 00 00 00 20 02 00 00 10 cc 04 08 2d 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[50]: cie_offset = 1412, cie_index = 3, fde_offset = 544
-FDE[50]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[51]: low_pc = 0x804cc40, length = 43
-FDE[51]: bytes = 18 00 00 00 3c 02 00 00 40 cc 04 08 2b 00 00 00 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[51]: cie_offset = 1412, cie_index = 3, fde_offset = 572
-FDE[51]: instructions = 41 0e 08 85 02 42 0d 05 41 83 03 00
-FDE[52]: low_pc = 0x804cde0, length = 89
-FDE[52]: bytes = 20 00 00 00 18 00 00 00 e0 cd 04 08 59 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 6d 2e 20 00 00 00
-FDE[52]: cie_offset = 2008, cie_index = 4, fde_offset = 24
-FDE[52]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 6d 2e 20 00 00 00
-FDE[53]: low_pc = 0x804ce40, length = 217
-FDE[53]: bytes = 20 00 00 00 3c 00 00 00 40 ce 04 08 d9 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 02 40 2e 20 00 00
-FDE[53]: cie_offset = 2008, cie_index = 4, fde_offset = 60
-FDE[53]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 02 40 2e 20 00 00
-FDE[54]: low_pc = 0x804d010, length = 117
-FDE[54]: bytes = 24 00 00 00 60 00 00 00 10 d0 04 08 75 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 5c 2e 10 02 48 2e 20
-FDE[54]: cie_offset = 2008, cie_index = 4, fde_offset = 96
-FDE[54]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 5c 2e 10 02 48 2e 20
-FDE[55]: low_pc = 0x804d090, length = 190
-FDE[55]: bytes = 24 00 00 00 88 00 00 00 90 d0 04 08 be 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 64 2e 10 02 89 2e 20
-FDE[55]: cie_offset = 2008, cie_index = 4, fde_offset = 136
-FDE[55]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 64 2e 10 02 89 2e 20
-FDE[56]: low_pc = 0x804d150, length = 101
-FDE[56]: bytes = 24 00 00 00 b0 00 00 00 50 d1 04 08 65 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 61 2e 10 73 2e 20 00
-FDE[56]: cie_offset = 2008, cie_index = 4, fde_offset = 176
-FDE[56]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 61 2e 10 73 2e 20 00
-FDE[57]: low_pc = 0x804d1c0, length = 480
-FDE[57]: bytes = 28 00 00 00 d8 00 00 00 c0 d1 04 08 e0 01 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 56 2e 10 02 f5 2e 20 02 91 2e 10
-FDE[57]: cie_offset = 2008, cie_index = 4, fde_offset = 216
-FDE[57]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 56 2e 10 02 f5 2e 20 02 91 2e 10
-FDE[58]: low_pc = 0x804d3a0, length = 897
-FDE[58]: bytes = 28 00 00 00 04 01 00 00 a0 d3 04 08 81 03 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 61 2e 10 03 61 01 2e 20 00 00 00
-FDE[58]: cie_offset = 2008, cie_index = 4, fde_offset = 260
-FDE[58]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 61 2e 10 03 61 01 2e 20 00 00 00
-FDE[59]: low_pc = 0x804d730, length = 238
-FDE[59]: bytes = 24 00 00 00 30 01 00 00 30 d7 04 08 ee 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 61 2e 10 02 8f 2e 20
-FDE[59]: cie_offset = 2008, cie_index = 4, fde_offset = 304
-FDE[59]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 41 86 04 41 83 05 61 2e 10 02 8f 2e 20
-FDE[60]: low_pc = 0x804e220, length = 73
-FDE[60]: bytes = 20 00 00 00 58 01 00 00 20 e2 04 08 49 00 00 00 41 0e 08 85 02 42 0d 05 41 87 03 44 86 04 74 2e 20 00 00 00
-FDE[60]: cie_offset = 2008, cie_index = 4, fde_offset = 344
-FDE[60]: instructions = 41 0e 08 85 02 42 0d 05 41 87 03 44 86 04 74 2e 20 00 00 00
-no FDE at 8048400
-no FDE at 804842c
-no FDE at 8048454
-no FDE at 8048455
-FDE[@80493fc]: cie_offset = 0, cie_index = 0, fde_offset = 28
-EOF
-
-rm -f testfile3 testfile4 show-ciefde.out
-
-exit 0
diff --git a/tests/run-show-die-info.sh b/tests/run-show-die-info.sh
deleted file mode 100644
index 04263268..00000000
--- a/tests/run-show-die-info.sh
+++ /dev/null
@@ -1,988 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1999, 2000, 2002, 2003, 2004 Red Hat, Inc.
-# Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-#
-# This program is Open Source software; you can redistribute it and/or
-# modify it under the terms of the Open Software License version 1.0 as
-# published by the Open Source Initiative.
-#
-# You should have received a copy of the Open Software License along
-# with this program; if not, you may obtain a copy of the Open Software
-# License version 1.0 from http://www.opensource.org/licenses/osl.php or
-# by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-# 3001 King Ranch Road, Ukiah, CA 95482.
-set -e
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile5.bz2 > testfile5 2>/dev/null || exit 0
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile2.bz2 > testfile2 2>/dev/null || exit 0
-
-./show-die-info testfile5 testfile2 > show-die-info.out
-
-diff -u show-die-info.out - <<"EOF"
-file: testfile5
-New CU: off = 0, hsize = 11, ab = 0, as = 4, os = 4
- DW_TAG_compile_unit
- Name : b.c
- Offset : 11
- CU offset : 11
- Attrs : name stmt_list low_pc high_pc language comp_dir producer
- low PC : 0x804842c
- high PC : 0x8048436
- language : 1
- directory : /home/drepper/gnu/new-bu/build/ttt
- producer : GNU C 2.96 20000731 (Red Hat Linux 7.0)
- DW_TAG_subprogram
- Name : bar
- Offset : 104
- CU offset : 104
- Attrs : name low_pc high_pc prototyped decl_file decl_line external frame_base type
- low PC : 0x804842c
- high PC : 0x8048436
- DW_TAG_base_type
- Name : int
- Offset : 127
- CU offset : 127
- Attrs : name byte_size encoding
- byte size : 4
-New CU: off = 135, hsize = 11, ab = 54, as = 4, os = 4
- DW_TAG_compile_unit
- Name : f.c
- Offset : 146
- CU offset : 11
- Attrs : name stmt_list low_pc high_pc language comp_dir producer
- low PC : 0x8048438
- high PC : 0x8048442
- language : 1
- directory : /home/drepper/gnu/new-bu/build/ttt
- producer : GNU C 2.96 20000731 (Red Hat Linux 7.0)
- DW_TAG_subprogram
- Name : foo
- Offset : 239
- CU offset : 104
- Attrs : name low_pc high_pc prototyped decl_file decl_line external frame_base type
- low PC : 0x8048438
- high PC : 0x8048442
- DW_TAG_base_type
- Name : int
- Offset : 262
- CU offset : 127
- Attrs : name byte_size encoding
- byte size : 4
-New CU: off = 270, hsize = 11, ab = 108, as = 4, os = 4
- DW_TAG_compile_unit
- Name : m.c
- Offset : 281
- CU offset : 11
- Attrs : name stmt_list low_pc high_pc language comp_dir producer
- low PC : 0x8048444
- high PC : 0x8048472
- language : 1
- directory : /home/drepper/gnu/new-bu/build/ttt
- producer : GNU C 2.96 20000731 (Red Hat Linux 7.0)
- DW_TAG_subprogram
- Name : main
- Offset : 374
- CU offset : 104
- Attrs : sibling name low_pc high_pc prototyped decl_file decl_line external frame_base type
- low PC : 0x8048444
- high PC : 0x8048472
- DW_TAG_subprogram
- Name : bar
- Offset : 402
- CU offset : 132
- Attrs : sibling name decl_file decl_line declaration external type
- DW_TAG_unspecified_parameters
- Name : * NO NAME *
- Offset : 419
- CU offset : 149
- Attrs :
- DW_TAG_subprogram
- Name : foo
- Offset : 421
- CU offset : 151
- Attrs : name decl_file decl_line declaration external type
- DW_TAG_unspecified_parameters
- Name : * NO NAME *
- Offset : 434
- CU offset : 164
- Attrs :
- DW_TAG_base_type
- Name : int
- Offset : 437
- CU offset : 167
- Attrs : name byte_size encoding
- byte size : 4
- DW_TAG_variable
- Name : a
- Offset : 444
- CU offset : 174
- Attrs : location name decl_file decl_line external type
-file: testfile2
-New CU: off = 0, hsize = 11, ab = 0, as = 4, os = 4
- DW_TAG_compile_unit
- Name : b.c
- Offset : 11
- CU offset : 11
- Attrs : name stmt_list low_pc high_pc language comp_dir producer
- low PC : 0x10000470
- high PC : 0x10000490
- language : 1
- directory : /shoggoth/drepper
- producer : GNU C 2.96-laurel-000912
- DW_TAG_subprogram
- Name : bar
- Offset : 72
- CU offset : 72
- Attrs : name low_pc high_pc prototyped decl_file decl_line external frame_base type
- low PC : 0x10000470
- high PC : 0x10000490
- DW_TAG_base_type
- Name : int
- Offset : 95
- CU offset : 95
- Attrs : name byte_size encoding
- byte size : 4
- DW_TAG_typedef
- Name : size_t
- Offset : 102
- CU offset : 102
- Attrs : name decl_file decl_line type
- DW_TAG_base_type
- Name : unsigned int
- Offset : 116
- CU offset : 116
- Attrs : name byte_size encoding
- byte size : 4
- DW_TAG_typedef
- Name : __gnuc_va_list
- Offset : 132
- CU offset : 132
- Attrs : name decl_file decl_line type
- DW_TAG_array_type
- Name : __builtin_va_list
- Offset : 154
- CU offset : 154
- Attrs : sibling name type
- DW_TAG_subrange_type
- Name : * NO NAME *
- Offset : 181
- CU offset : 181
- Attrs : upper_bound type
- DW_TAG_base_type
- Name : unsigned int
- Offset : 188
- CU offset : 188
- Attrs : name byte_size encoding
- byte size : 4
- DW_TAG_structure_type
- Name : __va_list_tag
- Offset : 204
- CU offset : 204
- Attrs : sibling name byte_size decl_file decl_line
- byte size : 12
- DW_TAG_member
- Name : gpr
- Offset : 226
- CU offset : 226
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : fpr
- Offset : 240
- CU offset : 240
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : overflow_arg_area
- Offset : 254
- CU offset : 254
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : reg_save_area
- Offset : 282
- CU offset : 282
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_base_type
- Name : unsigned char
- Offset : 307
- CU offset : 307
- Attrs : name byte_size encoding
- byte size : 1
- DW_TAG_pointer_type
- Name : * NO NAME *
- Offset : 324
- CU offset : 324
- Attrs : byte_size
- byte size : 4
- DW_TAG_typedef
- Name : __u_char
- Offset : 326
- CU offset : 326
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __u_short
- Offset : 342
- CU offset : 342
- Attrs : name decl_file decl_line type
- DW_TAG_base_type
- Name : short unsigned int
- Offset : 359
- CU offset : 359
- Attrs : name byte_size encoding
- byte size : 2
- DW_TAG_typedef
- Name : __u_int
- Offset : 381
- CU offset : 381
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __u_long
- Offset : 396
- CU offset : 396
- Attrs : name decl_file decl_line type
- DW_TAG_base_type
- Name : long unsigned int
- Offset : 412
- CU offset : 412
- Attrs : name byte_size encoding
- byte size : 4
- DW_TAG_typedef
- Name : __u_quad_t
- Offset : 433
- CU offset : 433
- Attrs : name decl_file decl_line type
- DW_TAG_base_type
- Name : long long unsigned int
- Offset : 451
- CU offset : 451
- Attrs : name byte_size encoding
- byte size : 8
- DW_TAG_typedef
- Name : __quad_t
- Offset : 477
- CU offset : 477
- Attrs : name decl_file decl_line type
- DW_TAG_base_type
- Name : long long int
- Offset : 493
- CU offset : 493
- Attrs : name byte_size encoding
- byte size : 8
- DW_TAG_typedef
- Name : __int8_t
- Offset : 510
- CU offset : 510
- Attrs : name decl_file decl_line type
- DW_TAG_base_type
- Name : signed char
- Offset : 526
- CU offset : 526
- Attrs : name byte_size encoding
- byte size : 1
- DW_TAG_typedef
- Name : __uint8_t
- Offset : 541
- CU offset : 541
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __int16_t
- Offset : 558
- CU offset : 558
- Attrs : name decl_file decl_line type
- DW_TAG_base_type
- Name : short int
- Offset : 575
- CU offset : 575
- Attrs : name byte_size encoding
- byte size : 2
- DW_TAG_typedef
- Name : __uint16_t
- Offset : 588
- CU offset : 588
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __int32_t
- Offset : 606
- CU offset : 606
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __uint32_t
- Offset : 623
- CU offset : 623
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __int64_t
- Offset : 641
- CU offset : 641
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __uint64_t
- Offset : 658
- CU offset : 658
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __qaddr_t
- Offset : 676
- CU offset : 676
- Attrs : name decl_file decl_line type
- DW_TAG_pointer_type
- Name : * NO NAME *
- Offset : 693
- CU offset : 693
- Attrs : byte_size type
- byte size : 4
- DW_TAG_typedef
- Name : __dev_t
- Offset : 699
- CU offset : 699
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __uid_t
- Offset : 714
- CU offset : 714
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __gid_t
- Offset : 729
- CU offset : 729
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __ino_t
- Offset : 744
- CU offset : 744
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __mode_t
- Offset : 759
- CU offset : 759
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __nlink_t
- Offset : 775
- CU offset : 775
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __off_t
- Offset : 792
- CU offset : 792
- Attrs : name decl_file decl_line type
- DW_TAG_base_type
- Name : long int
- Offset : 807
- CU offset : 807
- Attrs : name byte_size encoding
- byte size : 4
- DW_TAG_typedef
- Name : __loff_t
- Offset : 819
- CU offset : 819
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __pid_t
- Offset : 835
- CU offset : 835
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __ssize_t
- Offset : 850
- CU offset : 850
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __rlim_t
- Offset : 867
- CU offset : 867
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __rlim64_t
- Offset : 883
- CU offset : 883
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __id_t
- Offset : 901
- CU offset : 901
- Attrs : name decl_file decl_line type
- DW_TAG_structure_type
- Name : * NO NAME *
- Offset : 915
- CU offset : 915
- Attrs : sibling byte_size decl_file decl_line
- byte size : 8
- DW_TAG_member
- Name : __val
- Offset : 923
- CU offset : 923
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_array_type
- Name : * NO NAME *
- Offset : 940
- CU offset : 940
- Attrs : sibling type
- DW_TAG_subrange_type
- Name : * NO NAME *
- Offset : 949
- CU offset : 949
- Attrs : upper_bound type
- DW_TAG_typedef
- Name : __fsid_t
- Offset : 956
- CU offset : 956
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __daddr_t
- Offset : 972
- CU offset : 972
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __caddr_t
- Offset : 989
- CU offset : 989
- Attrs : name decl_file decl_line type
- DW_TAG_pointer_type
- Name : * NO NAME *
- Offset : 1006
- CU offset : 1006
- Attrs : byte_size type
- byte size : 4
- DW_TAG_base_type
- Name : char
- Offset : 1012
- CU offset : 1012
- Attrs : name byte_size encoding
- byte size : 1
- DW_TAG_typedef
- Name : __time_t
- Offset : 1020
- CU offset : 1020
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __swblk_t
- Offset : 1036
- CU offset : 1036
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __clock_t
- Offset : 1053
- CU offset : 1053
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __fd_mask
- Offset : 1070
- CU offset : 1070
- Attrs : name decl_file decl_line type
- DW_TAG_structure_type
- Name : * NO NAME *
- Offset : 1087
- CU offset : 1087
- Attrs : sibling byte_size decl_file decl_line
- byte size : 128
- DW_TAG_member
- Name : __fds_bits
- Offset : 1095
- CU offset : 1095
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_array_type
- Name : * NO NAME *
- Offset : 1117
- CU offset : 1117
- Attrs : sibling type
- DW_TAG_subrange_type
- Name : * NO NAME *
- Offset : 1126
- CU offset : 1126
- Attrs : upper_bound type
- DW_TAG_typedef
- Name : __fd_set
- Offset : 1133
- CU offset : 1133
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __key_t
- Offset : 1149
- CU offset : 1149
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __ipc_pid_t
- Offset : 1164
- CU offset : 1164
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __blkcnt_t
- Offset : 1183
- CU offset : 1183
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __blkcnt64_t
- Offset : 1201
- CU offset : 1201
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __fsblkcnt_t
- Offset : 1221
- CU offset : 1221
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __fsblkcnt64_t
- Offset : 1241
- CU offset : 1241
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __fsfilcnt_t
- Offset : 1263
- CU offset : 1263
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __fsfilcnt64_t
- Offset : 1283
- CU offset : 1283
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __ino64_t
- Offset : 1305
- CU offset : 1305
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __off64_t
- Offset : 1322
- CU offset : 1322
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __t_scalar_t
- Offset : 1339
- CU offset : 1339
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __t_uscalar_t
- Offset : 1359
- CU offset : 1359
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : __intptr_t
- Offset : 1380
- CU offset : 1380
- Attrs : name decl_file decl_line type
- DW_TAG_structure_type
- Name : _IO_FILE
- Offset : 1398
- CU offset : 1398
- Attrs : sibling name byte_size decl_file decl_line
- byte size : 152
- DW_TAG_member
- Name : _flags
- Offset : 1415
- CU offset : 1415
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _IO_read_ptr
- Offset : 1432
- CU offset : 1432
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _IO_read_end
- Offset : 1455
- CU offset : 1455
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _IO_read_base
- Offset : 1478
- CU offset : 1478
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _IO_write_base
- Offset : 1502
- CU offset : 1502
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _IO_write_ptr
- Offset : 1527
- CU offset : 1527
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _IO_write_end
- Offset : 1551
- CU offset : 1551
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _IO_buf_base
- Offset : 1575
- CU offset : 1575
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _IO_buf_end
- Offset : 1598
- CU offset : 1598
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _IO_save_base
- Offset : 1620
- CU offset : 1620
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _IO_backup_base
- Offset : 1644
- CU offset : 1644
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _IO_save_end
- Offset : 1670
- CU offset : 1670
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _markers
- Offset : 1693
- CU offset : 1693
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _chain
- Offset : 1712
- CU offset : 1712
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _fileno
- Offset : 1729
- CU offset : 1729
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _blksize
- Offset : 1747
- CU offset : 1747
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _old_offset
- Offset : 1766
- CU offset : 1766
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _cur_column
- Offset : 1788
- CU offset : 1788
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _vtable_offset
- Offset : 1810
- CU offset : 1810
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _shortbuf
- Offset : 1835
- CU offset : 1835
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _lock
- Offset : 1855
- CU offset : 1855
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _offset
- Offset : 1871
- CU offset : 1871
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _unused2
- Offset : 1889
- CU offset : 1889
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_structure_type
- Name : _IO_marker
- Offset : 1909
- CU offset : 1909
- Attrs : sibling name byte_size decl_file decl_line
- byte size : 12
- DW_TAG_member
- Name : _next
- Offset : 1928
- CU offset : 1928
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _sbuf
- Offset : 1944
- CU offset : 1944
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_member
- Name : _pos
- Offset : 1960
- CU offset : 1960
- Attrs : name data_member_location decl_file decl_line type
- DW_TAG_pointer_type
- Name : * NO NAME *
- Offset : 1976
- CU offset : 1976
- Attrs : byte_size type
- byte size : 4
- DW_TAG_pointer_type
- Name : * NO NAME *
- Offset : 1982
- CU offset : 1982
- Attrs : byte_size type
- byte size : 4
- DW_TAG_array_type
- Name : * NO NAME *
- Offset : 1988
- CU offset : 1988
- Attrs : sibling type
- DW_TAG_subrange_type
- Name : * NO NAME *
- Offset : 1997
- CU offset : 1997
- Attrs : upper_bound type
- DW_TAG_pointer_type
- Name : * NO NAME *
- Offset : 2004
- CU offset : 2004
- Attrs : byte_size
- byte size : 4
- DW_TAG_array_type
- Name : * NO NAME *
- Offset : 2006
- CU offset : 2006
- Attrs : sibling type
- DW_TAG_subrange_type
- Name : * NO NAME *
- Offset : 2015
- CU offset : 2015
- Attrs : upper_bound type
- DW_TAG_typedef
- Name : FILE
- Offset : 2022
- CU offset : 2022
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : wchar_t
- Offset : 2034
- CU offset : 2034
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : wint_t
- Offset : 2050
- CU offset : 2050
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : _G_int16_t
- Offset : 2065
- CU offset : 2065
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : _G_int32_t
- Offset : 2083
- CU offset : 2083
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : _G_uint16_t
- Offset : 2101
- CU offset : 2101
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : _G_uint32_t
- Offset : 2120
- CU offset : 2120
- Attrs : name decl_file decl_line type
- DW_TAG_structure_type
- Name : _IO_jump_t
- Offset : 2139
- CU offset : 2139
- Attrs : name declaration
- DW_TAG_typedef
- Name : _IO_lock_t
- Offset : 2152
- CU offset : 2152
- Attrs : name decl_file decl_line
- DW_TAG_typedef
- Name : _IO_FILE
- Offset : 2166
- CU offset : 2166
- Attrs : name decl_file decl_line type
- DW_TAG_structure_type
- Name : _IO_FILE_plus
- Offset : 2182
- CU offset : 2182
- Attrs : name declaration
- DW_TAG_typedef
- Name : __io_read_fn
- Offset : 2198
- CU offset : 2198
- Attrs : name decl_file decl_line type
- DW_TAG_subroutine_type
- Name : * NO NAME *
- Offset : 2219
- CU offset : 2219
- Attrs : sibling prototyped type
- DW_TAG_formal_parameter
- Name : * NO NAME *
- Offset : 2229
- CU offset : 2229
- Attrs : type
- DW_TAG_formal_parameter
- Name : * NO NAME *
- Offset : 2234
- CU offset : 2234
- Attrs : type
- DW_TAG_formal_parameter
- Name : * NO NAME *
- Offset : 2239
- CU offset : 2239
- Attrs : type
- DW_TAG_typedef
- Name : __io_write_fn
- Offset : 2245
- CU offset : 2245
- Attrs : name decl_file decl_line type
- DW_TAG_subroutine_type
- Name : * NO NAME *
- Offset : 2267
- CU offset : 2267
- Attrs : sibling prototyped type
- DW_TAG_formal_parameter
- Name : * NO NAME *
- Offset : 2277
- CU offset : 2277
- Attrs : type
- DW_TAG_formal_parameter
- Name : * NO NAME *
- Offset : 2282
- CU offset : 2282
- Attrs : type
- DW_TAG_formal_parameter
- Name : * NO NAME *
- Offset : 2287
- CU offset : 2287
- Attrs : type
- DW_TAG_pointer_type
- Name : * NO NAME *
- Offset : 2293
- CU offset : 2293
- Attrs : byte_size type
- byte size : 4
- DW_TAG_const_type
- Name : * NO NAME *
- Offset : 2299
- CU offset : 2299
- Attrs : type
- DW_TAG_typedef
- Name : __io_seek_fn
- Offset : 2304
- CU offset : 2304
- Attrs : name decl_file decl_line type
- DW_TAG_subroutine_type
- Name : * NO NAME *
- Offset : 2325
- CU offset : 2325
- Attrs : sibling prototyped type
- DW_TAG_formal_parameter
- Name : * NO NAME *
- Offset : 2335
- CU offset : 2335
- Attrs : type
- DW_TAG_formal_parameter
- Name : * NO NAME *
- Offset : 2340
- CU offset : 2340
- Attrs : type
- DW_TAG_formal_parameter
- Name : * NO NAME *
- Offset : 2345
- CU offset : 2345
- Attrs : type
- DW_TAG_typedef
- Name : __io_close_fn
- Offset : 2351
- CU offset : 2351
- Attrs : name decl_file decl_line type
- DW_TAG_subroutine_type
- Name : * NO NAME *
- Offset : 2373
- CU offset : 2373
- Attrs : sibling prototyped type
- DW_TAG_formal_parameter
- Name : * NO NAME *
- Offset : 2383
- CU offset : 2383
- Attrs : type
- DW_TAG_typedef
- Name : fpos_t
- Offset : 2389
- CU offset : 2389
- Attrs : name decl_file decl_line type
- DW_TAG_typedef
- Name : off_t
- Offset : 2403
- CU offset : 2403
- Attrs : name decl_file decl_line type
-New CU: off = 2418, hsize = 11, ab = 213, as = 4, os = 4
- DW_TAG_compile_unit
- Name : f.c
- Offset : 2429
- CU offset : 11
- Attrs : name stmt_list low_pc high_pc language comp_dir producer
- low PC : 0x10000490
- high PC : 0x100004b0
- language : 1
- directory : /shoggoth/drepper
- producer : GNU C 2.96-laurel-000912
- DW_TAG_subprogram
- Name : foo
- Offset : 2490
- CU offset : 72
- Attrs : name low_pc high_pc prototyped decl_file decl_line external frame_base type
- low PC : 0x10000490
- high PC : 0x100004b0
- DW_TAG_base_type
- Name : int
- Offset : 2513
- CU offset : 95
- Attrs : name byte_size encoding
- byte size : 4
-New CU: off = 2521, hsize = 11, ab = 267, as = 4, os = 4
- DW_TAG_compile_unit
- Name : m.c
- Offset : 2532
- CU offset : 11
- Attrs : name stmt_list low_pc high_pc language comp_dir producer
- low PC : 0x100004b0
- high PC : 0x10000514
- language : 1
- directory : /shoggoth/drepper
- producer : GNU C 2.96-laurel-000912
- DW_TAG_subprogram
- Name : main
- Offset : 2593
- CU offset : 72
- Attrs : sibling name low_pc high_pc prototyped decl_file decl_line external frame_base type
- low PC : 0x100004b0
- high PC : 0x10000514
- DW_TAG_subprogram
- Name : bar
- Offset : 2621
- CU offset : 100
- Attrs : sibling name decl_file decl_line declaration external type
- DW_TAG_unspecified_parameters
- Name : * NO NAME *
- Offset : 2638
- CU offset : 117
- Attrs :
- DW_TAG_subprogram
- Name : foo
- Offset : 2640
- CU offset : 119
- Attrs : name decl_file decl_line declaration external type
- DW_TAG_unspecified_parameters
- Name : * NO NAME *
- Offset : 2653
- CU offset : 132
- Attrs :
- DW_TAG_base_type
- Name : int
- Offset : 2656
- CU offset : 135
- Attrs : name byte_size encoding
- byte size : 4
- DW_TAG_variable
- Name : a
- Offset : 2663
- CU offset : 142
- Attrs : location name decl_file decl_line external type
-EOF
-
-rm -f testfile2 testfile5 show-die-info.out
-
-exit 0
diff --git a/tests/run-strip-test.sh b/tests/run-strip-test.sh
deleted file mode 100644
index aab37f48..00000000
--- a/tests/run-strip-test.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1999, 2000, 2002, 2003 Red Hat, Inc.
-# Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-#
-# This program is Open Source software; you can redistribute it and/or
-# modify it under the terms of the Open Software License version 1.0 as
-# published by the Open Source Initiative.
-#
-# You should have received a copy of the Open Software License along
-# with this program; if not, you may obtain a copy of the Open Software
-# License version 1.0 from http://www.opensource.org/licenses/osl.php or
-# by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-# 3001 King Ranch Road, Ukiah, CA 95482.
-set -e
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile11.bz2 > testfile11 2>/dev/null || exit 0
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile7.bz2 > testfile7 2>/dev/null || exit 0
-
-LD_LIBRARY_PATH=../libebl:../libelf${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH \
- ../src/strip -o testfile.temp testfile11
-
-cmp testfile7 testfile.temp
-
-# Check elflint and the expected result.
-LD_LIBRARY_PATH=../libebl:../libelf${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH \
- ../src/elflint -q testfile.temp
-
-rm -f testfile11 testfile7 testfile.temp
-
-exit 0
diff --git a/tests/run-strip-test2.sh b/tests/run-strip-test2.sh
deleted file mode 100644
index f385a865..00000000
--- a/tests/run-strip-test2.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1999, 2000, 2002 Red Hat, Inc.
-# Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-#
-# This program is Open Source software; you can redistribute it and/or
-# modify it under the terms of the Open Software License version 1.0 as
-# published by the Open Source Initiative.
-#
-# You should have received a copy of the Open Software License along
-# with this program; if not, you may obtain a copy of the Open Software
-# License version 1.0 from http://www.opensource.org/licenses/osl.php or
-# by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-# 3001 King Ranch Road, Ukiah, CA 95482.
-set -e
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile8.bz2 > testfile8 2>/dev/null || exit 0
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile9.bz2 > testfile9 2>/dev/null || exit 0
-
-LD_LIBRARY_PATH=../libebl:../libelf${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH \
- ../src/strip -o testfile.temp testfile8
-
-cmp testfile9 testfile.temp
-
-# Check elflint and the expected result.
-LD_LIBRARY_PATH=../libebl:../libelf${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH \
- ../src/elflint -q testfile.temp
-
-rm -f testfile8 testfile9 testfile.temp
-
-exit 0
diff --git a/tests/run-strip-test3.sh b/tests/run-strip-test3.sh
deleted file mode 100644
index 5ff4a5a9..00000000
--- a/tests/run-strip-test3.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1999, 2000, 2002, 2003 Red Hat, Inc.
-# Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-#
-# This program is Open Source software; you can redistribute it and/or
-# modify it under the terms of the Open Software License version 1.0 as
-# published by the Open Source Initiative.
-#
-# You should have received a copy of the Open Software License along
-# with this program; if not, you may obtain a copy of the Open Software
-# License version 1.0 from http://www.opensource.org/licenses/osl.php or
-# by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-# 3001 King Ranch Road, Ukiah, CA 95482.
-set -e
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile12.bz2 > testfile12 2>/dev/null || exit 0
-
-# Don't fail if we cannot decompress the file.
-bunzip2 -c $srcdir/testfile13.bz2 > testfile13 2>/dev/null || exit 0
-
-LD_LIBRARY_PATH=../libebl:../libelf${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH \
- ../src/strip -o testfile.temp testfile12
-
-cmp testfile13 testfile.temp
-
-# Check elflint and the expected result.
-LD_LIBRARY_PATH=../libebl:../libelf${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH \
- ../src/elflint -q testfile.temp
-
-rm -f testfile12 testfile13 testfile.temp
-
-exit 0
diff --git a/tests/saridx.c b/tests/saridx.c
deleted file mode 100644
index 4abc892f..00000000
--- a/tests/saridx.c
+++ /dev/null
@@ -1,253 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <config.h>
-
-#include <error.h>
-#include <fcntl.h>
-#include <gelf.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-
-
-static const char *machines[] =
-{
-#define MACHINE(name) [name] = #name
- MACHINE (EM_NONE),
- MACHINE (EM_M32),
- MACHINE (EM_SPARC),
- MACHINE (EM_386),
- MACHINE (EM_68K),
- MACHINE (EM_88K),
- MACHINE (EM_860),
- MACHINE (EM_MIPS),
- MACHINE (EM_MIPS_RS3_LE),
- MACHINE (EM_PARISC),
- MACHINE (EM_VPP500),
- MACHINE (EM_SPARC32PLUS),
- MACHINE (EM_960),
- MACHINE (EM_PPC),
- MACHINE (EM_PPC64),
- MACHINE (EM_V800),
- MACHINE (EM_FR20),
- MACHINE (EM_RH32),
- MACHINE (EM_RCE),
- MACHINE (EM_ARM),
- MACHINE (EM_FAKE_ALPHA),
- MACHINE (EM_SH),
- MACHINE (EM_SPARCV9),
- MACHINE (EM_TRICORE),
- MACHINE (EM_ARC),
- MACHINE (EM_H8_300),
- MACHINE (EM_H8_300H),
- MACHINE (EM_H8S),
- MACHINE (EM_H8_500),
- MACHINE (EM_IA_64),
- MACHINE (EM_MIPS_X),
- MACHINE (EM_COLDFIRE),
- MACHINE (EM_68HC12),
- MACHINE (EM_MMA),
- MACHINE (EM_PCP),
- MACHINE (EM_NCPU),
- MACHINE (EM_NDR1),
- MACHINE (EM_STARCORE),
- MACHINE (EM_ME16),
- MACHINE (EM_ST100),
- MACHINE (EM_TINYJ),
- MACHINE (EM_FX66),
- MACHINE (EM_ST9PLUS),
- MACHINE (EM_ST7),
- MACHINE (EM_68HC16),
- MACHINE (EM_68HC11),
- MACHINE (EM_68HC08),
- MACHINE (EM_68HC05),
- MACHINE (EM_SVX),
- MACHINE (EM_ST19),
- MACHINE (EM_VAX)
-};
-
-
-int
-main (int argc, char *argv[])
-{
- int fd;
- Elf *elf;
- Elf_Cmd cmd;
- size_t n;
- int arg = 1;
- int verbose = 0;
-
- /* Recognize optional verbosity flag. */
- if (arg < argc && strcmp (argv[arg], "-v") == 0)
- {
- verbose = 1;
- ++arg;
- }
-
- /* Any more arguments available. */
- if (arg >= argc)
- error (EXIT_FAILURE, 0, "No input file given");
-
- /* Open the input file. */
- fd = open (argv[arg], O_RDONLY);
- if (fd == -1)
- {
- perror ("cannot open input file");
- exit (1);
- }
-
- /* Set the ELF version we are using here. */
- if (elf_version (EV_CURRENT) == EV_NONE)
- {
- puts ("ELF library too old");
- exit (1);
- }
-
- /* Start reading the file. */
- cmd = ELF_C_READ;
- elf = elf_begin (fd, cmd, NULL);
- if (elf == NULL)
- {
- printf ("elf_begin: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* If it is no archive punt. */
- if (elf_kind (elf) != ELF_K_AR)
- {
- printf ("%s is not an archive\n", argv[1]);
- exit (1);
- }
-
- if (verbose)
- {
- /* The verbose variant. We print a lot of information. */
- Elf *subelf;
- char buf[100];
- time_t t;
-
- /* Get the elements of the archive one after the other. */
- while ((subelf = elf_begin (fd, cmd, elf)) != NULL)
- {
- /* The the header for this element. */
- Elf_Arhdr *arhdr = elf_getarhdr (subelf);
-
- if (arhdr == NULL)
- {
- printf ("cannot get arhdr: %s\n", elf_errmsg (-1));
- break;
- }
-
- switch (elf_kind (subelf))
- {
- case ELF_K_ELF:
- fputs ("ELF file:\n", stdout);
- break;
-
- case ELF_K_AR:
- fputs ("archive:\n", stdout);
- break;
-
- default:
- fputs ("unknown file:\n", stdout);
- break;
- }
-
- /* Print general information. */
- t = arhdr->ar_date;
- strftime (buf, sizeof buf, "%Y-%m-%dT%H:%M:%S%z", gmtime (&t));
- printf (" name : \"%s\"\n"
- " time : %s\n"
- " uid : %ld\n"
- " gid : %ld\n"
- " mode : %o\n"
- " size : %ld\n"
- " rawname : \"%s\"\n",
- arhdr->ar_name,
- buf,
- (long int) arhdr->ar_uid,
- (long int) arhdr->ar_gid,
- arhdr->ar_mode,
- (long int) arhdr->ar_size,
- arhdr->ar_rawname);
-
- /* For ELF files we can provide some more information. */
- if (elf_kind (subelf) == ELF_K_ELF)
- {
- GElf_Ehdr ehdr;
-
- /* Get the ELF header. */
- if (gelf_getehdr (subelf, &ehdr) == NULL)
- printf (" *** cannot get ELF header: %s\n", elf_errmsg (-1));
- else
- {
- printf (" binary class : %s\n",
- ehdr.e_ident[EI_CLASS] == ELFCLASS32
- ? "ELFCLASS32" : "ELFCLASS64");
- printf (" data encoding: %s\n",
- ehdr.e_ident[EI_DATA] == ELFDATA2LSB
- ? "ELFDATA2LSB" : "ELFDATA2MSB");
- printf (" binary type : %s\n",
- ehdr.e_type == ET_REL
- ? "relocatable"
- : (ehdr.e_type == ET_EXEC
- ? "executable"
- : (ehdr.e_type == ET_DYN
- ? "dynamic"
- : "core file")));
- printf (" machine : %s\n",
- (ehdr.e_machine >= (sizeof (machines)
- / sizeof (machines[0]))
- || machines[ehdr.e_machine] == NULL)
- ? "???"
- : machines[ehdr.e_machine]);
- }
- }
-
- /* Get next archive element. */
- cmd = elf_next (subelf);
- if (elf_end (subelf) != 0)
- printf ("error while freeing sub-ELF descriptor: %s\n",
- elf_errmsg (-1));
- }
- }
- else
- {
- /* The simple version. Only print a bit of information. */
- Elf_Arsym *arsym = elf_getarsym (elf, &n);
-
- if (n == 0)
- printf ("no symbol table in archive: %s\n", elf_errmsg (-1));
- else
- {
- --n;
-
- while (n-- > 0)
- printf ("name = \"%s\", offset = %ld, hash = %lx\n",
- arsym[n].as_name, (long int) arsym[n].as_off,
- arsym[n].as_hash);
- }
- }
-
- /* Free the ELF handle. */
- if (elf_end (elf) != 0)
- printf ("error while freeing ELF descriptor: %s\n", elf_errmsg (-1));
-
- /* Close the underlying file. */
- close (fd);
-
- return 0;
-}
diff --git a/tests/scnnames.c b/tests/scnnames.c
deleted file mode 100644
index de30312e..00000000
--- a/tests/scnnames.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <config.h>
-
-#include <errno.h>
-#include <fcntl.h>
-#include <gelf.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-int
-main (int argc, char *argv[])
-{
- Elf *elf;
- int fd;
- GElf_Ehdr ehdr;
- size_t strndx;
- Elf_Scn *scn;
-
- fd = open (argv[1], O_RDONLY);
- if (fd == -1)
- {
- printf ("cannot open \"%s\": %s\n", argv[1], strerror (errno));
- exit (1);
- }
-
- elf_version (EV_CURRENT);
-
- elf = elf_begin (fd, ELF_C_READ, NULL);
- if (elf == NULL)
- {
- printf ("cannot open ELF file: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- if (elf_kind (elf) != ELF_K_ELF)
- {
- printf ("\"%s\" is not an ELF file\n", argv[1]);
- exit (1);
- }
-
- if (gelf_getehdr (elf, &ehdr) == NULL)
- {
- printf ("cannot get the ELF header: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- strndx = ehdr.e_shstrndx;
-
- scn = NULL;
- while ((scn = elf_nextscn (elf, scn)) != NULL)
- {
- char *name = NULL;
- GElf_Shdr shdr;
-
- if (gelf_getshdr (scn, &shdr) != NULL)
- name = elf_strptr (elf, strndx, (size_t) shdr.sh_name);
-
- printf ("section: `%s'\n", name);
- }
-
- if (elf_end (elf) != 0)
- {
- printf ("error while freeing ELF descriptor: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- return 0;
-}
diff --git a/tests/sectiondump.c b/tests/sectiondump.c
deleted file mode 100644
index f19a2151..00000000
--- a/tests/sectiondump.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <config.h>
-
-#include <errno.h>
-#include <error.h>
-#include <fcntl.h>
-#include <gelf.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-/* Prototypes for local functions. */
-static int handle_section (Elf *elf, Elf_Scn *scn);
-static void print_bytes (Elf_Data *data);
-static void print_symtab (Elf *elf, Elf_Data *data);
-
-
-int
-main (int argc, char *argv[])
-{
- Elf *elf;
- int fd;
- int cnt;
-
- if (argc <= 1)
- exit (1);
-
- /* Open the test file. This is given as the first parameter to the
- program. */
- fd = open (argv[1], O_RDONLY);
- if (fd == -1)
- error (EXIT_FAILURE, errno, "cannot open input file `%s'", argv[1]);
-
- /* Set the library versio we expect. */
- elf_version (EV_CURRENT);
-
- /* Create the ELF descriptor. */
- elf = elf_begin (fd, ELF_C_READ, NULL);
- if (elf == NULL)
- error (EXIT_FAILURE, 0, "cannot create ELF descriptor: %s",
- elf_errmsg (0));
-
- /* Now proces all the sections mentioned in the rest of the command line. */
- for (cnt = 2; cnt < argc; ++cnt)
- if (handle_section (elf, elf_getscn (elf, atoi (argv[cnt]))) != 0)
- /* When we encounter an error stop immediately. */
- error (EXIT_FAILURE, 0, "while processing section %d: %s", cnt,
- elf_errmsg (0));
-
- /* Close the descriptor. */
- if (elf_end (elf) != 0)
- error (EXIT_FAILURE, 0, "failure while closing ELF descriptor: %s",
- elf_errmsg (0));
-
- return 0;
-}
-
-
-static int
-handle_section (Elf *elf, Elf_Scn *scn)
-{
- GElf_Ehdr *ehdr;
- GElf_Ehdr ehdr_mem;
- GElf_Shdr *shdr;
- GElf_Shdr shdr_mem;
- Elf_Data *data;
-
- /* First get the ELF and section header. */
- ehdr = gelf_getehdr (elf, &ehdr_mem);
- shdr = gelf_getshdr (scn, &shdr_mem);
- if (ehdr == NULL || shdr == NULL)
- return 1;
-
- /* Print the information from the ELF section header. */
- printf ("name = %s\n"
- "type = %" PRId32 "\n"
- "flags = %" PRIx64 "\n"
- "addr = %" PRIx64 "\n"
- "offset = %" PRIx64 "\n"
- "size = %" PRId64 "\n"
- "link = %" PRId32 "\n"
- "info = %" PRIx32 "\n"
- "addralign = %" PRIx64 "\n"
- "entsize = %" PRId64 "\n",
- elf_strptr (elf, ehdr->e_shstrndx, shdr->sh_name),
- shdr->sh_type,
- shdr->sh_flags,
- shdr->sh_addr,
- shdr->sh_offset,
- shdr->sh_size,
- shdr->sh_link,
- shdr->sh_info,
- shdr->sh_addralign,
- shdr->sh_entsize);
-
- /* Get the section data now. */
- data = elf_getdata (scn, NULL);
- if (data == NULL)
- return 1;
-
- /* Now proces the different section types accordingly. */
- switch (shdr->sh_type)
- {
- case SHT_SYMTAB:
- print_symtab (elf, data);
- break;
-
- case SHT_PROGBITS:
- default:
- print_bytes (data);
- break;
- }
-
- /* Separate form the next section. */
- puts ("");
-
- /* All done correctly. */
- return 0;
-}
-
-
-static void
-print_bytes (Elf_Data *data)
-{
- size_t size = data->d_size;
- off_t offset = data->d_off;
- unsigned char *buf = (unsigned char *) data->d_buf;
- size_t cnt;
-
- for (cnt = 0; cnt < size; cnt += 16)
- {
- size_t inner;
-
- printf ("%*Zx: ", sizeof (size_t) == 4 ? 8 : 16, (size_t) offset + cnt);
-
- for (inner = 0; inner < 16 && cnt + inner < size; ++inner)
- printf (" %02hhx", buf[cnt + inner]);
-
- puts ("");
- }
-}
-
-
-static void
-print_symtab (Elf *elf, Elf_Data *data)
-{
- int class = gelf_getclass (elf);
- size_t nsym = data->d_size / (class == ELFCLASS32
- ? sizeof (Elf32_Sym) : sizeof (Elf64_Sym));
- size_t cnt;
-
- for (cnt = 0; cnt < nsym; ++cnt)
- {
- GElf_Sym sym_mem;
- GElf_Sym *sym = gelf_getsym (data, cnt, &sym_mem);
-
- printf ("%5Zu: %*" PRIx64 " %6" PRIx64 " %4d\n",
- cnt,
- class == ELFCLASS32 ? 8 : 16,
- sym->st_value,
- sym->st_size,
- GELF_ST_TYPE (sym->st_info));
- }
-}
diff --git a/tests/show-abbrev.c b/tests/show-abbrev.c
deleted file mode 100644
index 7017932f..00000000
--- a/tests/show-abbrev.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <config.h>
-
-#include <fcntl.h>
-#include <inttypes.h>
-#include <libdw.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-int
-main (int argc, char *argv[])
-{
- int cnt;
-
- for (cnt = 1; cnt < argc; ++cnt)
- {
- int fd = open (argv[cnt], O_RDONLY);
- Dwarf *dbg = dwarf_begin (fd, DWARF_C_READ);
- if (dbg == NULL)
- {
- printf ("%s not usable: %s\n", argv[cnt], dwarf_errmsg (-1));
- close (fd);
- continue;
- }
-
- Dwarf_Off cuoff = 0;
- Dwarf_Off old_cuoff = 0;
- size_t hsize;
- while (dwarf_nextcu (dbg, cuoff, &cuoff, &hsize, NULL, NULL, NULL) == 0)
- {
- /* Get the DIE for the CU. */
- Dwarf_Die die;
- if (dwarf_offdie (dbg, old_cuoff + hsize, &die) == NULL)
- /* Something went wrong. */
- break;
-
- Dwarf_Off offset = 0;
-
- while (1)
- {
- size_t length;
- Dwarf_Abbrev *abbrev = dwarf_getabbrev (&die, offset, &length);
- if (abbrev == NULL)
- /* End of the list. */
- break;
-
- unsigned tag = dwarf_getabbrevtag (abbrev);
- if (tag == 0)
- {
- printf ("dwarf_getabbrevtag at offset %llu returned error: %s\n",
- (unsigned long long int) offset,
- dwarf_errmsg (-1));
- break;
- }
-
- unsigned code = dwarf_getabbrevcode (abbrev);
- if (code == 0)
- {
- printf ("dwarf_getabbrevcode at offset %llu returned error: %s\n",
- (unsigned long long int) offset,
- dwarf_errmsg (-1));
- break;
- }
-
- int children = dwarf_abbrevhaschildren (abbrev);
- if (children < 0)
- {
- printf ("dwarf_abbrevhaschildren at offset %llu returned error: %s\n",
- (unsigned long long int) offset,
- dwarf_errmsg (-1));
- break;
- }
-
- printf ("abbrev[%llu]: code = %u, tag = %u, children = %d\n",
- (unsigned long long int) offset, code, tag, children);
-
- size_t attrcnt;
- if (dwarf_getattrcnt (abbrev, &attrcnt) != 0)
- {
- printf ("dwarf_getattrcnt at offset %llu returned error: %s\n",
- (unsigned long long int) offset,
- dwarf_errmsg (-1));
- break;
- }
-
- unsigned int attr_num;
- unsigned int attr_form;
- Dwarf_Off aboffset;
- size_t j;
- for (j = 0; j < attrcnt; ++j)
- if (dwarf_getabbrevattr (abbrev, j, &attr_num, &attr_form,
- &aboffset))
- printf ("dwarf_getabbrevattr for abbrev[%llu] and index %zu failed\n",
- (unsigned long long int) offset, j);
- else
- printf ("abbrev[%llu]: attr[%zu]: code = %u, form = %u, offset = %" PRIu64 "\n",
- (unsigned long long int) offset, j, attr_num,
- attr_form, (uint64_t) aboffset);
-
- offset += length;
- }
-
- old_cuoff = cuoff;
- }
-
- if (dwarf_end (dbg) != 0)
- printf ("dwarf_end failed for %s: %s\n", argv[cnt],
- dwarf_errmsg (-1));
-
- close (fd);
- }
-
- return 0;
-}
diff --git a/tests/show-die-info.c b/tests/show-die-info.c
deleted file mode 100644
index d4f992f3..00000000
--- a/tests/show-die-info.c
+++ /dev/null
@@ -1,475 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <config.h>
-
-#include <dwarf.h>
-#include <inttypes.h>
-#include <libelf.h>
-#include <libdw.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static const char *tagnames[] =
-{
- [DW_TAG_array_type] = "DW_TAG_array_type",
- [DW_TAG_class_type] = "DW_TAG_class_type",
- [DW_TAG_entry_point] = "DW_TAG_entry_point",
- [DW_TAG_enumeration_type] = "DW_TAG_enumeration_type",
- [DW_TAG_formal_parameter] = "DW_TAG_formal_parameter",
- [DW_TAG_imported_declaration] = "DW_TAG_imported_declaration",
- [DW_TAG_label] = "DW_TAG_label",
- [DW_TAG_lexical_block] = "DW_TAG_lexical_block",
- [DW_TAG_member] = "DW_TAG_member",
- [DW_TAG_pointer_type] = "DW_TAG_pointer_type",
- [DW_TAG_reference_type] = "DW_TAG_reference_type",
- [DW_TAG_compile_unit] = "DW_TAG_compile_unit",
- [DW_TAG_string_type] = "DW_TAG_string_type",
- [DW_TAG_structure_type] = "DW_TAG_structure_type",
- [DW_TAG_subroutine_type] = "DW_TAG_subroutine_type",
- [DW_TAG_typedef] = "DW_TAG_typedef",
- [DW_TAG_union_type] = "DW_TAG_union_type",
- [DW_TAG_unspecified_parameters] = "DW_TAG_unspecified_parameters",
- [DW_TAG_variant] = "DW_TAG_variant",
- [DW_TAG_common_block] = "DW_TAG_common_block",
- [DW_TAG_common_inclusion] = "DW_TAG_common_inclusion",
- [DW_TAG_inheritance] = "DW_TAG_inheritance",
- [DW_TAG_inlined_subroutine] = "DW_TAG_inlined_subroutine",
- [DW_TAG_module] = "DW_TAG_module",
- [DW_TAG_ptr_to_member_type] = "DW_TAG_ptr_to_member_type",
- [DW_TAG_set_type] = "DW_TAG_set_type",
- [DW_TAG_subrange_type] = "DW_TAG_subrange_type",
- [DW_TAG_with_stmt] = "DW_TAG_with_stmt",
- [DW_TAG_access_declaration] = "DW_TAG_access_declaration",
- [DW_TAG_base_type] = "DW_TAG_base_type",
- [DW_TAG_catch_block] = "DW_TAG_catch_block",
- [DW_TAG_const_type] = "DW_TAG_const_type",
- [DW_TAG_constant] = "DW_TAG_constant",
- [DW_TAG_enumerator] = "DW_TAG_enumerator",
- [DW_TAG_file_type] = "DW_TAG_file_type",
- [DW_TAG_friend] = "DW_TAG_friend",
- [DW_TAG_namelist] = "DW_TAG_namelist",
- [DW_TAG_namelist_item] = "DW_TAG_namelist_item",
- [DW_TAG_packed_type] = "DW_TAG_packed_type",
- [DW_TAG_subprogram] = "DW_TAG_subprogram",
- [DW_TAG_template_type_param] = "DW_TAG_template_type_param",
- [DW_TAG_template_value_param] = "DW_TAG_template_value_param",
- [DW_TAG_thrown_type] = "DW_TAG_thrown_type",
- [DW_TAG_try_block] = "DW_TAG_try_block",
- [DW_TAG_variant_part] = "DW_TAG_variant_part",
- [DW_TAG_variable] = "DW_TAG_variable",
- [DW_TAG_volatile_type] = "DW_TAG_volatile_type"
-};
-#define ntagnames (sizeof (tagnames) / sizeof (tagnames[0]))
-
-
-const struct
-{
- int code;
- const char *name;
-} attrs[] =
-{
- { DW_AT_sibling, "sibling" },
- { DW_AT_location, "location" },
- { DW_AT_name, "name" },
- { DW_AT_ordering, "ordering" },
- { DW_AT_subscr_data, "subscr_data" },
- { DW_AT_byte_size, "byte_size" },
- { DW_AT_bit_offset, "bit_offset" },
- { DW_AT_bit_size, "bit_size" },
- { DW_AT_element_list, "element_list" },
- { DW_AT_stmt_list, "stmt_list" },
- { DW_AT_low_pc, "low_pc" },
- { DW_AT_high_pc, "high_pc" },
- { DW_AT_language, "language" },
- { DW_AT_member, "member" },
- { DW_AT_discr, "discr" },
- { DW_AT_discr_value, "discr_value" },
- { DW_AT_visibility, "visibility" },
- { DW_AT_import, "import" },
- { DW_AT_string_length, "string_length" },
- { DW_AT_common_reference, "common_reference" },
- { DW_AT_comp_dir, "comp_dir" },
- { DW_AT_const_value, "const_value" },
- { DW_AT_containing_type, "containing_type" },
- { DW_AT_default_value, "default_value" },
- { DW_AT_inline, "inline" },
- { DW_AT_is_optional, "is_optional" },
- { DW_AT_lower_bound, "lower_bound" },
- { DW_AT_producer, "producer" },
- { DW_AT_prototyped, "prototyped" },
- { DW_AT_return_addr, "return_addr" },
- { DW_AT_start_scope, "start_scope" },
- { DW_AT_stride_size, "stride_size" },
- { DW_AT_upper_bound, "upper_bound" },
- { DW_AT_abstract_origin, "abstract_origin" },
- { DW_AT_accessibility, "accessibility" },
- { DW_AT_address_class, "address_class" },
- { DW_AT_artificial, "artificial" },
- { DW_AT_base_types, "base_types" },
- { DW_AT_calling_convention, "calling_convention" },
- { DW_AT_count, "count" },
- { DW_AT_data_member_location, "data_member_location" },
- { DW_AT_decl_column, "decl_column" },
- { DW_AT_decl_file, "decl_file" },
- { DW_AT_decl_line, "decl_line" },
- { DW_AT_declaration, "declaration" },
- { DW_AT_discr_list, "discr_list" },
- { DW_AT_encoding, "encoding" },
- { DW_AT_external, "external" },
- { DW_AT_frame_base, "frame_base" },
- { DW_AT_friend, "friend" },
- { DW_AT_identifier_case, "identifier_case" },
- { DW_AT_macro_info, "macro_info" },
- { DW_AT_namelist_items, "namelist_items" },
- { DW_AT_priority, "priority" },
- { DW_AT_segment, "segment" },
- { DW_AT_specification, "specification" },
- { DW_AT_static_link, "static_link" },
- { DW_AT_type, "type" },
- { DW_AT_use_location, "use_location" },
- { DW_AT_variable_parameter, "variable_parameter" },
- { DW_AT_virtuality, "virtuality" },
- { DW_AT_vtable_elem_location, "vtable_elem_location" },
- { DW_AT_MIPS_fde, "MIPS_fde" },
- { DW_AT_MIPS_loop_begin, "MIPS_loop_begin" },
- { DW_AT_MIPS_tail_loop_begin, "MIPS_tail_loop_begin" },
- { DW_AT_MIPS_epilog_begin, "MIPS_epilog_begin" },
- { DW_AT_MIPS_loop_unroll_factor, "MIPS_loop_unroll_factor" },
- { DW_AT_MIPS_software_pipeline_depth, "MIPS_software_pipeline_depth" },
- { DW_AT_MIPS_linkage_name, "MIPS_linkage_name" },
- { DW_AT_MIPS_stride, "MIPS_stride" },
- { DW_AT_MIPS_abstract_name, "MIPS_abstract_name" },
- { DW_AT_MIPS_clone_origin, "MIPS_clone_origin" },
- { DW_AT_MIPS_has_inlines, "MIPS_has_inlines" },
- { DW_AT_MIPS_stride_byte, "MIPS_stride_byte" },
- { DW_AT_MIPS_stride_elem, "MIPS_stride_elem" },
- { DW_AT_MIPS_ptr_dopetype, "MIPS_ptr_dopetype" },
- { DW_AT_MIPS_allocatable_dopetype, "MIPS_allocatable_dopetype" },
- { DW_AT_MIPS_assumed_shape_dopetype, "MIPS_assumed_shape_dopetype" },
- { DW_AT_MIPS_assumed_size, "MIPS_assumed_size" },
- { DW_AT_sf_names, "sf_names" },
- { DW_AT_src_info, "src_info" },
- { DW_AT_mac_info, "mac_info" },
- { DW_AT_src_coords, "src_coords" },
- { DW_AT_body_begin, "body_begin" },
- { DW_AT_body_end, "body_end" }
-};
-#define nattrs (sizeof (attrs) / sizeof (attrs[0]))
-
-
-void
-handle (Dwarf *dbg, Dwarf_Die *die, int n)
-{
- Dwarf_Die child;
- unsigned int tag;
- const char *str;
- char buf[30];
- const char *name;
- Dwarf_Off off;
- Dwarf_Off cuoff;
- size_t cnt;
- Dwarf_Addr addr;
- int i;
-
- tag = dwarf_tag (die);
- if (tag != DW_TAG_invalid)
- {
- if (tag < ntagnames)
- str = tagnames[tag];
- else
- {
- snprintf (buf, sizeof buf, "%#x", tag);
- str = buf;
- }
- }
- else
- str = "* NO TAG *";
-
- name = dwarf_diename (die);
- if (name == 0)
- name = "* NO NAME *";
-
- off = dwarf_dieoffset (die);
- cuoff = dwarf_cuoffset (die);
-
- printf ("%*s%s\n", n * 5, "", str);
- printf ("%*s Name : %s\n", n * 5, "", name);
- printf ("%*s Offset : %lld\n", n * 5, "", (long long int) off);
- printf ("%*s CU offset : %lld\n", n * 5, "", (long long int) cuoff);
-
- printf ("%*s Attrs :", n * 5, "");
- for (cnt = 0; cnt < nattrs; ++cnt)
- if (dwarf_hasattr (die, attrs[cnt].code))
- printf (" %s", attrs[cnt].name);
- puts ("");
-
- if (dwarf_hasattr (die, DW_AT_low_pc) && dwarf_lowpc (die, &addr) == 0)
- {
- Dwarf_Attribute attr;
- Dwarf_Addr addr2;
- printf ("%*s low PC : %#llx\n",
- n * 5, "", (unsigned long long int) addr);
-
- if (dwarf_attr (die, DW_AT_low_pc, &attr) == NULL
- || dwarf_formaddr (&attr, &addr2) != 0
- || addr != addr2)
- puts ("************* DW_AT_low_pc verify failed ************");
- else if (! dwarf_hasform (&attr, DW_FORM_addr))
- puts ("************* DW_AT_low_pc form failed ************");
- else if (dwarf_whatform (&attr) != DW_FORM_addr)
- puts ("************* DW_AT_low_pc form (2) failed ************");
- else if (dwarf_whatattr (&attr) != DW_AT_low_pc)
- puts ("************* DW_AT_low_pc attr failed ************");
- }
- if (dwarf_hasattr (die, DW_AT_high_pc) && dwarf_highpc (die, &addr) == 0)
- {
- Dwarf_Attribute attr;
- Dwarf_Addr addr2;
- printf ("%*s high PC : %#llx\n",
- n * 5, "", (unsigned long long int) addr);
- if (dwarf_attr (die, DW_AT_high_pc, &attr) == NULL
- || dwarf_formaddr (&attr, &addr2) != 0
- || addr != addr2)
- puts ("************* DW_AT_high_pc verify failed ************");
- else if (! dwarf_hasform (&attr, DW_FORM_addr))
- puts ("************* DW_AT_high_pc form failed ************");
- else if (dwarf_whatform (&attr) != DW_FORM_addr)
- puts ("************* DW_AT_high_pc form (2) failed ************");
- else if (dwarf_whatattr (&attr) != DW_AT_high_pc)
- puts ("************* DW_AT_high_pc attr failed ************");
- }
-
- if (dwarf_hasattr (die, DW_AT_byte_size) && (i = dwarf_bytesize (die)) != -1)
- {
- Dwarf_Attribute attr;
- Dwarf_Word u2;
- unsigned int u;
- printf ("%*s byte size : %d\n", n * 5, "", i);
- if (dwarf_attr (die, DW_AT_byte_size, &attr) == NULL
- || dwarf_formudata (&attr, &u2) != 0
- || i != (int) u2)
- puts ("************* DW_AT_byte_size verify failed ************");
- else if (! dwarf_hasform (&attr, DW_FORM_data1)
- && ! dwarf_hasform (&attr, DW_FORM_data2)
- && ! dwarf_hasform (&attr, DW_FORM_data4)
- && ! dwarf_hasform (&attr, DW_FORM_data8)
- && ! dwarf_hasform (&attr, DW_FORM_sdata)
- && ! dwarf_hasform (&attr, DW_FORM_udata))
- puts ("************* DW_AT_byte_size form failed ************");
- else if ((u = dwarf_whatform (&attr)) == 0
- || (u != DW_FORM_data1
- && u != DW_FORM_data2
- && u != DW_FORM_data4
- && u != DW_FORM_data8
- && u != DW_FORM_sdata
- && u != DW_FORM_udata))
- puts ("************* DW_AT_byte_size form (2) failed ************");
- else if (dwarf_whatattr (&attr) != DW_AT_byte_size)
- puts ("************* DW_AT_byte_size attr failed ************");
- }
- if (dwarf_hasattr (die, DW_AT_bit_size) && (i = dwarf_bitsize (die)) != -1)
- {
- Dwarf_Attribute attr;
- Dwarf_Word u2;
- unsigned int u;
- printf ("%*s bit size : %d\n", n * 5, "", i);
- if (dwarf_attr (die, DW_AT_bit_size, &attr) == NULL
- || dwarf_formudata (&attr, &u2) != 0
- || i != (int) u2)
- puts ("************* DW_AT_bit_size test failed ************");
- else if (! dwarf_hasform (&attr, DW_FORM_data1)
- && ! dwarf_hasform (&attr, DW_FORM_data2)
- && ! dwarf_hasform (&attr, DW_FORM_data4)
- && ! dwarf_hasform (&attr, DW_FORM_data8)
- && ! dwarf_hasform (&attr, DW_FORM_sdata)
- && ! dwarf_hasform (&attr, DW_FORM_udata))
- puts ("************* DW_AT_bit_size form failed ************");
- else if ((u = dwarf_whatform (&attr)) == 0
- || (u != DW_FORM_data1
- && u != DW_FORM_data2
- && u != DW_FORM_data4
- && u != DW_FORM_data8
- && u != DW_FORM_sdata
- && u != DW_FORM_udata))
- puts ("************* DW_AT_bit_size form (2) failed ************");
- else if (dwarf_whatattr (&attr) != DW_AT_bit_size)
- puts ("************* DW_AT_bit_size attr failed ************");
- }
- if (dwarf_hasattr (die, DW_AT_bit_offset)
- && (i = dwarf_bitoffset (die)) != -1)
- {
- Dwarf_Attribute attr;
- Dwarf_Word u2;
- unsigned int u;
- printf ("%*s bit offset: %d\n", n * 5, "", i);
- if (dwarf_attr (die, DW_AT_bit_offset, &attr) == NULL
- || dwarf_formudata (&attr, &u2) != 0
- || i != (int) u2)
- puts ("************* DW_AT_bit_offset test failed ************");
- else if (! dwarf_hasform (&attr, DW_FORM_data1)
- && ! dwarf_hasform (&attr, DW_FORM_data2)
- && ! dwarf_hasform (&attr, DW_FORM_data4)
- && ! dwarf_hasform (&attr, DW_FORM_data8)
- && ! dwarf_hasform (&attr, DW_FORM_sdata)
- && ! dwarf_hasform (&attr, DW_FORM_udata))
- puts ("************* DW_AT_bit_offset form failed ************");
- else if ((u = dwarf_whatform (&attr)) == 0
- || (u != DW_FORM_data1
- && u != DW_FORM_data2
- && u != DW_FORM_data4
- && u != DW_FORM_data8
- && u != DW_FORM_sdata
- && u != DW_FORM_udata))
- puts ("************* DW_AT_bit_offset form (2) failed ************");
- else if (dwarf_whatattr (&attr) != DW_AT_bit_offset)
- puts ("************* DW_AT_bit_offset attr failed ************");
- }
-
- if (dwarf_hasattr (die, DW_AT_language) && (i = dwarf_srclang (die)) != -1)
- {
- Dwarf_Attribute attr;
- Dwarf_Word u2;
- unsigned int u;
- printf ("%*s language : %d\n", n * 5, "", i);
- if (dwarf_attr (die, DW_AT_language, &attr) == NULL
- || dwarf_formudata (&attr, &u2) != 0
- || i != (int) u2)
- puts ("************* DW_AT_language test failed ************");
- else if (! dwarf_hasform (&attr, DW_FORM_data1)
- && ! dwarf_hasform (&attr, DW_FORM_data2)
- && ! dwarf_hasform (&attr, DW_FORM_data4)
- && ! dwarf_hasform (&attr, DW_FORM_data8)
- && ! dwarf_hasform (&attr, DW_FORM_sdata)
- && ! dwarf_hasform (&attr, DW_FORM_udata))
- puts ("************* DW_AT_language form failed ************");
- else if ((u = dwarf_whatform (&attr)) == 0
- || (u != DW_FORM_data1
- && u != DW_FORM_data2
- && u != DW_FORM_data4
- && u != DW_FORM_data8
- && u != DW_FORM_sdata
- && u != DW_FORM_udata))
- puts ("************* DW_AT_language form (2) failed ************");
- else if (dwarf_whatattr (&attr) != DW_AT_language)
- puts ("************* DW_AT_language attr failed ************");
- }
-
- if (dwarf_hasattr (die, DW_AT_ordering)
- && (i = dwarf_arrayorder (die)) != -1)
- {
- Dwarf_Attribute attr;
- Dwarf_Word u2;
- unsigned int u;
- printf ("%*s ordering : %d\n", n * 5, "", i);
- if (dwarf_attr (die, DW_AT_ordering, &attr) == NULL
- || dwarf_formudata (&attr, &u2) != 0
- || i != (int) u2)
- puts ("************* DW_AT_ordering test failed ************");
- else if (! dwarf_hasform (&attr, DW_FORM_data1)
- && ! dwarf_hasform (&attr, DW_FORM_data2)
- && ! dwarf_hasform (&attr, DW_FORM_data4)
- && ! dwarf_hasform (&attr, DW_FORM_data8)
- && ! dwarf_hasform (&attr, DW_FORM_sdata)
- && ! dwarf_hasform (&attr, DW_FORM_udata))
- puts ("************* DW_AT_ordering failed ************");
- else if ((u = dwarf_whatform (&attr)) == 0
- || (u != DW_FORM_data1
- && u != DW_FORM_data2
- && u != DW_FORM_data4
- && u != DW_FORM_data8
- && u != DW_FORM_sdata
- && u != DW_FORM_udata))
- puts ("************* DW_AT_ordering form (2) failed ************");
- else if (dwarf_whatattr (&attr) != DW_AT_ordering)
- puts ("************* DW_AT_ordering attr failed ************");
- }
-
- if (dwarf_hasattr (die, DW_AT_comp_dir))
- {
- Dwarf_Attribute attr;
- if (dwarf_attr (die, DW_AT_comp_dir, &attr) == NULL
- || (name = dwarf_formstring (&attr)) == NULL)
- puts ("************* DW_AT_comp_dir attr failed ************");
- else
- printf ("%*s directory : %s\n", n * 5, "", name);
- }
-
- if (dwarf_hasattr (die, DW_AT_producer))
- {
- Dwarf_Attribute attr;
- if (dwarf_attr (die, DW_AT_producer, &attr) == NULL
- || (name = dwarf_formstring (&attr)) == NULL)
- puts ("************* DW_AT_comp_dir attr failed ************");
- else
- printf ("%*s producer : %s\n", n * 5, "", name);
- }
-
- if (dwarf_haschildren (die) != 0 && dwarf_child (die, &child) == 0)
- handle (dbg, &child, n + 1);
- if (dwarf_siblingof (die, die) == 0)
- handle (dbg, die, n);
-}
-
-
-int
-main (int argc, char *argv[])
-{
- int cnt;
-
- for (cnt = 1; cnt < argc; ++cnt)
- {
- int fd = open (argv[cnt], O_RDONLY);
- Dwarf *dbg;
-
- printf ("file: %s\n", basename (argv[cnt]));
-
- dbg = dwarf_begin (fd, DWARF_C_READ);
- if (dbg == NULL)
- {
- printf ("%s not usable\n", argv[cnt]);
- close (fd);
- continue;
- }
-
- Dwarf_Off off = 0;
- Dwarf_Off old_off = 0;
- size_t hsize;
- Dwarf_Off abbrev;
- uint8_t addresssize;
- uint8_t offsetsize;
- while (dwarf_nextcu (dbg, off, &off, &hsize, &abbrev, &addresssize,
- &offsetsize) == 0)
- {
- printf ("New CU: off = %llu, hsize = %zu, ab = %llu, as = %" PRIu8
- ", os = %" PRIu8 "\n",
- (unsigned long long int) old_off, hsize,
- (unsigned long long int) abbrev, addresssize,
- offsetsize);
-
- Dwarf_Die die;
- if (dwarf_offdie (dbg, old_off + hsize, &die) != NULL)
- handle (dbg, &die, 1);
-
- old_off = off;
- }
-
- dwarf_end (dbg);
- close (fd);
- }
-
- return 0;
-}
diff --git a/tests/showptable.c b/tests/showptable.c
deleted file mode 100644
index afc1f26d..00000000
--- a/tests/showptable.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <config.h>
-
-#include <errno.h>
-#include <fcntl.h>
-#include <gelf.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-int
-main (int argc, char *argv[])
-{
- Elf *elf;
- int fd;
- GElf_Ehdr ehdr;
- int cnt;
-
- fd = open (argv[1], O_RDONLY);
- if (fd == -1)
- {
- printf ("cannot open \"%s\": %s\n", argv[1], strerror (errno));
- exit (1);
- }
-
- elf_version (EV_CURRENT);
-
- elf = elf_begin (fd, ELF_C_READ, NULL);
- if (elf == NULL)
- {
- printf ("cannot open ELF file: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- if (elf_kind (elf) != ELF_K_ELF)
- {
- printf ("\"%s\" is not an ELF file\n", argv[1]);
- exit (1);
- }
-
- if (gelf_getehdr (elf, &ehdr) == NULL)
- {
- printf ("cannot get the ELF header: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- printf ("idx type %*s %*s %*s %*s %*s align flags\n",
- gelf_getclass (elf) == ELFCLASS32 ? 9 : 17, "offset",
- gelf_getclass (elf) == ELFCLASS32 ? 10 : 18, "vaddr",
- gelf_getclass (elf) == ELFCLASS32 ? 10 : 18, "paddr",
- gelf_getclass (elf) == ELFCLASS32 ? 9 : 12, "filesz",
- gelf_getclass (elf) == ELFCLASS32 ? 9 : 12, "memsz");
-
- for (cnt = 0; cnt < ehdr.e_phnum; ++cnt)
- {
- static const char *typenames[] =
- {
- [PT_NULL] = "NULL",
- [PT_LOAD] = "LOAD",
- [PT_DYNAMIC] = "DYNAMIC",
- [PT_INTERP] = "INTERP",
- [PT_NOTE] = "NOTE",
- [PT_SHLIB] = "SHLIB",
- [PT_PHDR] = "PHDR"
- };
- GElf_Phdr mem;
- GElf_Phdr *phdr = gelf_getphdr (elf, cnt, &mem);
- char buf[19];
- const char *p_type = typenames[phdr->p_type];
-
- /* If we don't know the name of the type we use the number value. */
- if (phdr->p_type >= PT_NUM)
- {
- snprintf (buf, sizeof (buf), "%x", phdr->p_type);
- p_type = buf;
- }
-
- printf ("%3d %-7s %#0*llx %#0*llx %#0*llx %#0*llx %#0*llx %#6llx ",
- cnt, p_type,
- gelf_getclass (elf) == ELFCLASS32 ? 9 : 17,
- (unsigned long long int) phdr->p_offset,
- gelf_getclass (elf) == ELFCLASS32 ? 10 : 18,
- (unsigned long long int) phdr->p_vaddr,
- gelf_getclass (elf) == ELFCLASS32 ? 10 : 18,
- (unsigned long long int) phdr->p_paddr,
- gelf_getclass (elf) == ELFCLASS32 ? 9 : 12,
- (unsigned long long int) phdr->p_filesz,
- gelf_getclass (elf) == ELFCLASS32 ? 9 : 12,
- (unsigned long long int) phdr->p_memsz,
- (unsigned long long int) phdr->p_align);
-
- putc_unlocked ((phdr->p_flags & PF_X) ? 'X' : ' ', stdout);
- putc_unlocked ((phdr->p_flags & PF_W) ? 'W' : ' ', stdout);
- putc_unlocked ((phdr->p_flags & PF_R) ? 'R' : ' ', stdout);
-
- putc_unlocked ('\n', stdout);
-
- if (phdr->p_type == PT_INTERP)
- {
- /* We can show the user the name of the interpreter. */
- size_t maxsize;
- char *filedata = elf_rawfile (elf, &maxsize);
-
- if (filedata != NULL && phdr->p_offset < maxsize)
- printf ("\t[Requesting program interpreter: %s]\n",
- filedata + phdr->p_offset);
- }
- }
-
- if (elf_end (elf) != 0)
- {
- printf ("error while freeing ELF descriptor: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- return 0;
-}
diff --git a/tests/test-nlist.c b/tests/test-nlist.c
deleted file mode 100644
index 40eb320a..00000000
--- a/tests/test-nlist.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (C) 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#include <nlist.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-int var = 1;
-
-int bss;
-
-
-int
-foo (int a)
-{
- return a;
-}
-
-int
-main (int argc, char *argv[])
-{
- struct nlist nl[6] =
- {
- [0] = { .n_name = "var" },
- [1] = { .n_name = "bss" },
- [2] = { .n_name = "main" },
- [3] = { .n_name = "foo" },
- [4] = { .n_name = "not-there" },
- [5] = { .n_name = NULL },
- };
- int cnt;
- int result = 0;
-
- if (nlist (".libs/test-nlist", nl) != 0
- && nlist ("./test-nlist", nl) != 0)
- {
- puts ("nlist failed");
- exit (1);
- }
-
- for (cnt = 0; nl[cnt].n_name != NULL; ++cnt)
- {
- if (argc > 1)
- /* For debugging. */
- printf ("nl[%d].n_name = \"%s\"\n"
- "nl[%d].n_value = %ld\n"
- "nl[%d].n_scnum = %d\n"
- "nl[%d].n_type = %u\n"
- "nl[%d].n_sclass = %d\n"
- "nl[%d].n_numaux = %d\n\n",
- cnt, nl[cnt].n_name,
- cnt, nl[cnt].n_value,
- cnt, nl[cnt].n_scnum,
- cnt, nl[cnt].n_type,
- cnt, nl[cnt].n_sclass,
- cnt, nl[cnt].n_numaux);
-
- if ((cnt != 4 && nl[cnt].n_value == 0 && nl[cnt].n_scnum == 0
- && nl[cnt].n_type == 0 && nl[cnt].n_sclass == 0
- && nl[cnt].n_numaux == 0)
- || (cnt == 4 && (nl[cnt].n_value != 0 || nl[cnt].n_scnum != 0
- || nl[cnt].n_type != 0 || nl[cnt].n_sclass != 0
- || nl[cnt].n_numaux != 0)))
- result = 1;
- }
-
- return foo (result);
-}
diff --git a/tests/testfile.bz2 b/tests/testfile.bz2
deleted file mode 100644
index bde9b126..00000000
--- a/tests/testfile.bz2
+++ /dev/null
Binary files differ
diff --git a/tests/testfile10.bz2 b/tests/testfile10.bz2
deleted file mode 100644
index e9dd5046..00000000
--- a/tests/testfile10.bz2
+++ /dev/null
Binary files differ
diff --git a/tests/testfile11.bz2 b/tests/testfile11.bz2
deleted file mode 100644
index d094b848..00000000
--- a/tests/testfile11.bz2
+++ /dev/null
Binary files differ
diff --git a/tests/testfile12.bz2 b/tests/testfile12.bz2
deleted file mode 100644
index 8bb5ad33..00000000
--- a/tests/testfile12.bz2
+++ /dev/null
Binary files differ
diff --git a/tests/testfile13.bz2 b/tests/testfile13.bz2
deleted file mode 100644
index 3b0bcb93..00000000
--- a/tests/testfile13.bz2
+++ /dev/null
Binary files differ
diff --git a/tests/testfile2.bz2 b/tests/testfile2.bz2
deleted file mode 100644
index 0771311b..00000000
--- a/tests/testfile2.bz2
+++ /dev/null
Binary files differ
diff --git a/tests/testfile3.bz2 b/tests/testfile3.bz2
deleted file mode 100644
index 30a456c7..00000000
--- a/tests/testfile3.bz2
+++ /dev/null
Binary files differ
diff --git a/tests/testfile4.bz2 b/tests/testfile4.bz2
deleted file mode 100644
index 25b25dfc..00000000
--- a/tests/testfile4.bz2
+++ /dev/null
Binary files differ
diff --git a/tests/testfile5.bz2 b/tests/testfile5.bz2
deleted file mode 100644
index 247313e0..00000000
--- a/tests/testfile5.bz2
+++ /dev/null
Binary files differ
diff --git a/tests/testfile6.bz2 b/tests/testfile6.bz2
deleted file mode 100644
index fd376b27..00000000
--- a/tests/testfile6.bz2
+++ /dev/null
Binary files differ
diff --git a/tests/testfile7.bz2 b/tests/testfile7.bz2
deleted file mode 100644
index 73452bbb..00000000
--- a/tests/testfile7.bz2
+++ /dev/null
Binary files differ
diff --git a/tests/testfile8.bz2 b/tests/testfile8.bz2
deleted file mode 100644
index 1ff4994c..00000000
--- a/tests/testfile8.bz2
+++ /dev/null
Binary files differ
diff --git a/tests/testfile9.bz2 b/tests/testfile9.bz2
deleted file mode 100644
index 40454bce..00000000
--- a/tests/testfile9.bz2
+++ /dev/null
Binary files differ
diff --git a/tests/update1.c b/tests/update1.c
deleted file mode 100644
index decb09ba..00000000
--- a/tests/update1.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Test program for elf_update function.
- Copyright (C) 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <errno.h>
-#include <fcntl.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-int
-main (int argc, char *argv[])
-{
- const char *fname = "xxx";
- int fd;
- Elf *elf;
- Elf32_Ehdr *ehdr;
- int i;
-
- fd = open (fname, O_RDWR | O_CREAT | O_TRUNC, 0666);
- if (fd == -1)
- {
- printf ("cannot open `%s': %s\n", fname, strerror (errno));
- exit (1);
- }
-
- elf_version (EV_CURRENT);
-
- elf = elf_begin (fd, ELF_C_WRITE, NULL);
- if (elf == NULL)
- {
- printf ("cannot create ELF descriptor: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* Create an ELF header. */
- ehdr = elf32_newehdr (elf);
- if (ehdr == NULL)
- {
- printf ("cannot create ELF header: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* Print the ELF header values. */
- if (argc > 1)
- {
- for (i = 0; i < EI_NIDENT; ++i)
- printf (" %02x", ehdr->e_ident[i]);
- printf ("\
-\ntype = %hu\nmachine = %hu\nversion = %u\nentry = %u\nphoff = %u\n"
- "shoff = %u\nflags = %u\nehsize = %hu\nphentsize = %hu\n"
- "phnum = %hu\nshentsize = %hu\nshnum = %hu\nshstrndx = %hu\n",
- ehdr->e_type, ehdr->e_machine, ehdr->e_version, ehdr->e_entry,
- ehdr->e_phoff, ehdr->e_shoff, ehdr->e_flags, ehdr->e_ehsize,
- ehdr->e_phentsize, ehdr->e_phnum, ehdr->e_shentsize,
- ehdr->e_shnum, ehdr->e_shstrndx);
- }
-
- ehdr->e_ident[0] = 42;
- ehdr->e_ident[4] = 1;
- ehdr->e_ident[5] = 1;
- ehdr->e_ident[6] = 2;
- ehdr->e_ident[9] = 2;
- ehdr->e_version = 1;
- ehdr->e_ehsize = 1;
-
- /* Write out the file. */
- if (elf_update (elf, ELF_C_WRITE) < 0)
- {
- printf ("failure in elf_update: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* Create an ELF header. */
- ehdr = elf32_newehdr (elf);
- if (ehdr == NULL)
- {
- printf ("cannot create ELF header: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* Print the ELF header values. */
- if (argc > 1)
- {
- for (i = 0; i < EI_NIDENT; ++i)
- printf (" %02x", ehdr->e_ident[i]);
- printf ("\
-\ntype = %hu\nmachine = %hu\nversion = %u\nentry = %u\nphoff = %u\n"
- "shoff = %u\nflags = %u\nehsize = %hu\nphentsize = %hu\n"
- "phnum = %hu\nshentsize = %hu\nshnum = %hu\nshstrndx = %hu\n",
- ehdr->e_type, ehdr->e_machine, ehdr->e_version, ehdr->e_entry,
- ehdr->e_phoff, ehdr->e_shoff, ehdr->e_flags, ehdr->e_ehsize,
- ehdr->e_phentsize, ehdr->e_phnum, ehdr->e_shentsize,
- ehdr->e_shnum, ehdr->e_shstrndx);
- }
-
- if (elf_end (elf) != 0)
- {
- printf ("failure in elf_end: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- return 0;
-}
diff --git a/tests/update2.c b/tests/update2.c
deleted file mode 100644
index c595fba7..00000000
--- a/tests/update2.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Test program for elf_update function.
- Copyright (C) 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <errno.h>
-#include <fcntl.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-int
-main (int argc, char *argv[])
-{
- const char *fname = "xxx";
- int fd;
- Elf *elf;
- Elf32_Ehdr *ehdr;
- Elf32_Phdr *phdr;
- int i;
-
- fd = open (fname, O_RDWR | O_CREAT | O_TRUNC, 0666);
- if (fd == -1)
- {
- printf ("cannot open `%s': %s\n", fname, strerror (errno));
- exit (1);
- }
-
- elf_version (EV_CURRENT);
-
- elf = elf_begin (fd, ELF_C_WRITE, NULL);
- if (elf == NULL)
- {
- printf ("cannot create ELF descriptor: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* Create an ELF header. */
- ehdr = elf32_newehdr (elf);
- if (ehdr == NULL)
- {
- printf ("cannot create ELF header: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* Print the ELF header values. */
- if (argc > 1)
- {
- for (i = 0; i < EI_NIDENT; ++i)
- printf (" %02x", ehdr->e_ident[i]);
- printf ("\
-\ntype = %hu\nmachine = %hu\nversion = %u\nentry = %u\nphoff = %u\n"
- "shoff = %u\nflags = %u\nehsize = %hu\nphentsize = %hu\n"
- "phnum = %hu\nshentsize = %hu\nshnum = %hu\nshstrndx = %hu\n",
- ehdr->e_type, ehdr->e_machine, ehdr->e_version, ehdr->e_entry,
- ehdr->e_phoff, ehdr->e_shoff, ehdr->e_flags, ehdr->e_ehsize,
- ehdr->e_phentsize, ehdr->e_phnum, ehdr->e_shentsize,
- ehdr->e_shnum, ehdr->e_shstrndx);
- }
-
- ehdr->e_ident[0] = 42;
- ehdr->e_ident[4] = 1;
- ehdr->e_ident[5] = 1;
- ehdr->e_ident[6] = 2;
- ehdr->e_type = ET_EXEC;
- ehdr->e_version = 1;
- ehdr->e_ehsize = 1;
- elf_flagehdr (elf, ELF_C_SET, ELF_F_DIRTY);
-
- /* Create the program header. */
- phdr = elf32_newphdr (elf, 1);
- if (phdr == NULL)
- {
- printf ("cannot create program header: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- phdr[0].p_type = PT_PHDR;
- elf_flagphdr (elf, ELF_C_SET, ELF_F_DIRTY);
-
- /* Let the library compute the internal structure information. */
- if (elf_update (elf, ELF_C_NULL) < 0)
- {
- printf ("failure in elf_update(NULL): %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- ehdr = elf32_getehdr (elf);
-
- phdr[0].p_offset = ehdr->e_phoff;
- phdr[0].p_offset = ehdr->e_phoff;
- phdr[0].p_vaddr = ehdr->e_phoff;
- phdr[0].p_paddr = ehdr->e_phoff;
- phdr[0].p_flags = PF_R | PF_X;
- phdr[0].p_filesz = ehdr->e_phnum * elf32_fsize (ELF_T_PHDR, 1, EV_CURRENT);
- phdr[0].p_memsz = ehdr->e_phnum * elf32_fsize (ELF_T_PHDR, 1, EV_CURRENT);
- phdr[0].p_align = sizeof (Elf32_Word);
-
- /* Write out the file. */
- if (elf_update (elf, ELF_C_WRITE) < 0)
- {
- printf ("failure in elf_update(WRITE): %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* Print the ELF header values. */
- if (argc > 1)
- {
- for (i = 0; i < EI_NIDENT; ++i)
- printf (" %02x", ehdr->e_ident[i]);
- printf ("\
-\ntype = %hu\nmachine = %hu\nversion = %u\nentry = %u\nphoff = %u\n"
- "shoff = %u\nflags = %u\nehsize = %hu\nphentsize = %hu\n"
- "phnum = %hu\nshentsize = %hu\nshnum = %hu\nshstrndx = %hu\n",
- ehdr->e_type, ehdr->e_machine, ehdr->e_version, ehdr->e_entry,
- ehdr->e_phoff, ehdr->e_shoff, ehdr->e_flags, ehdr->e_ehsize,
- ehdr->e_phentsize, ehdr->e_phnum, ehdr->e_shentsize,
- ehdr->e_shnum, ehdr->e_shstrndx);
- }
-
- if (elf_end (elf) != 0)
- {
- printf ("failure in elf_end: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- return 0;
-}
diff --git a/tests/update3.c b/tests/update3.c
deleted file mode 100644
index 06bc8ff6..00000000
--- a/tests/update3.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/* Test program for elf_update function.
- Copyright (C) 2000, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <errno.h>
-#include <fcntl.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <libebl.h>
-
-
-int
-main (int argc, char *argv[])
-{
- const char *fname = "xxx";
- int fd;
- Elf *elf;
- Elf32_Ehdr *ehdr;
- Elf32_Phdr *phdr;
- Elf_Scn *scn;
- Elf32_Shdr *shdr;
- Elf_Data *data;
- struct Ebl_Strtab *shst;
- struct Ebl_Strent *shstrtabse;
- int i;
-
- fd = open (fname, O_RDWR | O_CREAT | O_TRUNC, 0666);
- if (fd == -1)
- {
- printf ("cannot open `%s': %s\n", fname, strerror (errno));
- exit (1);
- }
-
- elf_version (EV_CURRENT);
-
- elf_fill (0x42);
-
- elf = elf_begin (fd, ELF_C_WRITE, NULL);
- if (elf == NULL)
- {
- printf ("cannot create ELF descriptor: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* Create an ELF header. */
- ehdr = elf32_newehdr (elf);
- if (ehdr == NULL)
- {
- printf ("cannot create ELF header: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* Print the ELF header values. */
- if (argc > 1)
- {
- for (i = 0; i < EI_NIDENT; ++i)
- printf (" %02x", ehdr->e_ident[i]);
- printf ("\
-\ntype = %hu\nmachine = %hu\nversion = %u\nentry = %u\nphoff = %u\n"
- "shoff = %u\nflags = %u\nehsize = %hu\nphentsize = %hu\n"
- "phnum = %hu\nshentsize = %hu\nshnum = %hu\nshstrndx = %hu\n",
- ehdr->e_type, ehdr->e_machine, ehdr->e_version, ehdr->e_entry,
- ehdr->e_phoff, ehdr->e_shoff, ehdr->e_flags, ehdr->e_ehsize,
- ehdr->e_phentsize, ehdr->e_phnum, ehdr->e_shentsize,
- ehdr->e_shnum, ehdr->e_shstrndx);
- }
-
- ehdr->e_ident[0] = 42;
- ehdr->e_ident[4] = 1;
- ehdr->e_ident[5] = 1;
- ehdr->e_ident[6] = 2;
- ehdr->e_type = ET_EXEC;
- ehdr->e_version = 1;
- ehdr->e_ehsize = 1;
- elf_flagehdr (elf, ELF_C_SET, ELF_F_DIRTY);
-
- /* Create the program header. */
- phdr = elf32_newphdr (elf, 1);
- if (phdr == NULL)
- {
- printf ("cannot create program header: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- phdr[0].p_type = PT_PHDR;
- elf_flagphdr (elf, ELF_C_SET, ELF_F_DIRTY);
-
- shst = ebl_strtabinit (true);
-
- scn = elf_newscn (elf);
- if (scn == NULL)
- {
- printf ("cannot create SHSTRTAB section: %s\n", elf_errmsg (-1));
- exit (1);
- }
- shdr = elf32_getshdr (scn);
- if (shdr == NULL)
- {
- printf ("cannot get header for SHSTRTAB section: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- shstrtabse = ebl_strtabadd (shst, ".shstrtab", 0);
-
- shdr->sh_type = SHT_STRTAB;
- shdr->sh_flags = 0;
- shdr->sh_addr = 0;
- shdr->sh_link = SHN_UNDEF;
- shdr->sh_info = SHN_UNDEF;
- shdr->sh_addralign = 1;
- shdr->sh_entsize = 0;
-
- /* We have to store the section index in the ELF header. */
- ehdr->e_shstrndx = elf_ndxscn (scn);
-
- data = elf_newdata (scn);
- if (data == NULL)
- {
- printf ("cannot create data SHSTRTAB section: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* No more sections, finalize the section header string table. */
- ebl_strtabfinalize (shst, data);
-
- shdr->sh_name = ebl_strtaboffset (shstrtabse);
-
- /* Let the library compute the internal structure information. */
- if (elf_update (elf, ELF_C_NULL) < 0)
- {
- printf ("failure in elf_update(NULL): %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- ehdr = elf32_getehdr (elf);
-
- phdr[0].p_offset = ehdr->e_phoff;
- phdr[0].p_offset = ehdr->e_phoff;
- phdr[0].p_vaddr = ehdr->e_phoff;
- phdr[0].p_paddr = ehdr->e_phoff;
- phdr[0].p_flags = PF_R | PF_X;
- phdr[0].p_filesz = ehdr->e_phnum * elf32_fsize (ELF_T_PHDR, 1, EV_CURRENT);
- phdr[0].p_memsz = ehdr->e_phnum * elf32_fsize (ELF_T_PHDR, 1, EV_CURRENT);
- phdr[0].p_align = sizeof (Elf32_Word);
-
- /* Write out the file. */
- if (elf_update (elf, ELF_C_WRITE) < 0)
- {
- printf ("failure in elf_update(WRITE): %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* We don't need the string table anymore. */
- ebl_strtabfree (shst);
-
- /* And the data allocated in the .shstrtab section. */
- free (data->d_buf);
-
- /* Print the ELF header values. */
- if (argc > 1)
- {
- for (i = 0; i < EI_NIDENT; ++i)
- printf (" %02x", ehdr->e_ident[i]);
- printf ("\
-\ntype = %hu\nmachine = %hu\nversion = %u\nentry = %u\nphoff = %u\n"
- "shoff = %u\nflags = %u\nehsize = %hu\nphentsize = %hu\n"
- "phnum = %hu\nshentsize = %hu\nshnum = %hu\nshstrndx = %hu\n",
- ehdr->e_type, ehdr->e_machine, ehdr->e_version, ehdr->e_entry,
- ehdr->e_phoff, ehdr->e_shoff, ehdr->e_flags, ehdr->e_ehsize,
- ehdr->e_phentsize, ehdr->e_phnum, ehdr->e_shentsize,
- ehdr->e_shnum, ehdr->e_shstrndx);
- }
-
- if (elf_end (elf) != 0)
- {
- printf ("failure in elf_end: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- return 0;
-}
diff --git a/tests/update4.c b/tests/update4.c
deleted file mode 100644
index 17ef4702..00000000
--- a/tests/update4.c
+++ /dev/null
@@ -1,353 +0,0 @@
-/* Test program for elf_update function.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
- Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-
- This program is Open Source software; you can redistribute it and/or
- modify it under the terms of the Open Software License version 1.0 as
- published by the Open Source Initiative.
-
- You should have received a copy of the Open Software License along
- with this program; if not, you may obtain a copy of the Open Software
- License version 1.0 from http://www.opensource.org/licenses/osl.php or
- by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
- 3001 King Ranch Road, Ukiah, CA 95482. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <errno.h>
-#include <fcntl.h>
-#include <libelf.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <libebl.h>
-
-
-int
-main (int argc, char *argv[])
-{
- const char fname[] = "xxx";
- int fd;
- Elf *elf;
- Elf32_Ehdr *ehdr;
- Elf32_Phdr *phdr;
- Elf_Scn *scn;
- Elf32_Shdr *shdr;
- Elf_Data *data;
- struct Ebl_Strtab *shst;
- struct Ebl_Strent *firstse;
- struct Ebl_Strent *secondse;
- struct Ebl_Strent *thirdse;
- struct Ebl_Strent *fourthse;
- struct Ebl_Strent *shstrtabse;
- int i;
-
- fd = open (fname, O_RDWR | O_CREAT | O_TRUNC, 0666);
- if (fd == -1)
- {
- printf ("cannot open `%s': %s\n", fname, strerror (errno));
- exit (1);
- }
-
- elf_version (EV_CURRENT);
-
- elf_fill (0x42);
-
- elf = elf_begin (fd, ELF_C_WRITE, NULL);
- if (elf == NULL)
- {
- printf ("cannot create ELF descriptor: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* Create an ELF header. */
- ehdr = elf32_newehdr (elf);
- if (ehdr == NULL)
- {
- printf ("cannot create ELF header: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* Print the ELF header values. */
- if (argc > 1)
- {
- for (i = 0; i < EI_NIDENT; ++i)
- printf (" %02x", ehdr->e_ident[i]);
- printf ("\
-\ntype = %hu\nmachine = %hu\nversion = %u\nentry = %u\nphoff = %u\n"
- "shoff = %u\nflags = %u\nehsize = %hu\nphentsize = %hu\n"
- "phnum = %hu\nshentsize = %hu\nshnum = %hu\nshstrndx = %hu\n",
- ehdr->e_type, ehdr->e_machine, ehdr->e_version, ehdr->e_entry,
- ehdr->e_phoff, ehdr->e_shoff, ehdr->e_flags, ehdr->e_ehsize,
- ehdr->e_phentsize, ehdr->e_phnum, ehdr->e_shentsize,
- ehdr->e_shnum, ehdr->e_shstrndx);
- }
-
- ehdr->e_ident[0] = 42;
- ehdr->e_ident[4] = 1;
- ehdr->e_ident[5] = 1;
- ehdr->e_ident[6] = 2;
- ehdr->e_type = ET_EXEC;
- ehdr->e_version = 1;
- ehdr->e_ehsize = 1;
- elf_flagehdr (elf, ELF_C_SET, ELF_F_DIRTY);
-
- /* Create the program header. */
- phdr = elf32_newphdr (elf, 1);
- if (phdr == NULL)
- {
- printf ("cannot create program header: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- phdr[0].p_type = PT_PHDR;
- elf_flagphdr (elf, ELF_C_SET, ELF_F_DIRTY);
-
- shst = ebl_strtabinit (true);
-
- scn = elf_newscn (elf);
- if (scn == NULL)
- {
- printf ("cannot create first section: %s\n", elf_errmsg (-1));
- exit (1);
- }
- shdr = elf32_getshdr (scn);
- if (shdr == NULL)
- {
- printf ("cannot get header for first section: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- firstse = ebl_strtabadd (shst, ".first", 0);
-
- shdr->sh_type = SHT_PROGBITS;
- shdr->sh_flags = SHF_ALLOC | SHF_EXECINSTR;
- shdr->sh_addr = 0;
- shdr->sh_link = 0;
- shdr->sh_info = 0;
- shdr->sh_entsize = 1;
-
- data = elf_newdata (scn);
- if (data == NULL)
- {
- printf ("cannot create data first section: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- data->d_buf = "hello";
- data->d_type = ELF_T_BYTE;
- data->d_version = EV_CURRENT;
- data->d_size = 5;
- data->d_align = 16;
-
-
- scn = elf_newscn (elf);
- if (scn == NULL)
- {
- printf ("cannot create second section: %s\n", elf_errmsg (-1));
- exit (1);
- }
- shdr = elf32_getshdr (scn);
- if (shdr == NULL)
- {
- printf ("cannot get header for second section: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- secondse = ebl_strtabadd (shst, ".second", 0);
-
- shdr->sh_type = SHT_PROGBITS;
- shdr->sh_flags = SHF_ALLOC | SHF_WRITE;
- shdr->sh_addr = 0;
- shdr->sh_link = 0;
- shdr->sh_info = 0;
- shdr->sh_entsize = 1;
-
- data = elf_newdata (scn);
- if (data == NULL)
- {
- printf ("cannot create data second section: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- data->d_buf = "world";
- data->d_type = ELF_T_BYTE;
- data->d_version = EV_CURRENT;
- data->d_size = 5;
- data->d_align = 16;
-
-
- scn = elf_newscn (elf);
- if (scn == NULL)
- {
- printf ("cannot create third section: %s\n", elf_errmsg (-1));
- exit (1);
- }
- shdr = elf32_getshdr (scn);
- if (shdr == NULL)
- {
- printf ("cannot get header for third section: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- thirdse = ebl_strtabadd (shst, ".third", 0);
-
- shdr->sh_type = SHT_PROGBITS;
- shdr->sh_flags = SHF_ALLOC | SHF_EXECINSTR;
- shdr->sh_addr = 0;
- shdr->sh_link = 0;
- shdr->sh_info = 0;
- shdr->sh_entsize = 1;
-
- data = elf_newdata (scn);
- if (data == NULL)
- {
- printf ("cannot create data third section: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- data->d_buf = "!!!!!";
- data->d_type = ELF_T_BYTE;
- data->d_version = EV_CURRENT;
- data->d_size = 5;
- data->d_align = 16;
-
-
- scn = elf_newscn (elf);
- if (scn == NULL)
- {
- printf ("cannot create fourth section: %s\n", elf_errmsg (-1));
- exit (1);
- }
- shdr = elf32_getshdr (scn);
- if (shdr == NULL)
- {
- printf ("cannot get header for fourth section: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- fourthse = ebl_strtabadd (shst, ".fourth", 0);
-
- shdr->sh_type = SHT_NOBITS;
- shdr->sh_flags = SHF_ALLOC | SHF_EXECINSTR;
- shdr->sh_addr = 0;
- shdr->sh_link = 0;
- shdr->sh_info = 0;
- shdr->sh_entsize = 1;
- shdr->sh_size = 100;
-
- data = elf_newdata (scn);
- if (data == NULL)
- {
- printf ("cannot create data fourth section: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- data->d_buf = NULL;
- data->d_type = ELF_T_BYTE;
- data->d_version = EV_CURRENT;
- data->d_size = 100;
- data->d_align = 16;
-
-
- scn = elf_newscn (elf);
- if (scn == NULL)
- {
- printf ("cannot create SHSTRTAB section: %s\n", elf_errmsg (-1));
- exit (1);
- }
- shdr = elf32_getshdr (scn);
- if (shdr == NULL)
- {
- printf ("cannot get header for SHSTRTAB section: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- shstrtabse = ebl_strtabadd (shst, ".shstrtab", 0);
-
- shdr->sh_type = SHT_STRTAB;
- shdr->sh_flags = 0;
- shdr->sh_addr = 0;
- shdr->sh_link = SHN_UNDEF;
- shdr->sh_info = SHN_UNDEF;
- shdr->sh_entsize = 1;
-
- /* We have to store the section index in the ELF header. */
- ehdr->e_shstrndx = elf_ndxscn (scn);
-
- data = elf_newdata (scn);
- if (data == NULL)
- {
- printf ("cannot create data SHSTRTAB section: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* No more sections, finalize the section header string table. */
- ebl_strtabfinalize (shst, data);
-
- elf32_getshdr (elf_getscn (elf, 1))->sh_name = ebl_strtaboffset (firstse);
- elf32_getshdr (elf_getscn (elf, 2))->sh_name = ebl_strtaboffset (secondse);
- elf32_getshdr (elf_getscn (elf, 3))->sh_name = ebl_strtaboffset (thirdse);
- elf32_getshdr (elf_getscn (elf, 4))->sh_name = ebl_strtaboffset (fourthse);
- shdr->sh_name = ebl_strtaboffset (shstrtabse);
-
- /* Let the library compute the internal structure information. */
- if (elf_update (elf, ELF_C_NULL) < 0)
- {
- printf ("failure in elf_update(NULL): %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- ehdr = elf32_getehdr (elf);
-
- phdr[0].p_offset = ehdr->e_phoff;
- phdr[0].p_offset = ehdr->e_phoff;
- phdr[0].p_vaddr = ehdr->e_phoff;
- phdr[0].p_paddr = ehdr->e_phoff;
- phdr[0].p_flags = PF_R | PF_X;
- phdr[0].p_filesz = ehdr->e_phnum * elf32_fsize (ELF_T_PHDR, 1, EV_CURRENT);
- phdr[0].p_memsz = ehdr->e_phnum * elf32_fsize (ELF_T_PHDR, 1, EV_CURRENT);
- phdr[0].p_align = sizeof (Elf32_Word);
-
- /* Write out the file. */
- if (elf_update (elf, ELF_C_WRITE) < 0)
- {
- printf ("failure in elf_update(WRITE): %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- /* We don't need the string table anymore. */
- ebl_strtabfree (shst);
-
- /* And the data allocated in the .shstrtab section. */
- free (data->d_buf);
-
- /* Print the ELF header values. */
- if (argc > 1)
- {
- for (i = 0; i < EI_NIDENT; ++i)
- printf (" %02x", ehdr->e_ident[i]);
- printf ("\
-\ntype = %hu\nmachine = %hu\nversion = %u\nentry = %u\nphoff = %u\n"
- "shoff = %u\nflags = %u\nehsize = %hu\nphentsize = %hu\n"
- "phnum = %hu\nshentsize = %hu\nshnum = %hu\nshstrndx = %hu\n",
- ehdr->e_type, ehdr->e_machine, ehdr->e_version, ehdr->e_entry,
- ehdr->e_phoff, ehdr->e_shoff, ehdr->e_flags, ehdr->e_ehsize,
- ehdr->e_phentsize, ehdr->e_phnum, ehdr->e_shentsize,
- ehdr->e_shnum, ehdr->e_shstrndx);
- }
-
- if (elf_end (elf) != 0)
- {
- printf ("failure in elf_end: %s\n", elf_errmsg (-1));
- exit (1);
- }
-
- unlink (fname);
-
- return 0;
-}